diff --git a/configuration.nix b/configuration.nix index cafe3ef..f3df9b6 100644 --- a/configuration.nix +++ b/configuration.nix @@ -1,3 +1,4 @@ +# vim: set ts=2 sw=2 et: # Edit this configuration file to define what should be installed on # your system. Help is available in the configuration.nix(5) man page, on # https://search.nixos.org/options and in the NixOS manual (`nixos-help`). @@ -8,19 +9,25 @@ imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix + + # manually defined device specific configuration + ./custom-hardware-configuration.nix ]; # Use the systemd-boot EFI boot loader. - boot.loader.systemd-boot.enable = true; - boot.loader.efi.canTouchEfiVariables = true; + # boot.loader.systemd-boot.enable = true; + # boot.loader.efi.canTouchEfiVariables = true; + # see custom-hardware-configuration.nix + # networking.hostName = "nixos"; # Define your hostname. + networking.hostName = "slab"; # 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. + networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. # Set your time zone. - # time.timeZone = "Europe/Amsterdam"; + time.timeZone = "America/New_York"; # Configure network proxy if necessary # networking.proxy.default = "http://user:password@proxy:port/"; @@ -35,9 +42,14 @@ # }; # Enable the X11 windowing system. - # services.xserver.enable = true; + services.xserver.enable = true; + + services.xserver.displayManager.sddm.enable = true; + services.xserver.desktopManager.plasma5.enable = true; + # Enable flatpak + services.flatpak.enable = true; # Configure keymap in X11 @@ -45,11 +57,20 @@ # services.xserver.xkb.options = "eurosign:e,caps:escape"; # Enable CUPS to print documents. - # services.printing.enable = true; + services.printing.enable = true; # Enable sound. # sound.enable = true; # hardware.pulseaudio.enable = true; + security.rtkit.enable = true; + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + jack.enable = true; + }; + # Enable touchpad support (enabled default in most desktopManager). # services.xserver.libinput.enable = true; @@ -64,28 +85,61 @@ # ]; # }; + users.users.nullbite = { + isNormalUser = true; + extraGroups = [ "wheel" ]; + packages = with pkgs; [ + firefox + keychain + ]; + initialPassword = "changeme"; + shell = pkgs.zsh; + }; + + + # shell config + programs.zsh.enable = true; + programs.fzf = { + keybindings = true; + fuzzyCompletion = true; + }; + # List packages installed in system profile. To search, run: # $ nix search wget - # environment.systemPackages = with pkgs; [ - # vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. - # wget - # ]; + environment.systemPackages = with pkgs; [ + neovim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. + wget + curl + git + stow + zsh + ntfs3g + ]; # 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; - # }; + programs.gnupg.agent = { + enable = true; + enableSSHSupport = true; + }; # List services that you want to enable: # Enable the OpenSSH daemon. # services.openssh.enable = true; + services.openssh = { + enable = true; + openFirewall = true; + settings = { + + }; + }; + + services.tailscale.enable = true; # Open ports in the firewall. - # networking.firewall.allowedTCPPorts = [ ... ]; + networking.firewall.allowedTCPPorts = [ 22 ]; # networking.firewall.allowedUDPPorts = [ ... ]; # Or disable the firewall altogether. # networking.firewall.enable = false; @@ -95,22 +149,12 @@ # 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. - # - # 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 . + # This value determines the NixOS release from which the default + # settings for stateful data, like file locations and database versions + # on your system were taken. It's perfectly fine and recommended to leave + # this value at the release version of the first install of this system. + # Before changing this value read the documentation for this option + # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). system.stateVersion = "23.11"; # Did you read the comment? }