desktop config

This commit is contained in:
Chris Dombroski 2024-04-13 14:13:38 -04:00
parent 3d5c6fc153
commit 3ebaf47f26
7 changed files with 215 additions and 12 deletions

1
.envrc Normal file
View file

@ -0,0 +1 @@
use flake;

1
.gitignore vendored
View file

@ -1 +1,2 @@
.direnv/
result result

View file

@ -30,7 +30,10 @@
in in
{ {
nixosConfigurations = { nixosConfigurations = {
#smolboi.modules = [ ./systems/smolboi/configuration.nix ]; smolboi = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [ ./systems/smolboi/configuration.nix ];
};
orangepihole = nixpkgs.lib.nixosSystem { orangepihole = nixpkgs.lib.nixosSystem {
system = "aarch64-linux"; system = "aarch64-linux";
modules = [ ./systems/orangepihole/configuration.nix ]; modules = [ ./systems/orangepihole/configuration.nix ];
@ -40,9 +43,12 @@
sshUser = "root"; sshUser = "root";
fastConnection = true; fastConnection = true;
nodes = { nodes = {
smolboi = {
hostname = "smolboi";
profiles.system.path = deployPkgs.deploy-rs.lib.activate.nixos self.nixosConfigurations.smolboi;
};
orangepihole = { orangepihole = {
hostname = "orangepihole"; hostname = "orangepihole";
profiles.system.user = "root";
profiles.system.path = deployAarch64Pkgs.deploy-rs.lib.activate.nixos self.nixosConfigurations.orangepihole; profiles.system.path = deployAarch64Pkgs.deploy-rs.lib.activate.nixos self.nixosConfigurations.orangepihole;
}; };
}; };

View file

@ -82,7 +82,6 @@
networking.firewall.enable = false; networking.firewall.enable = false;
system.stateVersion = "23.11"; # Did you read the comment? system.stateVersion = "23.11"; # Did you read the comment?
system.autoUpgrade.enable = true;
system.autoUpgrade.allowReboot = false; system.autoUpgrade.allowReboot = false;
nix.settings.experimental-features = [ "nix-command" "flakes" ]; nix.settings.experimental-features = [ "nix-command" "flakes" ];

View file

@ -49,6 +49,7 @@
gc = { gc = {
automatic = true; automatic = true;
options = "--delete-older-than 30d"; options = "--delete-older-than 30d";
dates = "weekly";
}; };
optimise.automatic = true; optimise.automatic = true;
}; };
@ -127,6 +128,7 @@
hardware.openrgb.enable = true; hardware.openrgb.enable = true;
resolved.enable = true; resolved.enable = true;
btrfs.autoScrub.enable = true; btrfs.autoScrub.enable = true;
openssh.enable = true;
}; };
hardware = { hardware = {
sane = { sane = {
@ -160,6 +162,9 @@
# tree # tree
# ]; # ];
# }; # };
users.users.root.openssh.authorizedKeys.keys = [
"ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAgEApZvmNao6HvjOI3NQ96+Hu+N4MTw20KSvrx7ml8/PD4zb5GXo2sXRROHy0VclIXBEPKPKq93QGCMhfCR0jvr2tSib5CwrCMDnjjRxGJV36jhCE1mOV6TKis1MDdigg/7NSVf+eszUW4ed6CSDNFu3ooVZSwdf4Tja2672ROk1W59rDbfgs0Et7pRNnmWM1q+sTbD0eRbY9+0DXBhx5u4OVjp6eNNmO59WGErVvAAjOnZR3rw2LSX7MDrtzeCe1sdR/28WGPIIUVL8eCorlhzPB6PfrTL1Y/fbWAOGdvs6h+wTPX3ivTlrs8J5AXERCymp/CXIA1mwVjnM9zOklFhun+VvCNNJsZPSM62jrHfD4bP11y1kSt87TORGW517nWdS80oUY6MwxRcN2salwWzZA0sVjIHmvc4FkAuPHhdlMQpkym9fpFfR9taWlxU2NMP/+Quj3NaAPKksPvUGwos8lP8Z+QF5ljedNZFsC5/S0u6Fqoa26zRTnVki4KhfGPyKHXIUp9kNV7PRz4oRizHibUfp05xVMACtVIn+pQU7CaQEJCdYfLpo9gMDZ+6ZanmQX0vCUEyiaimrF/eSCkzjBtqSKMRHLd6ADEFEDxSr5nfaqgkddQVkQiBvngCnKwYcKfINA5mYIIFJZyLxpki03SHT6qGT541iHT3OX9F4MBc="
];
users.users.cdombroski = { users.users.cdombroski = {
isNormalUser = true; isNormalUser = true;
extraGroups = [ "wheel" ]; extraGroups = [ "wheel" ];
@ -260,14 +265,5 @@
# #
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
system.stateVersion = "23.11"; # Did you read the comment? system.stateVersion = "23.11"; # Did you read the comment?
system.autoUpgrade = {
enable = true;
flake = "/home/cdombroski/.dotfiles";
flags = [
"--update-input"
"nixpkgs"
];
};
} }

View file

@ -0,0 +1,57 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/d0eb1b09-7fba-49e3-b802-d6fdd9073516";
fsType = "btrfs";
options = [ "subvol=@nixos/root" ];
};
fileSystems."/steam-library" =
{ device = "/dev/disk/by-uuid/d0eb1b09-7fba-49e3-b802-d6fdd9073516";
fsType = "btrfs";
options = [ "subvol=@steam-library" ];
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/1ADE-808D";
fsType = "vfat";
};
fileSystems."/home" =
{ device = "/dev/disk/by-uuid/8597952f-be42-4361-9be1-2c4af6ede9b8";
fsType = "btrfs";
options = [ "subvol=@home" ];
};
fileSystems."/nix" =
{ device = "/dev/disk/by-uuid/d0eb1b09-7fba-49e3-b802-d6fdd9073516";
fsType = "btrfs";
options = [ "subvol=@nixos/nix" ];
};
swapDevices = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.eno1.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp5s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

143
systems/smolboi/home.nix Normal file
View file

@ -0,0 +1,143 @@
{ config, pkgs, lib, ... }:
{
# Home Manager needs a bit of information about you and the paths it should
# manage.
home.username = "cdombroski";
home.homeDirectory = "/home/cdombroski";
# This value determines the Home Manager release that your configuration is
# compatible with. This helps avoid breakage when a new Home Manager release
# introduces backwards incompatible changes.
#
# You should not change this value, even if you update Home Manager. If you do
# want to update the value, then make sure to first check the Home Manager
# release notes.
home.stateVersion = "23.11"; # Please read the comment before changing.
# The home.packages option allows you to install Nix packages into your
# environment.
home.packages = with pkgs; [
element-desktop
discord
openrgb-with-all-plugins
keepassxc
heroic
yuzu-mainline
r2modman
mangohud
hack-font
htop
jellyfin-media-player
nodejs
konversation
nixd
yakuake
mgba
vlc
jetbrains.idea-community
dolphin-emu-primehack
steamtinkerlaunch
(retroarch.override {
cores = with libretro; [
beetle-psx-hw
pcsx2
mesen
bsnes
parallel-n64
dolphin
sameboy
citra
gpsp
desmume
fbneo
nxengine
mgba
];
})
# # Adds the 'hello' command to your environment. It prints a friendly
# # "Hello, world!" when run.
# pkgs.hello
# # It is sometimes useful to fine-tune packages, for example, by applying
# # overrides. You can do that directly here, just don't forget the
# # parentheses. Maybe you want to install Nerd Fonts with a limited number of
# # fonts?
# (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
# # You can also create simple shell scripts directly inside your
# # configuration. For example, this adds a command 'my-hello' to your
# # environment:
# (pkgs.writeShellScriptBin "my-hello" ''
# echo "Hello, ${config.home.username}!"
# '')
];
nixpkgs.config = {
allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
"discord"
];
permittedInsecurePackages = [
"electron-25.9.0"
];
};
xdg.configFile."autostart/yakuake.desktop".source = "${pkgs.yakuake.outPath}/share/applications/org.kde.yakuake.desktop";
# Home Manager is pretty good at managing dotfiles. The primary way to manage
# plain files is through 'home.file'.
home.file = {
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
# # symlink to the Nix store copy.
# ".screenrc".source = dotfiles/screenrc;
# # You can also set the file content immediately.
# ".gradle/gradle.properties".text = ''
# org.gradle.console=verbose
# org.gradle.daemon.idletimeout=3600000
# '';
};
# Home Manager can also manage your environment variables through
# 'home.sessionVariables'. If you don't want to manage your shell through Home
# Manager then you have to manually source 'hm-session-vars.sh' located at
# either
#
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
#
# or
#
# ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
#
# or
#
# /etc/profiles/per-user/cdombroski/etc/profile.d/hm-session-vars.sh
#
home.sessionVariables = {
# EDITOR = "emacs";
};
home.sessionPath = [ "$HOME/.local/bin" ];
# Let Home Manager install and manage itself.
programs = {
home-manager.enable = true;
bash = {
enable = true;
enableCompletion = true;
};
direnv = {
enable = true;
nix-direnv.enable = true;
};
vim = {
enable = true;
defaultEditor = true;
plugins = with pkgs.vimPlugins; [ vim-sensible vim-fugitive vim-eunuch vim-endwise vim-lsp vim-lsp-settings nerdtree nerdtree-git-plugin vim-devicons editorconfig-vim ];
};
vscode = {
enable = true;
package = pkgs.vscodium-fhs;
};
};
}