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}