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