import tree is cool
This commit is contained in:
@@ -1,13 +0,0 @@
|
||||
# It's NixOS!
|
||||
|
||||
Hello MtV and welcome to my crib. These are all the things pertaining to my nixos stuff.
|
||||
|
||||
- [./common.nix](./common.nix) is all the common things that hosts will have configured
|
||||
- Services
|
||||
- locale settings
|
||||
- timezone
|
||||
- [./gui1](./gui1.nix) all config things for a linux UX experience, KDE Plasma in this instance, but perhaps there could be a gui2 someday...
|
||||
- [./qlhc.nix](./qlhc.nix) this stands for quins-laptop-hardware-configuraion. I'll find a better way to do this stuff later.
|
||||
- [./user-quin](./user-quin.nix) my personal user account, here for all to see.
|
||||
- packages
|
||||
- groups
|
||||
@@ -1,37 +0,0 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
# Base system things that all should know and love
|
||||
system.stateVersion = "25.11";
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
time.timeZone = "America/New_York";
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
#Services
|
||||
virtualisation.docker.enable = true; # Docker
|
||||
services.printing.enable = true; # CUPS
|
||||
services.tailscale.enable = true; # Tailscale
|
||||
|
||||
nix.settings.experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
|
||||
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";
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
git
|
||||
tailscale
|
||||
];
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
# GUI / UX
|
||||
services.xserver.enable = true;
|
||||
services.xserver.excludePackages = [
|
||||
pkgs.xterm
|
||||
];
|
||||
services.displayManager.sddm.enable = true;
|
||||
services.desktopManager.plasma6.enable = true;
|
||||
services.xserver.xkb = {
|
||||
layout = "us";
|
||||
variant = "";
|
||||
};
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
let
|
||||
mountName = "mega";
|
||||
mountPath = "/mnt/${mountName}";
|
||||
waitForFile = "/mnt/${mountName}/mega_connected";
|
||||
rcloneBucket = "data:enc";
|
||||
rcloneConfigPath = "/etc/rclone.conf";
|
||||
in
|
||||
{
|
||||
|
||||
# Service that is good to wait on for the mount to be successful
|
||||
systemd.services."${mountName}-mount-wait" = {
|
||||
description = "Rclone mount wait service, good if you want other services to wait for it";
|
||||
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network.target" ];
|
||||
path = [ pkgs.bash ];
|
||||
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
ExecStart = "${pkgs.bash}/bin/bash -c 'while [ ! -e ${waitForFile} ]; do sleep 1; done'";
|
||||
RemainAfterExit = true;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
# Actual mount service
|
||||
systemd.services."${mountName}-mount" = {
|
||||
description = "Rclone mount '${mountName}'";
|
||||
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network.target" ];
|
||||
path = [ pkgs.bash ];
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.rclone}/bin/rclone mount ${rcloneBucket} ${mountPath} -vv --vfs-cache-mode full --allow-other --fuse-flag allow_other --dir-perms 0777 --file-perms 0777 --umask 0 --dir-cache-time 300h --config ${rcloneConfigPath}";
|
||||
ExecStop = "umount /mnt/mega";
|
||||
};
|
||||
};
|
||||
|
||||
# If docker is installed we'll make it wait to start
|
||||
systemd.services.docker.after = ["${mountName}-mount-wait.service"];
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
# My user for now
|
||||
users.users.qmoran = {
|
||||
isNormalUser = true;
|
||||
description = "quin";
|
||||
extraGroups = [
|
||||
"wheel"
|
||||
"docker"
|
||||
"networkmanager"
|
||||
];
|
||||
packages = with pkgs; [
|
||||
gh
|
||||
btop
|
||||
ctop
|
||||
signal-desktop
|
||||
lazygit
|
||||
element-desktop
|
||||
vivaldi
|
||||
libreoffice-qt-fresh
|
||||
trash-cli
|
||||
lutris
|
||||
vlc
|
||||
gparted
|
||||
kitty
|
||||
neovim
|
||||
gimp
|
||||
kicad-small
|
||||
rpi-imager
|
||||
vscodium-fhs
|
||||
];
|
||||
};
|
||||
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
|
||||
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
|
||||
localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user