This commit is contained in:
Natalie Marks 2024-01-05 21:00:41 -08:00
parent c0c427ecc9
commit 21bcfce762
2 changed files with 113 additions and 47 deletions

View file

@ -1,25 +1,24 @@
#<BS> Edit this configuration file to define what should be installed on #<BS> Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page # your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help). # and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, ... }:
{ {
nix.settings.experimental-features = [ "nix-command" "flakes" ]; config,
pkgs,
...
}: {
nix.settings.experimental-features = ["nix-command" "flakes"];
programs.hyprland.enable = true; programs.hyprland.enable = true;
programs.zsh = {
enable = true;
ohMyZsh = {
enable = true;
plugins = ["git" "zsh-autosuggestions" "zsh-autocomplete" "sudo"];
theme = "powerlevel10k";
};
};
imports = programs.fish.enable = true;
[ # Include the results of the hardware scan.
./hardware-configuration.nix fonts.packages = with pkgs; [
]; (nerdfonts.override {fonts = ["FiraCode" "Iosevka"];})
];
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
];
# Enable OpenGL # Enable OpenGL
hardware.opengl = { hardware.opengl = {
@ -30,7 +29,6 @@
services.xserver.videoDrivers = ["nvidia"]; services.xserver.videoDrivers = ["nvidia"];
hardware.nvidia = { hardware.nvidia = {
# Modesetting is required. # Modesetting is required.
modesetting.enable = true; modesetting.enable = true;
@ -42,15 +40,15 @@
# Use the NVidia open source kernel module (not to be confused with the # Use the NVidia open source kernel module (not to be confused with the
# independent third-party "nouveau" open source driver). # independent third-party "nouveau" open source driver).
# Support is limited to the Turing and later architectures. Full list of # Support is limited to the Turing and later architectures. Full list of
# supported GPUs is at: # supported GPUs is at:
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
# Only available from driver 515.43.04+ # Only available from driver 515.43.04+
# Currently alpha-quality/buggy, so false is currently the recommended setting. # Currently alpha-quality/buggy, so false is currently the recommended setting.
open = false; open = false;
# Enable the Nvidia settings menu, # Enable the Nvidia settings menu,
# accessible via `nvidia-settings`. # accessible via `nvidia-settings`.
nvidiaSettings = true; nvidiaSettings = true;
# Optionally, you may need to select the appropriate driver version for your specific GPU. # Optionally, you may need to select the appropriate driver version for your specific GPU.
@ -61,16 +59,16 @@
#boot.loader.efi.canTouchEfiVariables = true; #boot.loader.efi.canTouchEfiVariables = true;
boot.loader = { boot.loader = {
efi = { efi = {
canTouchEfiVariables = true; canTouchEfiVariables = true;
# assuming /boot is the mount point of the EFI partition in NixOS (as the installation section recommends). # assuming /boot is the mount point of the EFI partition in NixOS (as the installation section recommends).
efiSysMountPoint = "/boot"; efiSysMountPoint = "/boot";
}; };
grub = { grub = {
enable = true; enable = true;
devices = [ "nodev" ]; devices = ["nodev"];
useOSProber = true; useOSProber = true;
}; };
}; };
networking.hostName = "nixos"; # Define your hostname. networking.hostName = "nixos"; # Define your hostname.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
@ -137,24 +135,26 @@
# services.xserver.libinput.enable = true; # services.xserver.libinput.enable = true;
# Define a user account. Don't forget to set a password with passwd. # Define a user account. Don't forget to set a password with passwd.
users.defaultUserShell = pkgs.fish;
users.users.nmarks = { users.users.nmarks = {
isNormalUser = true; isNormalUser = true;
description = "Natalie Marks"; description = "Natalie Marks";
extraGroups = [ "networkmanager" "wheel" ]; extraGroups = ["networkmanager" "wheel"];
packages = with pkgs; [ packages = with pkgs; [
firefox firefox
kate kate
vim vim
discord discord
kitty kitty
lua-language-server
# thunderbird # thunderbird
]; ];
}; };
programs.neovim = { programs.neovim = {
enable = true; enable = true;
defaultEditor = true; defaultEditor = true;
}; };
environment.variables.EDITOR = "nvim"; environment.variables.EDITOR = "nvim";
# Allow unfree packages # Allow unfree packages
@ -163,18 +163,33 @@
# List packages installed in system profile. To search, run: # List packages installed in system profile. To search, run:
# $ nix search wget # $ nix search wget
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
fish
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
wget wget
git git
unzip
ripgrep
clang
fd
cargo
python3
python311Packages.pynvim
python311Packages.pip
steam
ruby
julia
xclip
nodePackages.npm
go
]; ];
# Some programs need SUID wrappers, can be configured further or are # Some programs need SUID wrappers, can be configured further or are
# started in user sessions. # started in user sessions.
programs.mtr.enable = true; programs.mtr.enable = true;
programs.gnupg.agent = { programs.gnupg.agent = {
enable = true; enable = true;
enableSSHSupport = true; enableSSHSupport = true;
}; };
# List services that you want to enable: # List services that you want to enable:
@ -194,5 +209,4 @@
# Before changing this value read the documentation for this option # Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "23.05"; # Did you read the comment? system.stateVersion = "23.05"; # Did you read the comment?
} }

View file

@ -1,6 +1,8 @@
{ config, pkgs, ... }:
{ {
config,
pkgs,
...
}: {
# Home Manager needs a bit of information about you and the paths it should # Home Manager needs a bit of information about you and the paths it should
# manage. # manage.
home.username = "nmarks"; home.username = "nmarks";
@ -18,6 +20,14 @@
# The home.packages option allows you to install Nix packages into your # The home.packages option allows you to install Nix packages into your
# environment. # environment.
home.packages = with pkgs; [ home.packages = with pkgs; [
stylua
alejandra
webcord
btop
neofetch
#zsh-autosuggestions
#zsh-autocomplete
#zsh-powerlevel10k
# # Adds the 'hello' command to your environment. It prints a friendly # # Adds the 'hello' command to your environment. It prints a friendly
# # "Hello, world!" when run. # # "Hello, world!" when run.
# pkgs.hello # pkgs.hello
@ -35,14 +45,54 @@
# echo "Hello, ${config.home.username}!" # echo "Hello, ${config.home.username}!"
# '') # '')
]; ];
programs.neovim = { programs.neovim = {
viAlias = true; viAlias = true;
vimAlias = true; vimAlias = true;
extraPackages = with pkgs; [
lua-language-server
nil
alejandra
];
}; };
#Link neovim config into nix #Link neovim config into nix
xdg.configFile.nvim.source = ./nvim; #xdg.configFile.nvim.source = ./nvim;
programs.kitty = {
enable = true;
theme = "Catppuccin-Mocha";
extraConfig = "font_family Iosevka NF
italic_font auto
bold_italic_font auto
bold_font auto";
};
programs.fish = {
enable = true;
plugins = [
{
name = "tide";
src = pkgs.fishPlugins.tide.src;
}
];
};
/*
programs.zsh = {
oh-my-zsh = {
enable = true;
plugins = [ "git" "extract"];
};
enableAutosuggestions = true;
enableCompletion = true;
syntaxHighlighting.enable = true;
plugins = [
{name = "powerlevel10k";src = pkgs.zsh-powerlevel10k;file = "share/zsh-powerlevel10k/powerlevel10k.zsh-theme";}
];
};
*/
# Home Manager is pretty good at managing dotfiles. The primary way to manage # Home Manager is pretty good at managing dotfiles. The primary way to manage
# plain files is through 'home.file'. # plain files is through 'home.file'.
@ -70,7 +120,9 @@
# #
# if you don't want to manage your shell through Home Manager. # if you don't want to manage your shell through Home Manager.
home.sessionVariables = { home.sessionVariables = {
# EDITOR = "emacs"; EDITOR = "nvim";
TERMINAL = "kitty";
BROWSER = "firefox";
}; };
# Let Home Manager install and manage itself. # Let Home Manager install and manage itself.