initial commit
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
{...}: {
|
||||
# Bun JavaScript runtime / package manager / bundler.
|
||||
flake.nixosModules.bun = {pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
bun
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{...}: {
|
||||
# Discord. Launched as `discord` by the hypr autostart (workspace 8).
|
||||
flake.nixosModules.discord = {pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
discord
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{...}: {
|
||||
# Feishin music client (Jellyfin/Navidrome/Subsonic).
|
||||
# Note: hypr autostart currently launches this via `flatpak run
|
||||
# org.jeffvli.feishin` on workspace 9. To use this native package instead,
|
||||
# change that line to `uwsm app feishin`. The window class is `feishin`,
|
||||
# which already matches the window-rule in window-rules.lua.
|
||||
flake.nixosModules.feishin = {pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
feishin
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{...}: {
|
||||
# Package only. Config is managed via stow (dotfiles: no dedicated fuzzel
|
||||
# package yet; fuzzel uses its defaults / ~/.config/fuzzel if present).
|
||||
flake.nixosModules.fuzzel = {pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
fuzzel
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{...}: {
|
||||
# Package only. Config is managed via stow (dotfiles: ghostty package).
|
||||
flake.nixosModules.ghostty = {pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
ghostty
|
||||
];
|
||||
ahmza.stow.packages = ["ghostty"];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{...}: {
|
||||
# git user config (~/.config/git or ~/.gitconfig) is managed via stow.
|
||||
# We only install git + related tooling and enable the gpg agent.
|
||||
flake.nixosModules.git = {pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
git
|
||||
git-secret
|
||||
];
|
||||
programs.gnupg.agent = {
|
||||
enable = true;
|
||||
pinentryPackage = pkgs.pinentry-all;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
{self, ...}: {
|
||||
# Hyprland desktop. The compositor config itself (hyprland.lua + ahmza/*.lua,
|
||||
# hyprlock, hypridle, hyprsunset) is managed via stow (dotfiles: hypr package).
|
||||
# Here we enable Hyprland and install the runtime tools that config + the
|
||||
# helper scripts in the `bin` package expect on PATH.
|
||||
flake.nixosModules.hyprland = {pkgs, ...}: let
|
||||
modules = with self.nixosModules; [
|
||||
audio
|
||||
systemTheme
|
||||
fuzzel
|
||||
ghostty
|
||||
waybar
|
||||
];
|
||||
in {
|
||||
imports = modules;
|
||||
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
withUWSM = true;
|
||||
};
|
||||
|
||||
# hypr = compositor config, dunst = notifications, wal = pywal templates,
|
||||
# bin = helper scripts (swp/launch-waybar/passmenu) referenced by keybinds.
|
||||
ahmza.stow.packages = ["hypr" "dunst" "wal" "bin"];
|
||||
|
||||
services.displayManager.defaultSession = "hyprland-uwsm";
|
||||
services.xserver.enable = true;
|
||||
security.polkit.enable = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
# hypr* ecosystem (keybinds / hypridle / autostart)
|
||||
hyprlock
|
||||
hypridle
|
||||
hyprsunset
|
||||
hyprpicker
|
||||
# launcher / file manager / browser (vars.lua: Picker/FileManager/Browser)
|
||||
kdePackages.dolphin
|
||||
firefox
|
||||
# wallpaper daemon used by the `swp` script + autostart (awww-daemon)
|
||||
awww
|
||||
# scripting deps for bin/ helpers (swp uses jq + hyprctl)
|
||||
jq
|
||||
# display / applets referenced by autostart
|
||||
xorg.xrandr
|
||||
networkmanagerapplet
|
||||
blueman
|
||||
udiskie
|
||||
brightnessctl
|
||||
# clipboard
|
||||
wl-clipboard
|
||||
cliphist
|
||||
# theming
|
||||
gsettings-desktop-schemas
|
||||
dunst
|
||||
pywal16
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{...}: {
|
||||
# lazygit config is managed via stow. Package only.
|
||||
flake.nixosModules.lazygit = {pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
lazygit
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{...}: {
|
||||
flake.nixosModules.nvim = {pkgs, ...}: {
|
||||
programs.neovim = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
};
|
||||
|
||||
ahmza.stow.packages = ["nvim"];
|
||||
environment.systemPackages = with pkgs; [
|
||||
# TODO: re-add your custom neovim config/distribution here later.
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{...}: {
|
||||
# Obsidian notes app.
|
||||
# Note: hypr autostart currently launches this via `flatpak run
|
||||
# mc.obsidian.Obsidian` on workspace 4. To use this native package instead,
|
||||
# change that line to `uwsm app obsidian`.
|
||||
flake.nixosModules.obsidian = {pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
obsidian
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
{...}: {
|
||||
# opencode MCP servers, installed declaratively instead of via the dotfiles
|
||||
# `install` script (which downloads prebuilt binaries into ~/.local/bin).
|
||||
# - gitea-mcp : packaged in nixpkgs as gitea-mcp-server (binary: gitea-mcp)
|
||||
# - engram : not in nixpkgs, built here from source with buildGoModule
|
||||
# Both are referenced by bare command name in opencode.jsonc, so they resolve
|
||||
# from PATH.
|
||||
flake.nixosModules.opencode-mcp = {pkgs, ...}: let
|
||||
engram = pkgs.buildGoModule rec {
|
||||
pname = "engram";
|
||||
version = "1.20.0";
|
||||
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "Gentleman-Programming";
|
||||
repo = "engram";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-qdKAll7N0HtJRbZYilzatVCUz1Tr+pqM217Y8O+Csjs=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-O+pC4x4DKNUWr7Sx9iZOjK6a64wrQA4/lnjvkNLBX64=";
|
||||
|
||||
subPackages = ["cmd/engram"];
|
||||
|
||||
# Inject the version (upstream sets main.version via goreleaser ldflags).
|
||||
ldflags = ["-s" "-w" "-X" "main.version=${version}"];
|
||||
|
||||
# Upstream tests bind network ports (autosync), which fails in the Nix
|
||||
# build sandbox. The binary itself builds fine.
|
||||
doCheck = false;
|
||||
|
||||
meta = with pkgs.lib; {
|
||||
description = "Persistent memory MCP server for coding agents";
|
||||
homepage = "https://github.com/Gentleman-Programming/engram";
|
||||
license = licenses.mit;
|
||||
mainProgram = "engram";
|
||||
};
|
||||
};
|
||||
in {
|
||||
environment.systemPackages = [
|
||||
pkgs.gitea-mcp-server # provides the `gitea-mcp` binary
|
||||
engram
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{...}: {
|
||||
# TODO: quickshell config (shell.qml etc.) previously came from a dedicated flake input
|
||||
# and was built via the wrappers flake. Re-add your quickshell config later.
|
||||
flake.nixosModules.quickshell = {pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
quickshell
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{...}: {
|
||||
flake.nixosModules.sddm-autologin = {...}: {
|
||||
services.displayManager = {
|
||||
autoLogin.enable = true;
|
||||
autoLogin.user = "ahmza";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
{
|
||||
self,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
flake.nixosModules.sddm = {
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
environment.systemPackages = [
|
||||
(pkgs.catppuccin-sddm.override {
|
||||
flavor = "mocha";
|
||||
font = "JetBrainsMono Nerd Font";
|
||||
fontSize = "11";
|
||||
background = null;
|
||||
})
|
||||
];
|
||||
services.displayManager.sddm = {
|
||||
enable = true;
|
||||
theme = "catppuccin-mocha-mauve";
|
||||
package = pkgs.kdePackages.sddm;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
{...}: {
|
||||
# System-managed ssh-agent. Enabling startAgent runs an ssh-agent per user
|
||||
# session and exports SSH_AUTH_SOCK automatically, so the dotfiles zsh
|
||||
# `ssh-agent` bootstrap finds a reachable agent (its Linux fallback hardcodes
|
||||
# /usr/bin/ssh-agent, which does not exist on NixOS).
|
||||
flake.nixosModules.ssh-agent = {pkgs, ...}: {
|
||||
programs.ssh = {
|
||||
startAgent = true;
|
||||
# ed25519-sk / passphrase prompts route through this pinentry.
|
||||
enableAskPassword = true;
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
openssh # provides ssh-add / ssh-agent on PATH
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{...}: {
|
||||
# TODO: previously injected SLSsteam via LD_AUDIT from the sls-steam flake. Now stock.
|
||||
flake.nixosModules.steam = {pkgs, ...}: {
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
protontricks.enable = true;
|
||||
extraCompatPackages = with pkgs; [
|
||||
proton-ge-bin
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{...}: {
|
||||
# Package only. Config is managed via stow (dotfiles: waybar package).
|
||||
flake.nixosModules.waybar = {pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
waybar
|
||||
# waybar config on-click / modules deps:
|
||||
mpc # mpd module: "mpc toggle/random"
|
||||
# nm-connection-editor comes from networkmanagerapplet (hyprland module);
|
||||
# pavucontrol comes from the audio module.
|
||||
inotify-tools
|
||||
];
|
||||
ahmza.stow.packages = ["waybar"];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{...}: {
|
||||
flake.nixosModules.weylus = {pkgs, ...}: {
|
||||
programs.weylus = {
|
||||
enable = true;
|
||||
package = pkgs.weylus;
|
||||
users = ["ahmza"];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
{...}: {
|
||||
# zsh runtime config (.zshrc, plugins, aliases, prompt) is managed via stow
|
||||
# (dotfiles: zsh + shell + starship packages). We only enable zsh at the system
|
||||
# level and install the tools the dotfiles expect on PATH.
|
||||
flake.nixosModules.zsh = {pkgs, ...}: {
|
||||
programs.zsh.enable = true;
|
||||
users.defaultUserShell = pkgs.zsh;
|
||||
|
||||
ahmza.stow.packages = ["zsh" "shell" "starship"];
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
starship
|
||||
fzf
|
||||
ripgrep
|
||||
fd
|
||||
lsd
|
||||
lolcat
|
||||
zoxide
|
||||
bat
|
||||
lazygit
|
||||
carapace
|
||||
];
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user