feat: ralph, waybar, formatted

This commit is contained in:
jackjohn7 2026-03-28 18:35:54 -05:00
parent 774daebdff
commit 1eb01464e1
38 changed files with 1913 additions and 609 deletions

View file

@ -1,52 +1,53 @@
{ self, inputs, ... }: {
flake.nixosModules.base = { pkgs, lib, ... }: {
imports = [ inputs.hjem.nixosModules.default ];
{ self, inputs, ... }:
{
flake.nixosModules.base =
{ pkgs, lib, ... }:
{
imports = [ inputs.hjem.nixosModules.default ];
nixpkgs.overlays = [ inputs.millennium.overlays.default ];
# Set your time zone.
time.timeZone = "America/Chicago";
nixpkgs.overlays = [ inputs.millennium.overlays.default ];
# Set your time zone.
time.timeZone = "America/Chicago";
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
};
# Enable the X11 windowing system.
services.xserver.enable = true;
# Configure keymap in X11
services.xserver.xkb = {
layout = "us";
variant = "";
};
# Enable CUPS to print documents.
services.printing.enable = true;
# Enable touchpad support (enabled default in most desktopManager).
# services.xserver.libinput.enable = true;
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
# programs.gnupg.agent = {
# enable = true;
# enableSSHSupport = true;
# };
# List services that you want to enable:
i18n.extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
};
# Enable the X11 windowing system.
services.xserver.enable = true;
# Configure keymap in X11
services.xserver.xkb = {
layout = "us";
variant = "";
};
# Enable CUPS to print documents.
services.printing.enable = true;
# Enable touchpad support (enabled default in most desktopManager).
# services.xserver.libinput.enable = true;
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
# programs.gnupg.agent = {
# enable = true;
# enableSSHSupport = true;
# };
# List services that you want to enable:
};
}

View file

@ -1,41 +1,49 @@
{ self, inputs, ... }: {
flake.nixosModules.cursors = { pkgs, lib, config, ... }: {
options.cursor-users = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [];
description = "List of users to configure cursors for";
};
{ self, inputs, ... }:
{
flake.nixosModules.cursors =
{
pkgs,
lib,
config,
...
}:
{
options.cursor-users = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [ ];
description = "List of users to configure cursors for";
};
config = {
# Install cursor packages system-wide
environment.systemPackages = with pkgs; [
bibata-cursors
];
config = {
# Install cursor packages system-wide
environment.systemPackages = with pkgs; [
bibata-cursors
];
# Set up XDG data directories for cursor themes
environment.pathsToLink = [ "/share/icons" ];
# Set up XDG data directories for cursor themes
environment.pathsToLink = [ "/share/icons" ];
# Configure hjem for specified users - set cursor theme in user config
hjem = lib.mkIf (config.cursor-users != []) {
users = lib.genAttrs config.cursor-users (username: {
enable = true;
files = {
# GTK cursor settings
".config/gtk-3.0/settings.ini".text = ''
[Settings]
gtk-cursor-theme-name=Bibata-Modern-Ice
gtk-cursor-theme-size=24
'';
# X11/Wayland cursor environment
".config/environment.d/cursor.conf".text = ''
XCURSOR_THEME=Bibata-Modern-Ice
XCURSOR_SIZE=24
HYPRCURSOR_THEME=Bibata-Modern-Ice
HYPRCURSOR_SIZE=24
'';
};
});
# Configure hjem for specified users - set cursor theme in user config
hjem = lib.mkIf (config.cursor-users != [ ]) {
users = lib.genAttrs config.cursor-users (username: {
enable = true;
files = {
# GTK cursor settings
".config/gtk-3.0/settings.ini".text = ''
[Settings]
gtk-cursor-theme-name=Bibata-Modern-Ice
gtk-cursor-theme-size=24
'';
# X11/Wayland cursor environment
".config/environment.d/cursor.conf".text = ''
XCURSOR_THEME=Bibata-Modern-Ice
XCURSOR_SIZE=24
HYPRCURSOR_THEME=Bibata-Modern-Ice
HYPRCURSOR_SIZE=24
'';
};
});
};
};
};
};
}

View file

@ -1,10 +1,85 @@
{ self, inputs, ... }: {
flake.nixosModules.development = { pkgs, lib, ... }: {
environment.systemPackages = with pkgs; [
vim
git
zed-editor
opencode
];
};
{ self, inputs, ... }:
{
flake.nixosModules.development =
{ pkgs, lib, ... }:
{
config = {
environment.systemPackages = with pkgs; [
vim
git
zed-editor
opencode
direnv
nix-direnv
];
programs.zoxide = {
enable = true;
enableZshIntegration = true;
};
programs.zsh = {
enable = true;
# Nice features
enableCompletion = true;
enableAutosuggestions = true;
syntaxHighlighting.enable = true;
# Optional prompt theme — Powerlevel10k is very popular
oh-my-zsh = {
enable = true;
plugins = [
"git"
"direnv"
"z"
];
theme = "robbyrussell"; # or try "agnoster"
};
# HISTORY
histSize = 10000;
# Extra config (this is appended at the end of .zshrc)
promptInit = ''
# Aliases
alias ll="ls -alF"
# Load nix-direnv if available
if command -v direnv >/dev/null; then
eval "$(direnv hook zsh)"
fi
# Better Ctrl-R incremental search
bindkey '^R' history-incremental-search-backward
# Improve cd: automatically pushd to track dirs
setopt auto_pushd
setopt pushd_ignore_dups
# Enable command correction
setopt correct
'';
};
# Configure starship prompt
programs.starship = {
enable = true;
# enableZshIntegration = true;
settings = {
add_newline = false;
character = {
success_symbol = "[](bold green)";
error_symbol = "[](bold red)";
};
directory.truncate_to_repo = false;
nix_shell = {
disabled = false;
symbol = " ";
format = "[$symbol$name]($style) ";
};
git_branch.symbol = "🌿 ";
};
};
};
};
}

View file

@ -1,14 +1,17 @@
{ self, inputs, ... }: {
flake.nixosModules.fonts = { pkgs, lib, ... }: {
fonts.packages = with pkgs; [
noto-fonts
noto-fonts-cjk-sans
noto-fonts-color-emoji
liberation_ttf
nerd-fonts.martian-mono
dina-font
proggyfonts
ripgrep
];
};
{ self, inputs, ... }:
{
flake.nixosModules.fonts =
{ pkgs, lib, ... }:
{
fonts.packages = with pkgs; [
noto-fonts
noto-fonts-cjk-sans
noto-fonts-color-emoji
liberation_ttf
nerd-fonts.martian-mono
dina-font
proggyfonts
ripgrep
];
};
}

View file

@ -1,18 +1,21 @@
{ self, inputs, ... }: {
flake.nixosModules.gaming = { pkgs, lib, ... }: {
programs.steam = {
enable = true;
package = pkgs.millennium-steam;
gamescopeSession.enable = true;
{ self, inputs, ... }:
{
flake.nixosModules.gaming =
{ pkgs, lib, ... }:
{
programs.steam = {
enable = true;
package = pkgs.millennium-steam;
gamescopeSession.enable = true;
};
programs.gamemode.enable = true;
environment.systemPackages = with pkgs; [
mangohud
protonup-ng
heroic
];
environment.sessionVariables = {
STEAM_EXTRA_COMPAT_TOOLS_PATH = "/home/user/.steam/root/compatibilitytools.d";
};
};
programs.gamemode.enable = true;
environment.systemPackages = with pkgs; [
mangohud
protonup-ng
heroic
];
environment.sessionVariables = {
STEAM_EXTRA_COMPAT_TOOLS_PATH = "/home/user/.steam/root/compatibilitytools.d";
};
};
}

View file

@ -1,19 +1,22 @@
{ self, inputs, ... }: {
flake.nixosModules.pipewire = { pkgs, lib, ... }: {
# Enable sound with pipewire.
services.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
# If you want to use JACK applications, uncomment this
#jack.enable = true;
{ self, inputs, ... }:
{
flake.nixosModules.pipewire =
{ pkgs, lib, ... }:
{
# Enable sound with pipewire.
services.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
# If you want to use JACK applications, uncomment this
#jack.enable = true;
# use the example session manager (no others are packaged yet so this is enabled by default,
# no need to redefine it in your config for now)
#media-session.enable = true;
# use the example session manager (no others are packaged yet so this is enabled by default,
# no need to redefine it in your config for now)
#media-session.enable = true;
};
};
};
}

View file

@ -1,15 +1,20 @@
{ self, inputs, ... }: {
flake.nixosModules.user = { pkgs, lib, ... }: {
# Define a user account. Don't forget to set a password with passwd.
users.users.jingus = {
isNormalUser = true;
description = "jingus";
extraGroups = [ "networkmanager" "wheel" ];
shell = pkgs.zsh;
packages = with pkgs; [
# thunderbird
];
{ self, inputs, ... }:
{
flake.nixosModules.user =
{ pkgs, lib, ... }:
{
# Define a user account. Don't forget to set a password with passwd.
users.users.jingus = {
isNormalUser = true;
description = "jingus";
extraGroups = [
"networkmanager"
"wheel"
];
shell = pkgs.zsh;
packages = with pkgs; [
# thunderbird
];
};
};
};
}

View file

@ -1,5 +1,9 @@
{ self, inputs, ... }: {
flake.nixosModules.user-jingo = { ... }: {
hyprland-users = [ "jingo" ];
};
{ self, inputs, ... }:
{
flake.nixosModules.user-jingo =
{ ... }:
{
hyprland-users = [ "jingo" ];
wallpaper-users = [ "jingo" ];
};
}

View file

@ -1,6 +1,9 @@
{ self, inputs, ... }: {
flake.nixosModules.user-jingus = { ... }: {
niri-users = [ "jingus" ];
wallpaper-users = [ "jingus" ];
};
{ self, inputs, ... }:
{
flake.nixosModules.user-jingus =
{ ... }:
{
niri-users = [ "jingus" ];
wallpaper-users = [ "jingus" ];
};
}

View file

@ -1,30 +1,38 @@
{ self, inputs, ... }: {
flake.nixosModules.wallpapers = { pkgs, lib, config, ... }: {
{ self, inputs, ... }:
{
flake.nixosModules.wallpapers =
{
pkgs,
lib,
config,
...
}:
{
options.wallpaper-users = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [];
description = "List of users to include wallpapers for";
};
options.wallpaper-users = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [ ];
description = "List of users to include wallpapers for";
};
options.wallpaper-destination = lib.mkOption {
type = lib.types.str;
default = "Pictures/Wallpapers";
description = "Destination path for wallpapers";
};
options.wallpaper-destination = lib.mkOption {
type = lib.types.str;
default = "Pictures/Wallpapers";
description = "Destination path for wallpapers";
};
config = {
hjem = lib.mkIf (config.wallpaper-users != []) {
users = lib.genAttrs config.wallpaper-users (username: {
enable = true;
files = {
"${config.wallpaper-destination}".source = pkgs.runCommand "wallpapers" {} ''
mkdir -p $out
cp -r ${../../../assets/wallpapers}/* $out/
'';
};
});
config = {
hjem = lib.mkIf (config.wallpaper-users != [ ]) {
users = lib.genAttrs config.wallpaper-users (username: {
enable = true;
files = {
"${config.wallpaper-destination}".source = pkgs.runCommand "wallpapers" { } ''
mkdir -p $out
cp -r ${../../../assets/wallpapers}/* $out/
'';
};
});
};
};
};
};
}