mirror of
https://github.com/nmasur/dotfiles
synced 2025-07-06 19:00:14 +00:00
initial refactoring
This commit is contained in:
33
platforms/nixos/modules/nmasur/presets/programs/calendar.nix
Normal file
33
platforms/nixos/modules/nmasur/presets/programs/calendar.nix
Normal file
@ -0,0 +1,33 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.nmasur.presets.programs.calendar;
|
||||
in
|
||||
|
||||
{
|
||||
|
||||
options.nmasur.presets.programs.calendar.enable = lib.mkEnableOption "Calendar application";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
|
||||
accounts.calendar.accounts.default = {
|
||||
basePath = "other/calendars"; # Where to save calendars in ~ directory
|
||||
name = "personal";
|
||||
local.type = "filesystem";
|
||||
primary = true;
|
||||
remote = {
|
||||
passwordCommand = [ "" ];
|
||||
type = "caldav";
|
||||
url = "https://${config.hostnames.content}/remote.php/dav/principals/users/${config.user}";
|
||||
userName = config.user;
|
||||
};
|
||||
};
|
||||
|
||||
home.packages = [ pkgs.gnome-calendar ];
|
||||
};
|
||||
}
|
42
platforms/nixos/modules/nmasur/presets/programs/doas.nix
Normal file
42
platforms/nixos/modules/nmasur/presets/programs/doas.nix
Normal file
@ -0,0 +1,42 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.nmasur.presets.programs.doas;
|
||||
in
|
||||
|
||||
{
|
||||
|
||||
options.nmasur.presets.programs.doas.enable = lib.mkEnableOption "doas sudo alternative";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
|
||||
security = {
|
||||
|
||||
# Remove sudo
|
||||
sudo.enable = false;
|
||||
|
||||
# Add doas
|
||||
doas = {
|
||||
enable = true;
|
||||
|
||||
# No password required for trusted users
|
||||
wheelNeedsPassword = false;
|
||||
|
||||
# Pass environment variables from user to root
|
||||
# Also requires specifying that we are removing password here
|
||||
extraRules = [
|
||||
{
|
||||
groups = [ "wheel" ];
|
||||
noPass = true;
|
||||
keepEnv = true;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
}
|
@ -0,0 +1,43 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.nmasur.presets.programs.dwarf-fortress;
|
||||
in
|
||||
|
||||
{
|
||||
|
||||
options.nmasur.presets.programs.dwarf-fortress.enable = lib.mkEnableOption "Dwarf Fortress";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
unfreePackages = [
|
||||
"dwarf-fortress"
|
||||
"phoebus-theme"
|
||||
];
|
||||
environment.systemPackages =
|
||||
let
|
||||
dfDesktopItem = pkgs.makeDesktopItem {
|
||||
name = "dwarf-fortress";
|
||||
desktopName = "Dwarf Fortress";
|
||||
exec = "${pkgs.dwarf-fortress-packages.dwarf-fortress-full}/bin/dfhack";
|
||||
terminal = false;
|
||||
};
|
||||
dtDesktopItem = pkgs.makeDesktopItem {
|
||||
name = "dwarftherapist";
|
||||
desktopName = "Dwarf Therapist";
|
||||
exec = "${pkgs.dwarf-fortress-packages.dwarf-fortress-full}/bin/dwarftherapist";
|
||||
terminal = false;
|
||||
};
|
||||
in
|
||||
[
|
||||
pkgs.dwarf-fortress-packages.dwarf-fortress-full
|
||||
dfDesktopItem
|
||||
dtDesktopItem
|
||||
];
|
||||
|
||||
};
|
||||
}
|
29
platforms/nixos/modules/nmasur/presets/programs/nautilus.nix
Normal file
29
platforms/nixos/modules/nmasur/presets/programs/nautilus.nix
Normal file
@ -0,0 +1,29 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.nmasur.presets.programs.nautilus;
|
||||
in
|
||||
|
||||
{
|
||||
|
||||
options.nmasur.presets.programs.nautilus.enable = lib.mkEnableOption "Nautilus file manager";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
|
||||
environment.systemPackages = [ pkgs.nautilus ];
|
||||
|
||||
# Quick preview with spacebar
|
||||
services.gnome.sushi.enable = true;
|
||||
|
||||
# Allow client browsing Samba and virtual filesystem shares
|
||||
services.gvfs = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
};
|
||||
}
|
48
platforms/nixos/modules/nmasur/presets/programs/steam.nix
Normal file
48
platforms/nixos/modules/nmasur/presets/programs/steam.nix
Normal file
@ -0,0 +1,48 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.nmasur.presets.programs.steam;
|
||||
in
|
||||
|
||||
{
|
||||
|
||||
options.nmasur.presets.programs.steam.enable = lib.mkEnableOption "Steam game client";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
hardware.steam-hardware.enable = true;
|
||||
unfreePackages = [
|
||||
"steam"
|
||||
"steam-original"
|
||||
"steamcmd"
|
||||
"steam-run"
|
||||
"steam-unwrapped"
|
||||
];
|
||||
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
remotePlay.openFirewall = true;
|
||||
extraCompatPackages = [ pkgs.proton-ge-bin ];
|
||||
gamescopeSession.enable = true;
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
|
||||
# Enable terminal interaction
|
||||
steamcmd
|
||||
steam-tui
|
||||
|
||||
# Overlay with performance monitoring
|
||||
mangohud
|
||||
];
|
||||
|
||||
# Seems like NetworkManager can help speed up Steam launch
|
||||
# https://www.reddit.com/r/archlinux/comments/qguhco/steam_startup_time_arch_1451_seconds_fedora_34/hi8opet/
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
};
|
||||
}
|
18
platforms/nixos/modules/nmasur/presets/programs/template.nix
Normal file
18
platforms/nixos/modules/nmasur/presets/programs/template.nix
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.nmasur.presets.programs.;
|
||||
in
|
||||
|
||||
{
|
||||
|
||||
options.nmasur.presets.programs..enable = lib.mkEnableOption "";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
};
|
||||
}
|
27
platforms/nixos/modules/nmasur/presets/programs/zfs.nix
Normal file
27
platforms/nixos/modules/nmasur/presets/programs/zfs.nix
Normal file
@ -0,0 +1,27 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.nmasur.presets.services.zfs;
|
||||
in
|
||||
|
||||
{
|
||||
|
||||
options.nmasur.presets.services.zfs.enable = lib.mkEnableOption "ZFS file system";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
|
||||
# Only use compatible Linux kernel, since ZFS can be behind
|
||||
boot.kernelPackages = pkgs.linuxPackages; # Defaults to latest LTS
|
||||
boot.kernelParams = [ "nohibernate" ]; # ZFS does not work with hibernation
|
||||
boot.supportedFilesystems = [ "zfs" ];
|
||||
services.prometheus.exporters.zfs.enable = config.prometheus.exporters.enable;
|
||||
prometheus.scrapeTargets = [
|
||||
"127.0.0.1:${builtins.toString config.services.prometheus.exporters.zfs.port}"
|
||||
];
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user