mirror of
https://github.com/moons-14/dotfiles.git
synced 2026-10-06 11:54:11 +09:00
fix
This commit is contained in:
@@ -12,12 +12,13 @@
|
|||||||
./gnupg.nix
|
./gnupg.nix
|
||||||
./greetd.nix
|
./greetd.nix
|
||||||
./gtk
|
./gtk
|
||||||
./java.nix
|
./java
|
||||||
./kde.nix
|
./kde.nix
|
||||||
./nautilus.nix
|
./nautilus.nix
|
||||||
./niri
|
./niri
|
||||||
./noctalia
|
./noctalia
|
||||||
./openssh.nix
|
./openssh.nix
|
||||||
|
./slack.nix
|
||||||
./ssh
|
./ssh
|
||||||
./swayidle.nix
|
./swayidle.nix
|
||||||
./tailscale.nix
|
./tailscale.nix
|
||||||
|
|||||||
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.my.applications.java;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.my.applications.java = {
|
|
||||||
enable = lib.mkEnableOption "Java runtime";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
programs.java = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.jdk25;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
cfg = config.my.applications.java;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./home.nix
|
||||||
|
./system.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
options.my.applications.java = {
|
||||||
|
enable = lib.mkEnableOption "Java runtime";
|
||||||
|
system.enable = lib.mkEnableOption "Java system configuration";
|
||||||
|
homeManager.enable = lib.mkEnableOption "Java home-manager configuration";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
my.applications.java.system.enable = lib.mkDefault true;
|
||||||
|
my.applications.java.homeManager.enable = lib.mkDefault true;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
cfg = config.my.applications.java.homeManager;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.applications.java.homeManager = {
|
||||||
|
enable = lib.mkEnableOption "Java home-manager configuration";
|
||||||
|
};
|
||||||
|
|
||||||
|
config.home-manager.sharedModules = [
|
||||||
|
{
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
programs.java = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
cfg = config.my.applications.java.system;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.applications.java.system = {
|
||||||
|
enable = lib.mkEnableOption "Java system configuration";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
programs.java = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.jdk25;
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
jdk25 # Java Development Kit 25
|
||||||
|
maven # Java Build Tool
|
||||||
|
gradle # Java Build Tool
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
cfg = config.my.applications.slack;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.applications.slack = {
|
||||||
|
enable = lib.mkEnableOption "Slack messaging client";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
nixpkgs.config.allowUnfreePredicate = pkg: lib.getName pkg == "slack";
|
||||||
|
|
||||||
|
home-manager.sharedModules = [
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
slack # Team messaging and collaboration platform
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -2,6 +2,7 @@
|
|||||||
imports = [
|
imports = [
|
||||||
./applications
|
./applications
|
||||||
./drivers
|
./drivers
|
||||||
|
./features
|
||||||
./integrations
|
./integrations
|
||||||
./system
|
./system
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
{ lib, config, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.my.features.application.browser;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.features.application.browser = {
|
||||||
|
enable = lib.mkEnableOption "Web browser (Chrome)";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
my.applications.chrome.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
{ lib, config, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.my.features.application.communication;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.features.application.communication = {
|
||||||
|
enable = lib.mkEnableOption "Communication applications (Discord, Zoom, Slack)";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
my.applications = {
|
||||||
|
discord.enable = true;
|
||||||
|
zoom.enable = true;
|
||||||
|
slack.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./browser.nix
|
||||||
|
./communication.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./power.nix
|
||||||
|
./secure-boot.nix
|
||||||
|
./uefi.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
{ lib, config, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.my.features.boot.power;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.features.boot.power = {
|
||||||
|
enable = lib.mkEnableOption "Power management";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
my.system.power.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
{ lib, config, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.my.features.boot.secureBoot;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.features.boot.secureBoot = {
|
||||||
|
enable = lib.mkEnableOption "Secure boot (lanzaboote)";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
my.system.secure-boot.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
{ lib, config, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.my.features.boot.uefi;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.features.boot.uefi = {
|
||||||
|
enable = lib.mkEnableOption "UEFI boot support";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
my.system.boot.uefi.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
cfg = config.my.features.cli.base;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.features.cli.base = {
|
||||||
|
enable = lib.mkEnableOption "Base CLI configuration";
|
||||||
|
sshServer = lib.mkEnableOption "OpenSSH server";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
my.applications = {
|
||||||
|
btop.enable = true;
|
||||||
|
git.enable = true;
|
||||||
|
ssh.enable = true;
|
||||||
|
direnv.enable = true;
|
||||||
|
gnupg.enable = true;
|
||||||
|
openssh.enable = cfg.sshServer;
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
htop # Interactive Process Viewer
|
||||||
|
curl # Tool For Fetching Files With Links
|
||||||
|
wget # Tool For Fetching Files With Links
|
||||||
|
unzip # Tool For Handling .zip Files
|
||||||
|
unrar # Tool For Handling .rar Files
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./base.nix
|
||||||
|
./interactive.nix
|
||||||
|
./shell.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
cfg = config.my.features.cli.interactive;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.features.cli.interactive = {
|
||||||
|
enable = lib.mkEnableOption "Interactive CLI tools (vim, btop, zellij)";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
my.applications = {
|
||||||
|
vim.enable = true;
|
||||||
|
zellij.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
tio # A Simple TTY Terminal I/O Application
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
{ lib, config, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.my.features.cli.shell;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.features.cli.shell = {
|
||||||
|
enable = lib.mkEnableOption "Shell configuration (zsh)";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
my.applications.zsh.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
{ lib, config, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.my.features.connect.bluetooth;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.features.connect.bluetooth = {
|
||||||
|
enable = lib.mkEnableOption "Bluetooth support";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
my.system.hardware.bluetooth.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./bluetooth.nix
|
||||||
|
./wifi.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
{ lib, config, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.my.features.connect.wifi;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.features.connect.wifi = {
|
||||||
|
enable = lib.mkEnableOption "WiFi (NetworkManager) support";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
my.system.network.wifi.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./application
|
||||||
|
./boot
|
||||||
|
./cli
|
||||||
|
./connect
|
||||||
|
./dev
|
||||||
|
./gui
|
||||||
|
./identity
|
||||||
|
./network
|
||||||
|
./services
|
||||||
|
./storage
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
{ lib, config, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.my.features.dev.agent;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.features.dev.agent = {
|
||||||
|
enable = lib.mkEnableOption "AI coding agents (Claude Code)";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
my.applications.claude.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
cfg = config.my.features.dev.bun;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.features.dev.bun = {
|
||||||
|
enable = lib.mkEnableOption "Bun JavaScript runtime";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
bun # A Fast JavaScript Runtime Like Node.js And Deno
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./agent.nix
|
||||||
|
./bun.nix
|
||||||
|
./java.nix
|
||||||
|
./nix.nix
|
||||||
|
./python.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
{ lib, config, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.my.features.dev.java;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.features.dev.java = {
|
||||||
|
enable = lib.mkEnableOption "Java development environment";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
my.applications.java.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
cfg = config.my.features.dev.nix;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.features.dev.nix = {
|
||||||
|
enable = lib.mkEnableOption "Nix development tools (nil language server)";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
nil # Nix Language Server
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
cfg = config.my.features.dev.python;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.features.dev.python = {
|
||||||
|
enable = lib.mkEnableOption "Python development environment";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
python312 # Python 3.12
|
||||||
|
uv # Universal Virtual Environment Manager For Python
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
{ lib, config, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.my.features.gui.audio;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.features.gui.audio = {
|
||||||
|
enable = lib.mkEnableOption "Audio support (PipeWire)";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
my.system.audio.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
{ lib, config, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.my.features.gui.camera;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.features.gui.camera = {
|
||||||
|
enable = lib.mkEnableOption "Camera support";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
my.system.camera.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
cfg = config.my.features.gui.capture;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.features.gui.capture = {
|
||||||
|
enable = lib.mkEnableOption "Screen capture tools (slurp, grim, wf-recorder)";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
slurp # Tool for selecting a region of the screen
|
||||||
|
grim # Screenshot tool for Wayland
|
||||||
|
wf-recorder # Screen recorder for Wayland
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./audio.nix
|
||||||
|
./camera.nix
|
||||||
|
./capture.nix
|
||||||
|
./desktop.nix
|
||||||
|
./editor.nix
|
||||||
|
./file-manager.nix
|
||||||
|
./graphic.nix
|
||||||
|
./jp-input.nix
|
||||||
|
./terminal.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
cfg = config.my.features.gui.desktop;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.features.gui.desktop = {
|
||||||
|
enable = lib.mkEnableOption "Niri Wayland compositor environment";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
my.applications = {
|
||||||
|
gtk.enable = true;
|
||||||
|
niri.enable = true;
|
||||||
|
wayland.enable = true;
|
||||||
|
greetd.enable = true;
|
||||||
|
noctalia.enable = true;
|
||||||
|
swayidle.enable = true;
|
||||||
|
vicinae.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
{ lib, config, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.my.features.gui.editor;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.features.gui.editor = {
|
||||||
|
enable = lib.mkEnableOption "GUI code editor (VSCode)";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
my.applications.vscode.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
{ lib, config, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.my.features.gui.fileManager;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.features.gui.fileManager = {
|
||||||
|
enable = lib.mkEnableOption "File manager (Nautilus)";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
my.applications.nautilus.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
{ lib, config, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.my.features.gui.graphic;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.features.gui.graphic = {
|
||||||
|
enable = lib.mkEnableOption "GPU/graphics hardware acceleration";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
my.system.hardware.gui.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
{ lib, config, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.my.features.gui.jpInput;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.features.gui.jpInput = {
|
||||||
|
enable = lib.mkEnableOption "Japanese input method (fcitx5)";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
my.applications.fcitx5.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
cfg = config.my.features.gui.terminal;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.features.gui.terminal = {
|
||||||
|
enable = lib.mkEnableOption "Terminal emulators (Ghostty, Alacritty)";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
my.applications.ghostty.enable = true;
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
alacritty # A GPU Accelerated Terminal Emulator
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./fingerprint.nix
|
||||||
|
./ssh-default-key.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
{ lib, config, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.my.features.identity.fingerprint;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.features.identity.fingerprint = {
|
||||||
|
enable = lib.mkEnableOption "Fingerprint authentication";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
my.system.fingerprint.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
cfg = config.my.features.identity.sshDefaultKey;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.features.identity.sshDefaultKey = {
|
||||||
|
enable = lib.mkEnableOption "Generate default SSH key (ed25519)";
|
||||||
|
};
|
||||||
|
|
||||||
|
config.home-manager.sharedModules = [
|
||||||
|
{
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
home.activation.generateSshKey = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
|
||||||
|
key="$HOME/.ssh/id_ed25519"
|
||||||
|
if [ ! -f "$key" ]; then
|
||||||
|
umask 077
|
||||||
|
mkdir -p "$HOME/.ssh"
|
||||||
|
${pkgs.openssh}/bin/ssh-keygen -t ed25519 -N "" -f "$key" \
|
||||||
|
-C "moons@$(${pkgs.hostname}/bin/hostname || echo host)"
|
||||||
|
echo "Generated SSH key at $key"
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./tailscale.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
{ lib, config, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.my.features.network.tailscale;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.features.network.tailscale = {
|
||||||
|
enable = lib.mkEnableOption "Tailscale VPN";
|
||||||
|
acceptDns = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = false;
|
||||||
|
description = "Accept DNS configuration from Tailscale";
|
||||||
|
};
|
||||||
|
acceptRoutes = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = true;
|
||||||
|
description = "Accept subnet routes from Tailscale";
|
||||||
|
};
|
||||||
|
extraUpFlags = lib.mkOption {
|
||||||
|
type = lib.types.listOf lib.types.str;
|
||||||
|
default = [ ];
|
||||||
|
description = "Additional flags to pass to tailscale up";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
my.applications.tailscale = {
|
||||||
|
enable = true;
|
||||||
|
inherit (cfg) acceptDns acceptRoutes extraUpFlags;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
{ lib, config, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.my.features.services.container;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.features.services.container = {
|
||||||
|
enable = lib.mkEnableOption "Container runtime (Docker)";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
my.applications.docker.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./container.nix
|
||||||
|
./kde.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
{ lib, config, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.my.features.services.kde;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.features.services.kde = {
|
||||||
|
enable = lib.mkEnableOption "KDE Connect";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
my.applications.kde.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./nfs-client.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
{ lib, config, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.my.features.storage.nfsClient;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.my.features.storage.nfsClient = {
|
||||||
|
enable = lib.mkEnableOption "NFS client support";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
my.system.boot.nfs.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
{
|
{
|
||||||
|
pkgs,
|
||||||
inputs,
|
inputs,
|
||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
@@ -27,5 +28,9 @@ in
|
|||||||
enable = true;
|
enable = true;
|
||||||
pkiBundle = "/var/lib/sbctl";
|
pkiBundle = "/var/lib/sbctl";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
sbctl # A tool to manage UEFI Secure Boot keys and signatures
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,13 +16,6 @@
|
|||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
nil # Nix Language Server
|
nil # Nix Language Server
|
||||||
docker # Containerization Platform
|
|
||||||
tio # A Simple TTY Terminal I/O Application
|
|
||||||
sqlite # Vscode Raycast Extension Dependency
|
|
||||||
oxker # Docker TUI Tool
|
|
||||||
jdk25 # Java Development Kit 25
|
|
||||||
maven # Java Build Tool
|
|
||||||
gradle # Java Build Tool
|
|
||||||
python312 # Python 3.12
|
python312 # Python 3.12
|
||||||
uv # Universal Virtual Environment Manager For Python
|
uv # Universal Virtual Environment Manager For Python
|
||||||
bun # A Fast JavaScript Runtime Like Node.js And Deno
|
bun # A Fast JavaScript Runtime Like Node.js And Deno
|
||||||
|
|||||||
@@ -27,14 +27,7 @@
|
|||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
tuigreet # The Login Manager (Sometimes Referred To As Display Manager)
|
tuigreet # The Login Manager (Sometimes Referred To As Display Manager)
|
||||||
uwsm # Universal Wayland Session Manager (optional must be enabled)
|
|
||||||
alacritty # A GPU Accelerated Terminal Emulator
|
|
||||||
fuzzel # A Simple And Lightweight Application Launcher
|
fuzzel # A Simple And Lightweight Application Launcher
|
||||||
unstable.ghostty # A Fast And Minimal Terminal Emulator For Wayland
|
|
||||||
xwayland-satellite # A Helper For Running X11 Applications In Wayland
|
|
||||||
slurp # A Tool For Selecting A Region Of The Screen
|
|
||||||
grim # A Tool For Taking Screenshots In Wayland with slurp
|
|
||||||
wf-recorder # A Screen Recorder For Wayland
|
|
||||||
];
|
];
|
||||||
|
|
||||||
home-manager.users.${username}.imports = [ ];
|
home-manager.users.${username}.imports = [ ];
|
||||||
|
|||||||
Reference in New Issue
Block a user