I am batman

This commit is contained in:
2026-07-10 20:07:29 -04:00
commit 4aac54bff6
175 changed files with 18136 additions and 0 deletions

14
modules/misc/btop.nix Normal file
View File

@@ -0,0 +1,14 @@
{ config, pkgs, ... }:
{
programs.btop = {
enable = true;
settings = {
# color_theme = "gruvbox-dark"; # You can change this to any other theme
theme_background = false;
vim_keys = true;
# You can add more settings from: https://github.com/aristocratos/btop#configuration
};
};
}

17
modules/misc/default.nix Normal file
View File

@@ -0,0 +1,17 @@
{
imports = [
# ./discord.nix
./git.nix
./gtk.nix
./btop.nix
./pipewire.nix
./pywal.nix
./obsidian.nix
./obs-studio.nix
./dunst.nix
# ./sddm.nix
./spotify.nix
./zsh.nix
./zoxide.nix
];
}

8
modules/misc/discord.nix Normal file
View File

@@ -0,0 +1,8 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
(discord.override {
withVencord = true;
})
];
}

58
modules/misc/dunst.nix Normal file
View File

@@ -0,0 +1,58 @@
{ config, pkgs, lib, ... }:
{
home.packages = with pkgs; [
dunst
jq
];
home.file.".config/dunst/dunstrc".text = ''
#!/usr/bin/env sh
WAL_COLORS="$HOME/.cache/wal/colors.json"
if [ -f "$WAL_COLORS" ]; then
BG=$(jq -r '.special.background' "$WAL_COLORS")
FG=$(jq -r '.special.foreground' "$WAL_COLORS")
LOW=$(jq -r '.colors.color2' "$WAL_COLORS")
NORMAL=$(jq -r '.colors.color1' "$WAL_COLORS")
CRITICAL=$(jq -r '.colors.color3' "$WAL_COLORS")
else
BG="#0f1016"
FG="#c6c3da"
LOW="#6F6C91"
NORMAL="#6B6691"
CRITICAL="#877AB1"
fi
cat <<EOL > "$HOME/.config/dunst/dunstrc"
[global]
font = Monospace 10
geometry = "300x50-10+50"
timeouts = { low = 1000, normal = 1500, critical = 3000 }
frame_color = "$NORMAL"
background = "$BG"
foreground = "$FG"
separator_height = 2
padding = 8
transparency = 10
sort = newest
ignore_new_urgency = false
[urgency_low]
background = "$BG"
foreground = "$FG"
frame_color = "$LOW"
[urgency_normal]
background = "$BG"
foreground = "$FG"
frame_color = "$NORMAL"
[urgency_critical]
background = "$BG"
foreground = "$FG"
frame_color = "$CRITICAL"
EOL
'';
}

21
modules/misc/git.nix Normal file
View File

@@ -0,0 +1,21 @@
{ pkgs, ... }: {
programs.git = {
enable = true;
settings = {
user.name = "gibbyDev";
user.email = "gibbyDEV@protonmail.com";
init.defaultBranch = "main";
credential.helper = "store";
};
};
home.packages = [
pkgs.gh
pkgs.git-lfs
pkgs.copilot-cli
pkgs.noto-fonts
pkgs.noto-fonts-color-emoji # renamed
];
}

60
modules/misc/gtk.nix Normal file
View File

@@ -0,0 +1,60 @@
{ config, pkgs, lib, ... }:
let
cacheDir = config.xdg.cacheHome;
isValidUser = config.home.username != "cody";
in
{
fonts.fontconfig.enable = true;
home.packages = with pkgs; [
nerd-fonts.jetbrains-mono
twemoji-color-font
noto-fonts-color-emoji
];
gtk = {
enable = true;
font = {
name = "JetBrainsMono Nerd Font";
size = 11;
};
theme = {
name = "Adwaita-dark";
package = pkgs.gnome-themes-extra;
};
iconTheme = {
name = "Papirus-Dark";
package = pkgs.papirus-icon-theme;
};
cursorTheme = {
name = "Bibata-Modern-Classic";
package = pkgs.bibata-cursors;
size = 16;
};
gtk3.extraCss = lib.mkIf isValidUser ''
@import url("file://${cacheDir}/wal/colors.css");
'';
gtk4.extraCss = lib.mkIf isValidUser ''
@import url("file://${cacheDir}/wal/colors.css");
'';
};
qt = {
enable = true;
platformTheme.name = "gtk";
style.name = "adwaita-dark";
};
home.pointerCursor = {
name = "Bibata-Modern-Classic";
package = pkgs.bibata-cursors;
size = 16;
};
}

View File

@@ -0,0 +1,35 @@
{ pkgs, config, ... }: {
programs.obs-studio = {
enable = true;
#enableVirtualCamera = true;
plugins = with pkgs.obs-studio-plugins; [
wlrobs
obs-pipewire-audio-capture
obs-vkcapture
obs-source-clone
obs-move-transition
obs-composite-blur
obs-backgroundremoval
];
};
# Create Videos directory for OBS recordings
home.file."Videos/.keep".text = "";
# Configure OBS to use ~/Videos for recordings
home.file.".config/obs-studio/basic/profiles/Untitled/basic.ini" = {
text = ''
[Output]
FilePath=${config.home.homeDirectory}/Videos
FilenameFormatting=%CCYY-%MM-%DD %HH-%mm-%SS
'';
};
# Also set the global OBS settings to use Videos directory
home.file.".config/obs-studio/global.ini" = {
text = ''
[General]
RecordPath=${config.home.homeDirectory}/Videos
'';
};
}

33
modules/misc/obsidian.nix Normal file
View File

@@ -0,0 +1,33 @@
{ config, lib, pkgs, ... }:
{
home.packages = with pkgs; [ obsidian ];
# NOTE: vault is at ~/Documents/Notebook
# Commented out symlink due to pure eval restrictions
# home.file.".config/obsidian" = {
# source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/Documents/Notebook";
# };
# systemd.user.services.obsidian-git-sync = {
# Unit = {
# Description = "Auto-commit and push Obsidian Vault";
# After = [ "network-online.target" ];
# };
# Service = {
# ExecStart = pkgs.writeShellScript "obsidian-git-sync" ''
# cd ${vaultPath}
# if [ -n "$(git status --porcelain)" ]; then
# git add .
# git commit -m "Auto-sync: $(date)"
# git push origin main
# fi
# '';
# Restart = "always";
# };
# Install = { WantedBy = [ "default.target" ]; };
# };
}

29
modules/misc/pipewire.nix Normal file
View File

@@ -0,0 +1,29 @@
{ config, lib, pkgs, ... }:
{
# Enable PipeWire
# services.pipewire = {
# enable = true;
# audio.enable = true;
# alsa = {
# enable = true;
# support32Bit = true;
# };
# pulse.enable = true;
# jack.enable = true;
# };
# Enable real-time scheduling for better audio performance
# security.rtkit.enable = true;
# Disable PulseAudio (ensure it's removed if previously enabled)
# hardware.pulseaudio.enable = false;
# Optional: Install `pavucontrol` for a GUI to manage audio
home.packages = with pkgs; [
pavucontrol
helvum # For managing audio routing visually
qpwgraph # Graph-based PipeWire manager
];
}

38
modules/misc/pywal.nix Normal file
View File

@@ -0,0 +1,38 @@
{ config, pkgs, lib, ... }:
{
config = lib.mkIf config.programs.pywal.enable {
home.sessionVariables = {
PYWAL_CACHE_DIR = "${config.xdg.cacheHome}/wal";
};
home.file.".config/waybar/colors.css".source =
"${config.xdg.cacheHome}/wal/colors-waybar.css";
home.file.".config/rofi/colors.rasi".text = ''
* {
background: #''${palette.background};
foreground: #''${palette.foreground};
normal-background: #''${palette.background};
normal-foreground: #''${palette.foreground};
alternate-normal-background: #''${palette.background};
alternate-normal-foreground: #''${palette.foreground};
selected-normal-background: #''${palette.color7};
selected-normal-foreground: #''${palette.background};
active-background: #''${palette.background};
active-foreground: #''${palette.color2};
alternate-active-background: #''${palette.background};
alternate-active-foreground: #''${palette.color2};
selected-active-background: #''${palette.color2};
selected-active-foreground: #''${palette.background};
urgent-background: #''${palette.color1};
urgent-foreground: #''${palette.background};
alternate-urgent-background: #''${palette.background};
alternate-urgent-foreground: #''${palette.color1};
selected-urgent-background: #''${palette.color1};
selected-urgent-foreground: #''${palette.background};
}
'';
};
}

10
modules/misc/sddm.nix Normal file
View File

@@ -0,0 +1,10 @@
{ config, pkgs, lib, ... }:
{
# SDDM configuration has been migrated to LightDM
# This file is kept for reference only
}

11
modules/misc/spotify.nix Normal file
View File

@@ -0,0 +1,11 @@
{ pkgs, ... }:
{
home.packages = [
pkgs.spotify
];
# Prevent Spotify from launching on startup by removing its autostart entry
# xdg.configFile."autostart/spotify.desktop".force = false;
}

24
modules/misc/thunar.nix Normal file
View File

@@ -0,0 +1,24 @@
{ config, pkgs, ... }:
{
# Enable Thunar via Home Manager
programs.thunar = {
enable = true;
# Enable thumbnails for supported file types
enableThumbnailing = true;
# Set Thunar as the default file manager
defaultFileManager = true;
# Enable the Thunar custom actions (e.g., opening a terminal in the current directory)
customActions = [
{
}
];
# Optional: Customize the icon theme for Thunar
iconTheme = "Papirus-Dark"; # Adjust as needed based on your icon theme
};
}

12
modules/misc/zoxide.nix Normal file
View File

@@ -0,0 +1,12 @@
_: {
programs = {
zoxide = {
enable = true;
enableZshIntegration = true;
enableBashIntegration = true;
options = [
"--cmd cd"
];
};
};
}

68
modules/misc/zsh.nix Normal file
View File

@@ -0,0 +1,68 @@
{ config, pkgs, lib, ... }:
{
programs.zsh = {
enable = true;
enableCompletion = true;
syntaxHighlighting.enable = true;
autosuggestion.enable = true;
initContent = ''
# Powerlevel10k
source ${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k/powerlevel10k.zsh-theme
[[ -f ~/.p10k.zsh ]] && source ~/.p10k.zsh
'';
shellAliases = {
# Defaults hosts may override
ls = lib.mkDefault "lsd --color=auto";
ll = lib.mkDefault "lsd -lah --color=auto";
".." = lib.mkDefault "cd ../";
v = lib.mkDefault "nvim .";
c = lib.mkDefault "clear";
z = lib.mkDefault "zoxide";
op = lib.mkDefault "opencode .";
ff = lib.mkDefault "fastfetch";
gs = lib.mkDefault "git status";
gc = lib.mkDefault "git commit -m";
gp = lib.mkDefault "git push -u origin";
tsm = lib.mkDefault "tmux-session-manager";
# rgi = lib.mkDefault ''
# rg --color=always --line-number --no-heading --smart-case . |
# fzf --ansi --delimiter : \
# --preview "bat --style=full --color=always --highlight-line {2} {1}" \
# --preview-window "~4,+{2}+4/3,<80(up)"
# '';
rgi = lib.mkDefault ''
rg --color=always --line-number --no-heading --smart-case . |
fzf --ansi --delimiter : \
--preview "bat --style=full --color=always --highlight-line {2} {1}" \
--preview-window "~4,+{2}+4/3,<80(up)" \
--bind "enter:become(nvim +{2} {1})"
'';
hmr = lib.mkDefault "sudo nixos-rebuild switch --flake .#$(hostname)";
snr = lib.mkDefault "sudo nixos-rebuild switch --flake .";
ncg = "nix-collect-garbage --delete-old && sudo nix-collect-garbage -d && sudo /run/current-system/bin/switch-to-configuration boot";
reload = lib.mkDefault "exec zsh";
};
};
################################
# Fonts (for p10k icons)
################################
fonts.fontconfig.enable = true;
################################
# Packages
################################
home.packages = with pkgs; [
nerd-fonts.fira-code
nerd-fonts.hack
nerd-fonts.jetbrains-mono
zsh-powerlevel10k
zsh-autosuggestions
zsh-syntax-highlighting
];
}