Restructuring
This commit is contained in:
parent
79a809d8cb
commit
9c6bc18271
7 changed files with 148 additions and 184 deletions
|
@ -43,6 +43,7 @@
|
||||||
inherit system;
|
inherit system;
|
||||||
modules = [
|
modules = [
|
||||||
home-manager.nixosModule
|
home-manager.nixosModule
|
||||||
|
./modules
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,30 +1,22 @@
|
||||||
# Edit this configuration file to define what should be installed on
|
|
||||||
# your system. Help is available in the configuration.nix(5) man page
|
|
||||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
|
||||||
|
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports = [
|
||||||
[
|
./hardware-configuration.nix
|
||||||
./hardware-configuration.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
# Nix Flakes
|
|
||||||
nix.package = pkgs.nixFlakes;
|
|
||||||
nix.extraOptions = ''
|
|
||||||
experimental-features = nix-command flakes
|
|
||||||
'';
|
|
||||||
|
|
||||||
|
../../modules/apps/virtualbox
|
||||||
|
../../modules/des/gnome
|
||||||
|
];
|
||||||
|
|
||||||
# Use the systemd-boot EFI boot loader.]
|
# Use the systemd-boot EFI boot loader.]
|
||||||
boot.loader = {
|
boot.loader = {
|
||||||
systemd-boot.enable = true;
|
systemd-boot.enable = true;
|
||||||
efi = {
|
efi = {
|
||||||
canTouchEfiVariables = true;
|
canTouchEfiVariables = true;
|
||||||
efiSysMountPoint = "/boot/efi";
|
efiSysMountPoint = "/boot/efi";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Setup keyfile
|
# Setup keyfile
|
||||||
boot.initrd.secrets = {
|
boot.initrd.secrets = {
|
||||||
"/crypto_keyfile.bin" = null;
|
"/crypto_keyfile.bin" = null;
|
||||||
|
@ -34,14 +26,14 @@
|
||||||
# Pick only one of the below networking options.
|
# Pick only one of the below networking options.
|
||||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||||
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
|
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
|
||||||
|
|
||||||
# Set your time zone.
|
# Set your time zone.
|
||||||
time.timeZone = "Europe/Brussels";
|
time.timeZone = "Europe/Brussels";
|
||||||
|
|
||||||
# Configure network proxy if necessary
|
# Configure network proxy if necessary
|
||||||
# networking.proxy.default = "http://user:password@proxy:port/";
|
# networking.proxy.default = "http://user:password@proxy:port/";
|
||||||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||||
|
|
||||||
# Select internationalisation properties.
|
# Select internationalisation properties.
|
||||||
i18n.defaultLocale = "en_GB.UTF-8";
|
i18n.defaultLocale = "en_GB.UTF-8";
|
||||||
# console = {
|
# console = {
|
||||||
|
@ -54,27 +46,15 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
videoDrivers = [ "nvidia" ]; # Also for wayland compositors
|
videoDrivers = [ "nvidia" ]; # Also for wayland compositors
|
||||||
|
|
||||||
# Enable the GNOME Desktop Environment.
|
|
||||||
displayManager.gdm.enable = true;
|
|
||||||
desktopManager.gnome.enable = true;
|
|
||||||
|
|
||||||
|
|
||||||
# Enable the Plasma 5 Desktop Environment.
|
|
||||||
# displayManager.sddm = {
|
|
||||||
# enable = true;
|
|
||||||
# defaultSession = "plasmawayland";
|
|
||||||
# };
|
|
||||||
# desktopManager.plasma.enable = true;
|
|
||||||
|
|
||||||
# Configure keymap in X11
|
# Configure keymap in X11
|
||||||
layout = "us";
|
layout = "us";
|
||||||
xkbVariant = "";
|
xkbVariant = "";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Enable CUPS to print documents.
|
# Enable CUPS to print documents.
|
||||||
# services.printing.enable = true;
|
# services.printing.enable = true;
|
||||||
|
|
||||||
# Enable sound with pipewire.
|
# Enable sound with pipewire.
|
||||||
sound.enable = true;
|
sound.enable = true;
|
||||||
hardware.pulseaudio.enable = false;
|
hardware.pulseaudio.enable = false;
|
||||||
|
@ -86,50 +66,36 @@
|
||||||
pulse.enable = true;
|
pulse.enable = true;
|
||||||
# If you want to use JACK applications, uncomment this
|
# If you want to use JACK applications, uncomment this
|
||||||
#jack.enable = true;
|
#jack.enable = true;
|
||||||
|
|
||||||
# use the example session manager (no others are packaged yet so this is enabled by default,
|
# use the example session manager (no others are packaged yet so this is enabled by default,
|
||||||
# no need to redefine it in your config for now)
|
# no need to redefine it in your config for now)
|
||||||
#media-session.enable = true;
|
#media-session.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Enable Bluetooth.
|
# Enable Bluetooth.
|
||||||
hardware.bluetooth.enable = true;
|
hardware.bluetooth.enable = true;
|
||||||
|
|
||||||
# Enable touchpad support (enabled default in most desktopManager).
|
# Enable touchpad support (enabled default in most desktopManager).
|
||||||
services.xserver.libinput.enable = true;
|
services.xserver.libinput.enable = true;
|
||||||
|
|
||||||
# NVIDIA drivers
|
# NVIDIA drivers
|
||||||
hardware.opengl.enable = true;
|
hardware = {
|
||||||
hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.stable;
|
opengl.enable = true;
|
||||||
hardware.nvidia.modesetting.enable = true;
|
nvidia = {
|
||||||
|
open = true;
|
||||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
# package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||||
users.users.tdpeuter = {
|
modesetting.enable = true;
|
||||||
description = "Tibo De Peuter";
|
# prime = {
|
||||||
isNormalUser = true;
|
# offload.enable = true;
|
||||||
extraGroups = [ "networkmanager" "wheel" ];
|
# intelBusId = "PCI::00:02:0";
|
||||||
initialPassword = "ChangeMe";
|
# nvidiaBusId = "PCI:01:00:0";
|
||||||
packages = with pkgs; [
|
# };
|
||||||
home-manager
|
};
|
||||||
];
|
|
||||||
shell = pkgs.zsh;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Allow unfree packages
|
# Allow unfree packages
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
# List packages installed in system profile. To search, run:
|
|
||||||
# $ nix search wget
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
];
|
|
||||||
|
|
||||||
# Computer architecture
|
|
||||||
virtualisation.virtualbox.host.enable = true;
|
|
||||||
virtualisation.virtualbox.host.enableExtensionPack = true;
|
|
||||||
virtualisation.virtualbox.guest.enable = true;
|
|
||||||
virtualisation.virtualbox.guest.x11 = true;
|
|
||||||
users.extraGroups.vboxusers.members = [ "user-with-access-to-virtualbox" ];
|
|
||||||
|
|
||||||
# Some programs need SUID wrappers, can be configured further or are
|
# Some programs need SUID wrappers, can be configured further or are
|
||||||
# started in user sessions.
|
# started in user sessions.
|
||||||
# programs.mtr.enable = true;
|
# programs.mtr.enable = true;
|
||||||
|
@ -137,23 +103,23 @@
|
||||||
# enable = true;
|
# enable = true;
|
||||||
# enableSSHSupport = true;
|
# enableSSHSupport = true;
|
||||||
# };
|
# };
|
||||||
|
|
||||||
# List services that you want to enable:
|
# List services that you want to enable:
|
||||||
|
|
||||||
# Enable the OpenSSH daemon.
|
# Enable the OpenSSH daemon.
|
||||||
# services.openssh.enable = true;
|
# services.openssh.enable = true;
|
||||||
|
|
||||||
# Open ports in the firewall.
|
# Open ports in the firewall.
|
||||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||||
# Or disable the firewall altogether.
|
# Or disable the firewall altogether.
|
||||||
# networking.firewall.enable = false;
|
# networking.firewall.enable = false;
|
||||||
|
|
||||||
# Copy the NixOS configuration file and link it from the resulting system
|
# Copy the NixOS configuration file and link it from the resulting system
|
||||||
# (/run/current-system/configuration.nix). This is useful in case you
|
# (/run/current-system/configuration.nix). This is useful in case you
|
||||||
# accidentally delete configuration.nix.
|
# accidentally delete configuration.nix.
|
||||||
# system.copySystemConfiguration = true;
|
# system.copySystemConfiguration = true;
|
||||||
|
|
||||||
# This value determines the NixOS release from which the default
|
# This value determines the NixOS release from which the default
|
||||||
# settings for stateful data, like file locations and database versions
|
# settings for stateful data, like file locations and database versions
|
||||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||||
|
|
8
nixos/modules/apps/default.nix
Normal file
8
nixos/modules/apps/default.nix
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./alacritty
|
||||||
|
./firefox
|
||||||
|
./thunderbird
|
||||||
|
# ./virtualbox
|
||||||
|
];
|
||||||
|
}
|
97
nixos/modules/default.nix
Normal file
97
nixos/modules/default.nix
Normal file
|
@ -0,0 +1,97 @@
|
||||||
|
{ inputs, lib, config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./apps
|
||||||
|
./shells
|
||||||
|
./utils
|
||||||
|
];
|
||||||
|
|
||||||
|
# Nix Flakes
|
||||||
|
nix.package = pkgs.nixFlakes;
|
||||||
|
nix.extraOptions = ''
|
||||||
|
experimental-features = nix-command flakes
|
||||||
|
keep-outputs = true
|
||||||
|
keep-derivations = true
|
||||||
|
'';
|
||||||
|
|
||||||
|
users.users.tdpeuter = {
|
||||||
|
description = "Tibo De Peuter";
|
||||||
|
isNormalUser = true;
|
||||||
|
extraGroups = [ "networkmanager" "wheel" ];
|
||||||
|
initialPassword = "ChangeMe";
|
||||||
|
packages = with pkgs; [
|
||||||
|
home-manager
|
||||||
|
];
|
||||||
|
shell = pkgs.zsh;
|
||||||
|
};
|
||||||
|
|
||||||
|
home-manager.users.tdpeuter = { pkgs, ... }: {
|
||||||
|
home = {
|
||||||
|
username = "tdpeuter";
|
||||||
|
homeDirectory = "/home/tdpeuter";
|
||||||
|
stateVersion = "22.11";
|
||||||
|
|
||||||
|
packages = with pkgs; [
|
||||||
|
brave
|
||||||
|
caprine-bin
|
||||||
|
direnv
|
||||||
|
discord
|
||||||
|
duf
|
||||||
|
git-crypt
|
||||||
|
gnupg
|
||||||
|
jellyfin-media-player
|
||||||
|
libreoffice-fresh-unwrapped
|
||||||
|
lynx
|
||||||
|
mattermost-desktop
|
||||||
|
nextcloud-client
|
||||||
|
obsidian
|
||||||
|
pinentry_qt
|
||||||
|
spotify
|
||||||
|
w3m
|
||||||
|
zathura
|
||||||
|
zenith
|
||||||
|
zoom-us
|
||||||
|
|
||||||
|
# Fonts
|
||||||
|
corefonts # Calibri for Uni
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
home-manager.enable = true;
|
||||||
|
|
||||||
|
direnv = {
|
||||||
|
enable = true;
|
||||||
|
nix-direnv.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
git = {
|
||||||
|
enable = true;
|
||||||
|
userName = "tdpeuter";
|
||||||
|
userEmail = "tibo.depeuter@gmail.com";
|
||||||
|
extraConfig = {
|
||||||
|
core.editor = "vim";
|
||||||
|
};
|
||||||
|
includes = [
|
||||||
|
{
|
||||||
|
path = "~/.gitconfig-ugent";
|
||||||
|
condition = "gitdir:~/Nextcloud/Documenten/UGent";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
gpg.enable = true;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
services = {
|
||||||
|
gpg-agent = {
|
||||||
|
enable = true;
|
||||||
|
pinentryFlavor = "qt";
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
5
nixos/modules/shells/default.nix
Normal file
5
nixos/modules/shells/default.nix
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./zsh
|
||||||
|
];
|
||||||
|
}
|
|
@ -1,6 +1,7 @@
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./vifm
|
./vifm
|
||||||
|
./vim
|
||||||
./zellij
|
./zellij
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,114 +0,0 @@
|
||||||
{ inputs, lib, config, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
# Check documentation at
|
|
||||||
# https://rycee.gitlab.io/home-manager/options.html
|
|
||||||
|
|
||||||
imports = [
|
|
||||||
];
|
|
||||||
|
|
||||||
# Home manager
|
|
||||||
home = {
|
|
||||||
# Home Manager needs a bit of information about you and the
|
|
||||||
# paths it should manage.
|
|
||||||
username = "tdpeuter";
|
|
||||||
homeDirectory = "/home/tdpeuter";
|
|
||||||
|
|
||||||
# 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 can update Home Manager without changing this value. See
|
|
||||||
# the Home Manager release notes for a list of state version
|
|
||||||
# changes in each release.
|
|
||||||
stateVersion = "22.11";
|
|
||||||
|
|
||||||
packages = with pkgs; [
|
|
||||||
alacritty
|
|
||||||
discord
|
|
||||||
duf
|
|
||||||
git-crypt
|
|
||||||
gnupg
|
|
||||||
libreoffice-fresh-unwrapped
|
|
||||||
lynx
|
|
||||||
mattermost-desktop
|
|
||||||
nextcloud-client
|
|
||||||
pinentry_qt
|
|
||||||
spotify
|
|
||||||
vifm
|
|
||||||
vim
|
|
||||||
w3m
|
|
||||||
zathura
|
|
||||||
zellij
|
|
||||||
zenith
|
|
||||||
zoom-us
|
|
||||||
|
|
||||||
# Webdevelopment
|
|
||||||
jetbrains.webstorm
|
|
||||||
|
|
||||||
# Software Engineering Lab 1
|
|
||||||
android-studio
|
|
||||||
|
|
||||||
# Fonts
|
|
||||||
font-awesome_5 # Vifm and zsh dependency
|
|
||||||
];
|
|
||||||
|
|
||||||
file = {
|
|
||||||
".config/alacritty".source = ../../../stow/alacritty/.config/alacritty;
|
|
||||||
".config/vifm".source = ../../../stow/vifm/.config/vifm;
|
|
||||||
".vim".source = ../../../stow/vim/.vim;
|
|
||||||
".vimrc".source = ../../../stow/vim/.vimrc;
|
|
||||||
".config/zellij".source = ../../../stow/zellij/.config/zellij;
|
|
||||||
".oh-my-zsh".source = ../../../stow/zsh/.oh-my-zsh;
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
# Let Home Manager install and manage itself.
|
|
||||||
home-manager.enable = true;
|
|
||||||
|
|
||||||
git = {
|
|
||||||
enable = true;
|
|
||||||
userName = "tdpeuter";
|
|
||||||
userEmail = "tibo.depeuter@gmail.com";
|
|
||||||
extraConfig = {
|
|
||||||
core.editor = "vim";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
gpg.enable = true;
|
|
||||||
|
|
||||||
zsh = {
|
|
||||||
enable = true;
|
|
||||||
oh-my-zsh = {
|
|
||||||
enable = true;
|
|
||||||
custom = "$HOME/.oh-my-zsh";
|
|
||||||
plugins = [ "dirhistory" "git" "screen" ];
|
|
||||||
theme = "mrfortem";
|
|
||||||
};
|
|
||||||
plugins = [
|
|
||||||
{
|
|
||||||
name = "cmdtime";
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "tom-auger";
|
|
||||||
repo = "cmdtime";
|
|
||||||
rev = "ffc72641dcfa0ee6666ceb1dc712b61be30a1e8b";
|
|
||||||
hash = "sha256-v6wCfNoPXDD3sS6yUYE6lre8Ir1yJcLGoAW3O8sUOCg=";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
services = {
|
|
||||||
gpg-agent = {
|
|
||||||
enable = true;
|
|
||||||
pinentryFlavor = "qt";
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
Loading…
Reference in a new issue