authorgravatar for nmarks413@gmail.comNatalie Marks <nmarks413@gmail.com> 2024-01-05 21:00:41-08:00
committergravatar for nmarks413@gmail.comNatalie Marks <nmarks413@gmail.com> 2024-01-05 21:00:41-08:00
log21bcfce762dbc35cb5ee241311d4f0f34b5bd8b8
treedcc7a412dc46a70bd62dda11de6fd0d1f051fccf
parentc0c427ecc904d8c83ad7f0a10cbc4909aef6999e

updates


2 files changed, 114 insertions(+), 48 deletions(-)

configuration.nix+56-42
...@@ -1,25 +1,24 @@...@@ -1,25 +1,24 @@
1#<BS> Edit this configuration file to define what should be installed on1#<BS> Edit this configuration file to define what should be installed on
2# your system. Help is available in the configuration.nix(5) man page2# your system. Help is available in the configuration.nix(5) man page
3# and in the NixOS manual (accessible by running ‘nixos-help’).3# and in the NixOS manual (accessible by running ‘nixos-help’).
4
5{ config, pkgs, ... }:
6
7{4{
8 nix.settings.experimental-features = [ "nix-command" "flakes" ];5 config,
6 pkgs,
7 ...
8}: {
9 nix.settings.experimental-features = ["nix-command" "flakes"];
9 programs.hyprland.enable = true;10 programs.hyprland.enable = true;
10 programs.zsh = {11
11 enable = true;12 programs.fish.enable = true;
12 ohMyZsh = { 13
13 enable = true;14 fonts.packages = with pkgs; [
14 plugins = ["git" "zsh-autosuggestions" "zsh-autocomplete" "sudo"];15 (nerdfonts.override {fonts = ["FiraCode" "Iosevka"];})
15 theme = "powerlevel10k";16 ];
16};17
17};18 imports = [
1819 # Include the results of the hardware scan.
19 imports =20 ./hardware-configuration.nix
20 [ # Include the results of the hardware scan.21 ];
21 ./hardware-configuration.nix
22 ];
2322
24 # Enable OpenGL23 # Enable OpenGL
25 hardware.opengl = {24 hardware.opengl = {
...@@ -30,7 +29,6 @@...@@ -30,7 +29,6 @@
30 services.xserver.videoDrivers = ["nvidia"];29 services.xserver.videoDrivers = ["nvidia"];
3130
32 hardware.nvidia = {31 hardware.nvidia = {
33
34 # Modesetting is required.32 # Modesetting is required.
35 modesetting.enable = true;33 modesetting.enable = true;
3634
...@@ -42,15 +40,15 @@...@@ -42,15 +40,15 @@
4240
43 # Use the NVidia open source kernel module (not to be confused with the41 # Use the NVidia open source kernel module (not to be confused with the
44 # independent third-party "nouveau" open source driver).42 # independent third-party "nouveau" open source driver).
45 # Support is limited to the Turing and later architectures. Full list of 43 # Support is limited to the Turing and later architectures. Full list of
46 # supported GPUs is at: 44 # supported GPUs is at:
47 # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus 45 # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
48 # Only available from driver 515.43.04+46 # Only available from driver 515.43.04+
49 # Currently alpha-quality/buggy, so false is currently the recommended setting.47 # Currently alpha-quality/buggy, so false is currently the recommended setting.
50 open = false;48 open = false;
5149
52 # Enable the Nvidia settings menu,50 # Enable the Nvidia settings menu,
53 # accessible via `nvidia-settings`.51 # accessible via `nvidia-settings`.
54 nvidiaSettings = true;52 nvidiaSettings = true;
5553
56 # Optionally, you may need to select the appropriate driver version for your specific GPU.54 # Optionally, you may need to select the appropriate driver version for your specific GPU.
...@@ -61,16 +59,16 @@...@@ -61,16 +59,16 @@
61 #boot.loader.efi.canTouchEfiVariables = true;59 #boot.loader.efi.canTouchEfiVariables = true;
6260
63 boot.loader = {61 boot.loader = {
64 efi = {62 efi = {
65 canTouchEfiVariables = true;63 canTouchEfiVariables = true;
66 # assuming /boot is the mount point of the EFI partition in NixOS (as the installation section recommends).64 # assuming /boot is the mount point of the EFI partition in NixOS (as the installation section recommends).
67 efiSysMountPoint = "/boot";65 efiSysMountPoint = "/boot";
68 };66 };
69 grub = {67 grub = {
70 enable = true;68 enable = true;
71 devices = [ "nodev" ];69 devices = ["nodev"];
72 useOSProber = true;70 useOSProber = true;
73 };71 };
74 };72 };
75 networking.hostName = "nixos"; # Define your hostname.73 networking.hostName = "nixos"; # Define your hostname.
76 # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.74 # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
...@@ -137,24 +135,26 @@...@@ -137,24 +135,26 @@
137 # services.xserver.libinput.enable = true;135 # services.xserver.libinput.enable = true;
138136
139 # Define a user account. Don't forget to set a password with ‘passwd’.137 # Define a user account. Don't forget to set a password with ‘passwd’.
138 users.defaultUserShell = pkgs.fish;
140 users.users.nmarks = {139 users.users.nmarks = {
141 isNormalUser = true;140 isNormalUser = true;
142 description = "Natalie Marks";141 description = "Natalie Marks";
143 extraGroups = [ "networkmanager" "wheel" ];142 extraGroups = ["networkmanager" "wheel"];
144 packages = with pkgs; [143 packages = with pkgs; [
145 firefox144 firefox
146 kate145 kate
147 vim146 vim
148 discord147 discord
149 kitty148 kitty
150 149 lua-language-server
151 # thunderbird150 # thunderbird
152 ];151 ];
153 };152 };
153
154 programs.neovim = {154 programs.neovim = {
155 enable = true;155 enable = true;
156 defaultEditor = true;156 defaultEditor = true;
157};157 };
158 environment.variables.EDITOR = "nvim";158 environment.variables.EDITOR = "nvim";
159159
160 # Allow unfree packages160 # Allow unfree packages
...@@ -163,18 +163,33 @@...@@ -163,18 +163,33 @@
163 # List packages installed in system profile. To search, run:163 # List packages installed in system profile. To search, run:
164 # $ nix search wget164 # $ nix search wget
165 environment.systemPackages = with pkgs; [165 environment.systemPackages = with pkgs; [
166 fish
166 vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.167 vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
167 wget168 wget
168 git169 git
170 unzip
171 ripgrep
172 clang
173 fd
174 cargo
175 python3
176 python311Packages.pynvim
177 python311Packages.pip
178 steam
179 ruby
180 julia
181 xclip
182 nodePackages.npm
183 go
169 ];184 ];
170185
171 # Some programs need SUID wrappers, can be configured further or are186 # Some programs need SUID wrappers, can be configured further or are
172 # started in user sessions.187 # started in user sessions.
173 programs.mtr.enable = true;188 programs.mtr.enable = true;
174 programs.gnupg.agent = {189 programs.gnupg.agent = {
175 enable = true;190 enable = true;
176 enableSSHSupport = true;191 enableSSHSupport = true;
177 };192 };
178193
179 # List services that you want to enable:194 # List services that you want to enable:
180195
...@@ -194,5 +209,4 @@...@@ -194,5 +209,4 @@
194 # Before changing this value read the documentation for this option209 # Before changing this value read the documentation for this option
195 # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).210 # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
196 system.stateVersion = "23.05"; # Did you read the comment?211 system.stateVersion = "23.05"; # Did you read the comment?
197
198}212}
home.nix+58-6
...@@ -1,6 +1,8 @@...@@ -1,6 +1,8 @@
1{ config, pkgs, ... }:
2
3{1{
2 config,
3 pkgs,
4 ...
5}: {
4 # Home Manager needs a bit of information about you and the paths it should6 # Home Manager needs a bit of information about you and the paths it should
5 # manage.7 # manage.
6 home.username = "nmarks";8 home.username = "nmarks";
...@@ -18,6 +20,14 @@...@@ -18,6 +20,14 @@
18 # The home.packages option allows you to install Nix packages into your20 # The home.packages option allows you to install Nix packages into your
19 # environment.21 # environment.
20 home.packages = with pkgs; [22 home.packages = with pkgs; [
23 stylua
24 alejandra
25 webcord
26 btop
27 neofetch
28 #zsh-autosuggestions
29 #zsh-autocomplete
30 #zsh-powerlevel10k
21 # # Adds the 'hello' command to your environment. It prints a friendly31 # # Adds the 'hello' command to your environment. It prints a friendly
22 # # "Hello, world!" when run.32 # # "Hello, world!" when run.
23 # pkgs.hello33 # pkgs.hello
...@@ -35,14 +45,54 @@...@@ -35,14 +45,54 @@
35 # echo "Hello, ${config.home.username}!"45 # echo "Hello, ${config.home.username}!"
36 # '')46 # '')
37 ];47 ];
48
38 programs.neovim = {49 programs.neovim = {
39 viAlias = true;50 viAlias = true;
40 vimAlias = true;51 vimAlias = true;
52 extraPackages = with pkgs; [
53 lua-language-server
54 nil
55 alejandra
56 ];
41 };57 };
42 #Link neovim config into nix58 #Link neovim config into nix
43 xdg.configFile.nvim.source = ./nvim;59 #xdg.configFile.nvim.source = ./nvim;
60
61 programs.kitty = {
62 enable = true;
63 theme = "Catppuccin-Mocha";
64 extraConfig = "font_family Iosevka NF
65 italic_font auto
66 bold_italic_font auto
67 bold_font auto";
68 };
4469
70 programs.fish = {
71 enable = true;
4572
73 plugins = [
74 {
75 name = "tide";
76 src = pkgs.fishPlugins.tide.src;
77 }
78 ];
79 };
80
81 /*
82 programs.zsh = {
83 oh-my-zsh = {
84 enable = true;
85 plugins = [ "git" "extract"];
86 };
87 enableAutosuggestions = true;
88 enableCompletion = true;
89 syntaxHighlighting.enable = true;
90
91 plugins = [
92 {name = "powerlevel10k";src = pkgs.zsh-powerlevel10k;file = "share/zsh-powerlevel10k/powerlevel10k.zsh-theme";}
93 ];
94 };
95 */
4696
47 # Home Manager is pretty good at managing dotfiles. The primary way to manage97 # Home Manager is pretty good at managing dotfiles. The primary way to manage
48 # plain files is through 'home.file'.98 # plain files is through 'home.file'.
...@@ -70,7 +120,9 @@...@@ -70,7 +120,9 @@
70 #120 #
71 # if you don't want to manage your shell through Home Manager.121 # if you don't want to manage your shell through Home Manager.
72 home.sessionVariables = {122 home.sessionVariables = {
73 # EDITOR = "emacs";123 EDITOR = "nvim";
124 TERMINAL = "kitty";
125 BROWSER = "firefox";
74 };126 };
75127
76 # Let Home Manager install and manage itself.128 # Let Home Manager install and manage itself.