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	xfce.xfconf # needed to save preferences of thunar
 91	screenfetch
 92	htop
 93	alacritty
 94	zathura
 95	mate.atril
 96	firefox
 97	qutebrowser
 98	chromium
 99	xfce.ristretto
100	pavucontrol
101	texlive.combined.scheme-medium # includes latexmk
102	#pgf-umlsd # latex diagrams
103	#pgf
104	(pkgs.texlive.combine {
105		inherit (pkgs.texlive)
106		scheme-medium
107		pgf
108		;
109	})
110	sage
111	rustup
112	gcc
113	go
114	nodejs
115	xclip # to make clipboard work in neovim
116	xfce.xfce4-screenshooter
117	mpv
118	xorg.xmodmap
119	feh
120  ];
121
122  programs.zsh.enable = true;
123  users.defaultUserShell = pkgs.zsh;
124  environment.shells = with pkgs; [zsh];
125
126  # Some programs need SUID wrappers, can be configured further or are
127  # started in user sessions.
128  # programs.mtr.enable = true;
129  # programs.gnupg.agent = {
130  #   enable = true;
131  #   enableSSHSupport = true;
132  # };
133
134  # List services that you want to enable:
135
136  # Enable the OpenSSH daemon.
137  # services.openssh.enable = true;
138
139  # Open ports in the firewall.
140  # networking.firewall.allowedTCPPorts = [ ... ];
141  # networking.firewall.allowedUDPPorts = [ ... ];
142  # Or disable the firewall altogether.
143  # networking.firewall.enable = false;
144
145  # This value determines the NixOS release from which the default
146  # settings for stateful data, like file locations and database versions
147  # on your system were taken. It‘s perfectly fine and recommended to leave
148  # this value at the release version of the first install of this system.
149  # Before changing this value read the documentation for this option
150  # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
151  system.stateVersion = "23.05"; # Did you read the comment?
152
153  # gvfs needed for Thunar to detect external disks
154  services.gvfs.enable = true;
155
156  # bluetooth related
157  hardware.bluetooth.enable = true;
158  services.blueman.enable = true;
159
160  # obs virtual camera
161  boot.extraModulePackages = with config.boot.kernelPackages; [
162    v4l2loopback
163  ];
164}