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      ./surface-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	tig
 84	mosh
 85	bat
 86	ripgrep
 87	fzf
 88	python3
 89	xfce.thunar
 90	screenfetch
 91	htop
 92	alacritty
 93	zathura
 94	mate.atril
 95	firefox
 96	qutebrowser
 97	chromium
 98	xfce.ristretto
 99	pavucontrol
100  ];
101
102  programs.zsh.enable = true;
103  users.defaultUserShell = pkgs.zsh;
104  environment.shells = with pkgs; [zsh];
105
106  # Some programs need SUID wrappers, can be configured further or are
107  # started in user sessions.
108  # programs.mtr.enable = true;
109  # programs.gnupg.agent = {
110  #   enable = true;
111  #   enableSSHSupport = true;
112  # };
113
114  # List services that you want to enable:
115
116  # Enable the OpenSSH daemon.
117  # services.openssh.enable = true;
118
119  # Open ports in the firewall.
120  # networking.firewall.allowedTCPPorts = [ ... ];
121  # networking.firewall.allowedUDPPorts = [ ... ];
122  # Or disable the firewall altogether.
123  # networking.firewall.enable = false;
124
125  # This value determines the NixOS release from which the default
126  # settings for stateful data, like file locations and database versions
127  # on your system were taken. It‘s perfectly fine and recommended to leave
128  # this value at the release version of the first install of this system.
129  # Before changing this value read the documentation for this option
130  # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
131  system.stateVersion = "23.05"; # Did you read the comment?
132
133  # gvfs needed for Thunar to detect external disks
134  services.gvfs.enable = true;
135
136  # bluetooth related
137  hardware.bluetooth.enable = true;
138  services.blueman.enable = true;
139}