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	sage
101	obs-studio
102  ];
103
104  programs.zsh.enable = true;
105  users.defaultUserShell = pkgs.zsh;
106  environment.shells = with pkgs; [zsh];
107
108  # Some programs need SUID wrappers, can be configured further or are
109  # started in user sessions.
110  # programs.mtr.enable = true;
111  # programs.gnupg.agent = {
112  #   enable = true;
113  #   enableSSHSupport = true;
114  # };
115
116  # List services that you want to enable:
117
118  # Enable the OpenSSH daemon.
119  # services.openssh.enable = true;
120
121  # Open ports in the firewall.
122  # networking.firewall.allowedTCPPorts = [ ... ];
123  # networking.firewall.allowedUDPPorts = [ ... ];
124  # Or disable the firewall altogether.
125  # networking.firewall.enable = false;
126
127  # This value determines the NixOS release from which the default
128  # settings for stateful data, like file locations and database versions
129  # on your system were taken. It‘s perfectly fine and recommended to leave
130  # this value at the release version of the first install of this system.
131  # Before changing this value read the documentation for this option
132  # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
133  system.stateVersion = "23.05"; # Did you read the comment?
134
135  # gvfs needed for Thunar to detect external disks
136  services.gvfs.enable = true;
137
138  # bluetooth related
139  hardware.bluetooth.enable = true;
140  services.blueman.enable = true;
141
142  # obs virtual camera
143  boot.extraModulePackages = with config.boot.kernelPackages; [
144    v4l2loopback
145  ];
146}