147 lines
3.4 KiB
Nix
147 lines
3.4 KiB
Nix
{
|
||
inputs,
|
||
pkgs,
|
||
config,
|
||
...
|
||
}:
|
||
|
||
{
|
||
imports = [
|
||
inputs.disko.nixosModules.disko
|
||
./hardware-configuration.nix
|
||
./disko-config.nix
|
||
./syncthing.nix
|
||
../../modules/security.nix
|
||
../../modules/nix-config.nix
|
||
../../modules/timezone.nix
|
||
../../modules/keybase.nix
|
||
../../modules/ssh.nix
|
||
../../modules/tailscale
|
||
../../modules/vsftpd
|
||
../../modules/mosh.nix
|
||
];
|
||
|
||
config.boot.loader.grub.enable = true;
|
||
config.boot.loader.grub.efiSupport = true;
|
||
config.boot.loader.grub.efiInstallAsRemovable = true;
|
||
#config.boot.loader.efi.efiSysMountPoint = "/boot/efi";
|
||
# Define on which hard drive you want to install Grub.
|
||
config.boot.loader.grub.device = "/dev/disk/by-id/ata-HGST_HTS725050A7E630_TF655AY92SM3XL"; # or "nodev" for efi only
|
||
|
||
config.security.sudo.wheelNeedsPassword = false;
|
||
|
||
config.networking = {
|
||
hostName = "igor";
|
||
domain = "failco.de";
|
||
|
||
wireless = {
|
||
enable = true;
|
||
userControlled.enable = true;
|
||
allowAuxiliaryImperativeNetworks = true;
|
||
secretsFile = "/etc/wireless.conf";
|
||
networks = {
|
||
Prapsschnalinen.pskRaw = "ext:home";
|
||
};
|
||
};
|
||
|
||
useDHCP = true;
|
||
enableIPv6 = true;
|
||
networkmanager.enable = false;
|
||
|
||
firewall.enable = true;
|
||
firewall.allowedTCPPorts = [
|
||
config.services.mysql.settings.mysqld.port
|
||
];
|
||
};
|
||
|
||
config.security.sudo = {
|
||
enable = true;
|
||
execWheelOnly = true;
|
||
};
|
||
|
||
# Select internationalization properties.
|
||
config.i18n.defaultLocale = "en_US.UTF-8";
|
||
config.console = {
|
||
font = "Lat2-Terminus16";
|
||
keyMap = "dvorak";
|
||
};
|
||
|
||
# Set your time zone.
|
||
config.time.timeZone = "Europe/Berlin";
|
||
|
||
# Enable the X11 windowing system.
|
||
config.services.xserver.enable = true;
|
||
|
||
config.services.logind.lidSwitch = "lock";
|
||
|
||
# Enable the GNOME Desktop Environment.
|
||
config.services.xserver.displayManager.gdm.enable = true;
|
||
config.services.xserver.desktopManager.gnome.enable = true;
|
||
|
||
# Configure keymap in X11
|
||
config.services.xserver.xkb.layout = "us";
|
||
config.services.xserver.xkb.variant = "dvorak";
|
||
config.services.xserver.xkb.options = "eurosign:e,caps:escape";
|
||
|
||
# Enable CUPS to print documents.
|
||
config.services.printing.enable = true;
|
||
|
||
# Enable sound.
|
||
# hardware.pulseaudio.enable = true;
|
||
# OR
|
||
config.services.pipewire = {
|
||
enable = true;
|
||
pulse.enable = true;
|
||
};
|
||
|
||
# Enable touchpad support (enabled default in most desktopManager).
|
||
config.services.libinput.enable = true;
|
||
|
||
config.services.mysql = {
|
||
enable = true;
|
||
package = pkgs.mariadb;
|
||
};
|
||
|
||
config.programs.firefox.enable = true;
|
||
config.programs.git.enable = true;
|
||
config.programs.nm-applet.enable = true;
|
||
|
||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||
config.users.users.alex = {
|
||
isNormalUser = true;
|
||
extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
|
||
shell = pkgs.zsh;
|
||
packages = [ pkgs.devenv ];
|
||
};
|
||
|
||
config.environment.systemPackages = with pkgs; [
|
||
alacritty
|
||
dolphin
|
||
waybar
|
||
hyprpaper
|
||
wofi
|
||
tmux
|
||
lftp
|
||
];
|
||
|
||
config.programs.direnv = {
|
||
enable = true;
|
||
silent = true;
|
||
};
|
||
|
||
config.programs.hyprland = {
|
||
enable = true;
|
||
withUWSM = true;
|
||
};
|
||
|
||
config.programs.neovim = {
|
||
enable = true;
|
||
defaultEditor = true;
|
||
viAlias = true;
|
||
vimAlias = true;
|
||
};
|
||
|
||
config.programs.zsh.enable = true;
|
||
|
||
config.system.stateVersion = "24.11";
|
||
}
|