arnaucube
arnaucube/configsPublic Self-hosted repository
configs/nixos/configuration.nix
nixos/configuration.nixRaw
  1# Edit this configuration file to define what should be installed on
  2# your system.  Help is available in the configuration.nix(5) man page
  3# and in the NixOS manual (accessible by running ‘nixos-help’).
  4
  5{ config, pkgs, ... }:
  6
  7{
  8  imports =
  9    [
 10      ./hardware-configuration.nix
 11      ./extra-hardware-configuration.nix
 12      ./private-configuration.nix
 13    ];
 14
 15  # Bootloader.
 16  boot.loader.systemd-boot.enable = true;
 17  boot.loader.efi.canTouchEfiVariables = true;
 18
 19  # Setup keyfile
 20  boot.initrd.secrets = {
 21    "/crypto_keyfile.bin" = null;
 22  };
 23
 24  networking.hostName = "nixos"; # Define your hostname.
 25  # networking.wireless.enable = true;  # Enables wireless support via wpa_supplicant.
 26
 27  # Configure network proxy if necessary
 28  # networking.proxy.default = "http://user:password@proxy:port/";
 29  # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
 30
 31  # Enable networking
 32  networking.networkmanager.enable = true;
 33
 34  # Set your time zone.
 35  time.timeZone = "Europe/Madrid";
 36
 37  # Select internationalisation properties.
 38  i18n.defaultLocale = "en_US.UTF-8";
 39
 40  i18n.extraLocaleSettings = {
 41    LC_ALL = "en_US.UTF-8";
 42  };
 43
 44  # Configure keymap in X11
 45  services.xserver = {
 46    layout = "us";
 47    xkbVariant = "";
 48
 49    enable=true;
 50    displayManager = {
 51      defaultSession = "none+i3";
 52    };
 53    windowManager.i3 = {
 54      enable=true;
 55      extraPackages = with pkgs; [
 56        dmenu
 57        i3status
 58        i3lock
 59      ];
 60    };
 61  };
 62
 63  # Define a user account. Don't forget to set a password with ‘passwd’.
 64  users.users.userc = {
 65    isNormalUser = true;
 66    description = "userc";
 67    extraGroups = [ "networkmanager" "wheel" ];
 68    packages = with pkgs; [];
 69  };
 70
 71  # Allow unfree packages
 72  nixpkgs.config.allowUnfree = true;
 73
 74  # List packages installed in system profile. To search, run:
 75  # $ nix search wget
 76  environment.systemPackages = with pkgs; [
 77  	vim
 78	neovim
 79 	wget
 80	tmux
 81	git
 82	delta
 83	mosh
 84	bat
 85	ripgrep
 86	fzf
 87	python3
 88	xfce.thunar
 89	screenfetch
 90	htop
 91	alacritty
 92	firefox
 93	qutebrowser
 94  ];
 95
 96  # Some programs need SUID wrappers, can be configured further or are
 97  # started in user sessions.
 98  # programs.mtr.enable = true;
 99  # programs.gnupg.agent = {
100  #   enable = true;
101  #   enableSSHSupport = true;
102  # };
103  programs.zsh.enable = true;
104  users.defaultUserShell = pkgs.zsh;
105  environment.shells = with pkgs; [zsh];
106
107  # List services that you want to enable:
108
109  # Enable the OpenSSH daemon.
110  # services.openssh.enable = true;
111
112  # Open ports in the firewall.
113  # networking.firewall.allowedTCPPorts = [ ... ];
114  # networking.firewall.allowedUDPPorts = [ ... ];
115  # Or disable the firewall altogether.
116  # networking.firewall.enable = false;
117
118  # This value determines the NixOS release from which the default
119  # settings for stateful data, like file locations and database versions
120  # on your system were taken. It‘s perfectly fine and recommended to leave
121  # this value at the release version of the first install of this system.
122  # Before changing this value read the documentation for this option
123  # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
124  system.stateVersion = "23.05"; # Did you read the comment?
125
126  # gvfs needed for Thunar to detect external disks
127  services.gvfs.enable = true;
128
129}