Compare commits
2 Commits
235a6d3ce9
...
d9f3667421
Author | SHA1 | Date |
---|---|---|
|
d9f3667421 | |
|
c57e7cd2c2 |
|
@ -32,169 +32,6 @@
|
|||
environment.etc."nginx/certs/sovr.key" = {
|
||||
source = ./certs/sovr.key;
|
||||
};
|
||||
# Bluetooth
|
||||
hardware.bluetooth.enable = true; # enables support for Bluetooth
|
||||
hardware.bluetooth.powerOnBoot = true; # powers up the default Bluetooth controller on boot
|
||||
hardware.printers = {
|
||||
ensureDefaultPrinter = "HL-L8250CDW";
|
||||
ensurePrinters = [{
|
||||
name = "HL-L8250CDW";
|
||||
deviceUri = "ipps://192.168.88.10/ipp/print";
|
||||
model = "Brother_HL-L8250CDN.ppd";
|
||||
description = "Brother HL-L8250CDW";
|
||||
location = "kids desks";
|
||||
ppdOptions = {
|
||||
PageSize = "Letter";
|
||||
Duplex = "DuplexNoTumble"; # Double-sided along the long edge
|
||||
Resolution = "600dpi";
|
||||
PrintQuality = "4";
|
||||
PwgRasterDocumentType = "Rgb_8";
|
||||
};
|
||||
}];
|
||||
};
|
||||
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.users.eliribble = {
|
||||
home.homeDirectory = "/home/eliribble";
|
||||
# The home.stateVersion option does not have a default and must be set
|
||||
home.stateVersion = "24.05";
|
||||
home.username = "eliribble";
|
||||
home.file.".config/nvim/after/ftplugin/html.vim".source = ./home/eliribble/config/nvim/after/ftplugin/html.vim;
|
||||
home.file.".config/nvim/after/ftplugin/go.vim".source = ./home/eliribble/config/nvim/after/ftplugin/go.vim;
|
||||
home.file.".config/tmux/tmux.conf".source = ./home/eliribble/config/tmux/tmux.conf;
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
interactiveShellInit = ''
|
||||
set fish_greeting # Disable greeting
|
||||
'';
|
||||
#plugins = [
|
||||
#{ name = "grc"; src = pkgs.fishPlugins.grc.src; }
|
||||
#];
|
||||
};
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userName = "Eli Ribble";
|
||||
userEmail = "eli@theribbles.org";
|
||||
};
|
||||
};
|
||||
networking.extraHosts = ''
|
||||
192.168.1.5 pihole.home.arpa
|
||||
127.0.0.1 sovr.home.arpa
|
||||
'';
|
||||
networking.hostName = "nalai"; # Define your hostname.
|
||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||
|
||||
# Configure network proxy if necessary
|
||||
# networking.proxy.default = "http://user:password@proxy:port/";
|
||||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||
|
||||
# Enable networking
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "America/Phoenix";
|
||||
|
||||
# Select internationalisation properties.
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
|
||||
i18n.extraLocaleSettings = {
|
||||
LC_ADDRESS = "en_US.UTF-8";
|
||||
LC_IDENTIFICATION = "en_US.UTF-8";
|
||||
LC_MEASUREMENT = "en_US.UTF-8";
|
||||
LC_MONETARY = "en_US.UTF-8";
|
||||
LC_NAME = "en_US.UTF-8";
|
||||
LC_NUMERIC = "en_US.UTF-8";
|
||||
LC_PAPER = "en_US.UTF-8";
|
||||
LC_TELEPHONE = "en_US.UTF-8";
|
||||
LC_TIME = "en_US.UTF-8";
|
||||
};
|
||||
|
||||
# Enable the KDE Plasma Desktop Environment.
|
||||
services.displayManager.sddm.enable = true;
|
||||
services.desktopManager.plasma6.enable = true;
|
||||
|
||||
services.nginx.enable = true;
|
||||
services.nginx.virtualHosts."sovr.home.arpa" = {
|
||||
addSSL = true;
|
||||
enableACME = false;
|
||||
sslCertificate = "/etc/nginx/certs/sovr.crt";
|
||||
sslCertificateKey = "/etc/nginx/certs/sovr.key";
|
||||
locations."/" = {
|
||||
proxyPass = "http://127.0.0.1:8080";
|
||||
};
|
||||
};
|
||||
|
||||
# Enable CUPS to print documents.
|
||||
services.printing.enable = true;
|
||||
services.printing.drivers = [
|
||||
# This PPD file was extracted from a windows BR-Script driver from the Brother website
|
||||
# named 'Y13D_C1-ps-64-120-enus.EXE' when downloaded. I then used '7zz x <file>' to extract it
|
||||
# and 'msexpand USA/brphl8250cdn.pp_' to expand it. Those tools are available in the _7zz and mscompress
|
||||
# modules, respectively: 'nix-shell -p _7zz mscompress'.
|
||||
(pkgs.writeTextDir "share/cups/model/Brother_HL-L8250CDN.ppd" (builtins.readFile ./Brother_HL-L8250CDN.ppd))
|
||||
# See https://github.com/NixOS/nixpkgs/issues/78535#issuecomment-2200268221
|
||||
# for an attempt at making this work when away from the printer
|
||||
];
|
||||
|
||||
# Enable rpcbind for nfs mounting
|
||||
services.rpcbind.enable = true;
|
||||
|
||||
# Enable the X11 windowing system.
|
||||
# You can disable this if you're only using the Wayland session.
|
||||
services.xserver.enable = true;
|
||||
|
||||
# Configure keymap in X11
|
||||
services.xserver.xkb = {
|
||||
layout = "us";
|
||||
};
|
||||
|
||||
# Enable sound with pipewire.
|
||||
hardware.pulseaudio.enable = false;
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
# If you want to use JACK applications, uncomment this
|
||||
#jack.enable = true;
|
||||
|
||||
# use the example session manager (no others are packaged yet so this is enabled by default,
|
||||
# no need to redefine it in your config for now)
|
||||
#media-session.enable = true;
|
||||
};
|
||||
services.resolved.enable = true;
|
||||
services.tailscale.enable = true;
|
||||
|
||||
# Enable touchpad support (enabled default in most desktopManager).
|
||||
# services.xserver.libinput.enable = true;
|
||||
|
||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||
users.users.eliribble = {
|
||||
isNormalUser = true;
|
||||
description = "Eli Ribble";
|
||||
extraGroups = [ "adbusers" "libvirtd" "networkmanager" "wheel" ];
|
||||
packages = with pkgs; [
|
||||
kdePackages.kate
|
||||
# thunderbird
|
||||
];
|
||||
};
|
||||
|
||||
# Set up Android dev tools
|
||||
programs.adb.enable = true;
|
||||
|
||||
# Install firefox.
|
||||
programs.firefox.enable = true;
|
||||
|
||||
# Set neovim as the default editor
|
||||
programs.neovim.enable = true;
|
||||
programs.neovim.defaultEditor = true;
|
||||
programs.virt-manager.enable = true;
|
||||
|
||||
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
|
||||
"brgenml1lpr" "lunar-client" "spotify"
|
||||
];
|
||||
|
||||
# List packages installed in system profile. To search, run:
|
||||
# $ nix search wget
|
||||
environment.systemPackages = with pkgs; [
|
||||
|
@ -245,24 +82,184 @@
|
|||
websocat
|
||||
];
|
||||
|
||||
# Some programs need SUID wrappers, can be configured further or are
|
||||
# started in user sessions.
|
||||
# programs.mtr.enable = true;
|
||||
# programs.gnupg.agent = {
|
||||
# enable = true;
|
||||
# enableSSHSupport = true;
|
||||
# };
|
||||
# Bluetooth
|
||||
hardware.bluetooth.enable = true; # enables support for Bluetooth
|
||||
hardware.bluetooth.powerOnBoot = true; # powers up the default Bluetooth controller on boot
|
||||
hardware.printers = {
|
||||
ensureDefaultPrinter = "HL-L8250CDW";
|
||||
ensurePrinters = [{
|
||||
name = "HL-L8250CDW";
|
||||
deviceUri = "ipps://192.168.88.10/ipp/print";
|
||||
model = "Brother_HL-L8250CDN.ppd";
|
||||
description = "Brother HL-L8250CDW";
|
||||
location = "kids desks";
|
||||
ppdOptions = {
|
||||
PageSize = "Letter";
|
||||
Duplex = "DuplexNoTumble"; # Double-sided along the long edge
|
||||
Resolution = "600dpi";
|
||||
PrintQuality = "4";
|
||||
PwgRasterDocumentType = "Rgb_8";
|
||||
};
|
||||
}];
|
||||
};
|
||||
hardware.pulseaudio.enable = false;
|
||||
|
||||
# List services that you want to enable:
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.users.eliribble = {
|
||||
home.homeDirectory = "/home/eliribble";
|
||||
# The home.stateVersion option does not have a default and must be set
|
||||
home.stateVersion = "24.05";
|
||||
home.username = "eliribble";
|
||||
home.file.".config/nvim/after/ftplugin/html.vim".source = ./home/eliribble/config/nvim/after/ftplugin/html.vim;
|
||||
home.file.".config/nvim/after/ftplugin/go.vim".source = ./home/eliribble/config/nvim/after/ftplugin/go.vim;
|
||||
home.file.".config/tmux/tmux.conf".source = ./home/eliribble/config/tmux/tmux.conf;
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
interactiveShellInit = ''
|
||||
set fish_greeting # Disable greeting
|
||||
'';
|
||||
#plugins = [
|
||||
#{ name = "grc"; src = pkgs.fishPlugins.grc.src; }
|
||||
#];
|
||||
};
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userName = "Eli Ribble";
|
||||
userEmail = "eli@theribbles.org";
|
||||
};
|
||||
};
|
||||
# Select internationalisation properties.
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
|
||||
# Enable the OpenSSH daemon.
|
||||
# services.openssh.enable = true;
|
||||
i18n.extraLocaleSettings = {
|
||||
LC_ADDRESS = "en_US.UTF-8";
|
||||
LC_IDENTIFICATION = "en_US.UTF-8";
|
||||
LC_MEASUREMENT = "en_US.UTF-8";
|
||||
LC_MONETARY = "en_US.UTF-8";
|
||||
LC_NAME = "en_US.UTF-8";
|
||||
LC_NUMERIC = "en_US.UTF-8";
|
||||
LC_PAPER = "en_US.UTF-8";
|
||||
LC_TELEPHONE = "en_US.UTF-8";
|
||||
LC_TIME = "en_US.UTF-8";
|
||||
};
|
||||
|
||||
networking.extraHosts = ''
|
||||
192.168.1.5 pihole.home.arpa
|
||||
127.0.0.1 sovr.home.arpa
|
||||
'';
|
||||
# Open ports in the firewall.
|
||||
networking.firewall.allowedTCPPorts = [ 5353 50007 ];
|
||||
networking.firewall.allowedUDPPorts = [ 5353 50007 ];
|
||||
# Or disable the firewall altogether.
|
||||
# networking.firewall.enable = false;
|
||||
|
||||
networking.hostName = "nalai"; # Define your hostname.
|
||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||
|
||||
# Configure network proxy if necessary
|
||||
# networking.proxy.default = "http://user:password@proxy:port/";
|
||||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||
|
||||
# Enable networking
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
nix.settings.experimental-features = [ "flakes" "nix-command" ];
|
||||
|
||||
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
|
||||
"brgenml1lpr" "lunar-client" "spotify"
|
||||
];
|
||||
|
||||
# Set up Android dev tools
|
||||
programs.adb.enable = true;
|
||||
|
||||
# Install firefox.
|
||||
programs.firefox.enable = true;
|
||||
|
||||
# Set neovim as the default editor
|
||||
programs.neovim.enable = true;
|
||||
programs.neovim.defaultEditor = true;
|
||||
programs.virt-manager.enable = true;
|
||||
|
||||
# Enable the KDE Plasma Desktop Environment.
|
||||
services.displayManager.sddm.enable = true;
|
||||
services.desktopManager.plasma6.enable = true;
|
||||
|
||||
services.nginx.enable = true;
|
||||
services.nginx.virtualHosts."sovr.home.arpa" = {
|
||||
addSSL = true;
|
||||
enableACME = false;
|
||||
sslCertificate = "/etc/nginx/certs/sovr.crt";
|
||||
sslCertificateKey = "/etc/nginx/certs/sovr.key";
|
||||
locations."/" = {
|
||||
proxyPass = "http://127.0.0.1:8080";
|
||||
};
|
||||
};
|
||||
|
||||
# Enable CUPS to print documents.
|
||||
services.printing.enable = true;
|
||||
services.printing.drivers = [
|
||||
# This PPD file was extracted from a windows BR-Script driver from the Brother website
|
||||
# named 'Y13D_C1-ps-64-120-enus.EXE' when downloaded. I then used '7zz x <file>' to extract it
|
||||
# and 'msexpand USA/brphl8250cdn.pp_' to expand it. Those tools are available in the _7zz and mscompress
|
||||
# modules, respectively: 'nix-shell -p _7zz mscompress'.
|
||||
(pkgs.writeTextDir "share/cups/model/Brother_HL-L8250CDN.ppd" (builtins.readFile ./Brother_HL-L8250CDN.ppd))
|
||||
# See https://github.com/NixOS/nixpkgs/issues/78535#issuecomment-2200268221
|
||||
# for an attempt at making this work when away from the printer
|
||||
];
|
||||
|
||||
# Enable rpcbind for nfs mounting
|
||||
services.rpcbind.enable = true;
|
||||
|
||||
# Enable the X11 windowing system.
|
||||
# You can disable this if you're only using the Wayland session.
|
||||
services.xserver.enable = true;
|
||||
|
||||
# Configure keymap in X11
|
||||
services.xserver.xkb = {
|
||||
layout = "us";
|
||||
};
|
||||
|
||||
# Enable sound with pipewire.
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
# If you want to use JACK applications, uncomment this
|
||||
#jack.enable = true;
|
||||
|
||||
# use the example session manager (no others are packaged yet so this is enabled by default,
|
||||
# no need to redefine it in your config for now)
|
||||
#media-session.enable = true;
|
||||
};
|
||||
services.resolved.enable = true;
|
||||
services.tailscale.enable = true;
|
||||
|
||||
# Enable touchpad support (enabled default in most desktopManager).
|
||||
# services.xserver.libinput.enable = true;
|
||||
|
||||
systemd.network.enable = true;
|
||||
systemd.network.wait-online.enable = false;
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "America/Phoenix";
|
||||
|
||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||
users.users.eliribble = {
|
||||
isNormalUser = true;
|
||||
description = "Eli Ribble";
|
||||
extraGroups = [ "adbusers" "libvirtd" "networkmanager" "wheel" ];
|
||||
packages = with pkgs; [
|
||||
kdePackages.kate
|
||||
# thunderbird
|
||||
];
|
||||
};
|
||||
|
||||
virtualisation.docker.enable = false;
|
||||
virtualisation.libvirtd.enable = true;
|
||||
virtualisation.podman.enable = true;
|
||||
|
||||
# This value determines the NixOS release from which the default
|
||||
# settings for stateful data, like file locations and database versions
|
||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||
|
@ -270,11 +267,4 @@
|
|||
# Before changing this value read the documentation for this option
|
||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||
system.stateVersion = "24.05"; # Did you read the comment?
|
||||
|
||||
systemd.network.enable = true;
|
||||
systemd.network.wait-online.enable = false;
|
||||
|
||||
virtualisation.docker.enable = false;
|
||||
virtualisation.libvirtd.enable = true;
|
||||
virtualisation.podman.enable = true;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue