diff --git a/configuration.nix b/configuration.nix index 68b5d56..e2d8029 100644 --- a/configuration.nix +++ b/configuration.nix @@ -1,14 +1,13 @@ -# 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`). - { config, lib, pkgs, ... }: { imports = - [ # Include the results of the hardware scan. + [ ./hardware-configuration.nix ]; + + + # Bootloader stuff boot.loader.systemd-boot = { enable = true; }; @@ -17,50 +16,21 @@ }; - # boot.loader.grub.efiSupport = true; - # boot.loader.grub.efiInstallAsRemovable = true; - # boot.loader.efi.efiSysMountPoint = "/boot/efi"; - # Define on which hard drive you want to install Grub. - # boot.loader.grub.device = "/dev/sda"; # or "nodev" for efi only - + # Networking stuff networking.hostName = "prismo"; # 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 = "Europe/Oslo"; - - # Configure network proxy if necessary - # networking.proxy.default = "http://user:password@proxy:port/"; - # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; networking.networkmanager.enable = true; - # Select internationalisation properties. - # i18n.defaultLocale = "en_US.UTF-8"; - # console = { - # font = "Lat2-Terminus16"; - # keyMap = "no"; - # useXkbConfig = true; # use xkb.options in tty. - # }; + # Set time stuff + time.timeZone = "Europe/Oslo"; + # Setup hyprland + services.xserver.enable = true; programs.hyprland = { enable = true; xwayland.enable = true; }; - users.users.torjus = { - isNormalUser = true; - home = "/home/torjus"; - description = "Torjus"; - extraGroups = [ "wheel" "networkmanager" ]; - packages = with pkgs; [ - firefox - vscode - go - python3 - ]; - }; + # Setup common XDG env vars environment.sessionVariables = rec { XDG_CACHE_HOME = "$HOME/.cache"; XDG_CONFIG_HOME = "$HOME/.config"; @@ -72,44 +42,16 @@ ]; }; + # Enable sudo security.sudo.enable = true; - nixpkgs.config.allowUnfree = true; - - # 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. - # sound.enable = true; - # hardware.pulseaudio.enable = true; - - # Enable touchpad support (enabled default in most desktopManager). - # services.xserver.libinput.enable = true; - - # Define a user account. Don't forget to set a password with ‘passwd’. - # users.users.alice = { - # isNormalUser = true; - # extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user. - # packages = with pkgs; [ - # firefox - # tree - # ]; - # }; + # Enable flakes nix.settings.experimental-features = [ "nix-command" "flakes" ]; - # List packages installed in system profile. To search, run: - # $ nix search wget + + nixpkgs.config.allowUnfree = true; + # Install system-wide packages environment.systemPackages = with pkgs; [ - vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. + vim wget curl neovim @@ -118,42 +60,6 @@ git ]; - # 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; - # }; - - # 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. - # - # 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. # diff --git a/flake.nix b/flake.nix index 5efb151..518fe3c 100644 --- a/flake.nix +++ b/flake.nix @@ -13,6 +13,7 @@ ./configuration.nix ./podman.nix ./fonts.nix + ./users.nix ]; }; }; diff --git a/users.nix b/users.nix new file mode 100644 index 0000000..45ac58d --- /dev/null +++ b/users.nix @@ -0,0 +1,33 @@ +{ pkgs, ...}: + +{ + # Setup torjus user + users.users.torjus = { + isNormalUser = true; + home = "/home/torjus"; + description = "Torjus"; + extraGroups = [ "wheel" "networkmanager" ]; + # Install some user packages + packages = with pkgs; [ + # Browser + firefox + + # Editors + vscode + + # Python stuff + python3 + ruff + poetry + + # Go stuff + go + delve + gopls + + # Generic dev stuff + tokei + ripgrep + ]; + }; +}