refactor: reorganize flake structure and consolidate user config

Directory structure:
- Move from src/ to root level (system/, user/)
- Remove unused machines (workstation, vm, laptop)

User configuration:
- Add user/home.nix for shared defaults (pass, essentials, default modules)
- Centralize user options in user/default.nix
- Move submodules to consistent paths (bash/bash, git/git, neovim/nvim, vim/vim)

Module reorganization:
- Flatten nested module structures (remove /modules/ subdirs)
- Split CLI vs GUI tools (dev/ for CLI, gui/dev/ for GUI)
- Move neovim/vim to top-level modules (not under utils/)
- Remove security.enable - pass now in user/home.nix
- Remove utils.enable - essentials now in user/home.nix
- Add security/yubikey module with yubikey-manager, age-plugin-yubikey
- Move pcb, design to gui/dev/
- Replace penpot docker wrapper with nixpkgs penpot-desktop
- Remove i3 config
- Remove deprecated wsl.nativeSystemd option

GUI improvements:
- Browser-focused mimeApps in gui/default.nix
- Each WM handles its own auto-start via profileExtra

Cleanup:
- Update README with new structure
- Update justfile paths and valid systems
- Fix submodule paths in .gitmodules
This commit is contained in:
Bryan Ramos 2026-03-14 15:26:18 -04:00
parent ac95d1c23d
commit 14efa80cab
141 changed files with 505 additions and 1561 deletions

View file

@ -0,0 +1,82 @@
{
"settings": {
"general": {
"menuBar": {
"hide": false
},
"tray": {
"disable": false
},
"taskbar": {
"flash": true
},
"window": {
"transparent": false,
"hideOnClose": false
}
},
"privacy": {
"blockApi": {
"science": true,
"typingIndicator": false,
"fingerprinting": true
},
"permissions": {
"video": null,
"audio": true,
"fullscreen": true,
"notifications": null,
"display-capture": true,
"background-sync": false
}
},
"advanced": {
"csp": {
"enabled": true
},
"cspThirdParty": {
"spotify": true,
"gif": true,
"hcaptcha": true,
"youtube": true,
"twitter": true,
"twitch": true,
"streamable": true,
"vimeo": true,
"soundcloud": true,
"paypal": true,
"audius": true,
"algolia": true,
"reddit": true,
"googleStorageApi": true
},
"currentInstance": {
"radio": 0
},
"devel": {
"enabled": true
},
"redirection": {
"warn": true
},
"optimize": {
"gpu": true
},
"webApi": {
"webGl": true
},
"unix": {
"autoscroll": false
}
}
},
"update": {
"notification": {
"version": "",
"till": ""
}
},
"screenShareStore": {
"audio": false
}
}

View file

@ -0,0 +1,25 @@
{ pkgs, lib, config, ... }:
with lib;
let
cfg = config.modules.user.gui.fun;
in
{ options.modules.user.gui.fun = { enable = mkEnableOption "Enable entertainment apps"; };
config = mkIf cfg.enable {
#programs.obs-studio = {
# enable = true;
# plugins = with pkgs.obs-studio-plugins; [
# wlrobs
# obs-pipewire-audio-capture
# input-overlay
# ];
#};
home.packages = with pkgs; [
ytmdesktop
discordo
webcord
];
};
}