Additional Helix & Niri configuration. Various cleanups

This commit is contained in:
2026-02-22 16:12:08 -05:00
parent 569e131ac6
commit d86a8b884e
22 changed files with 445 additions and 205 deletions

18
flake.lock generated
View File

@@ -375,11 +375,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1769132734, "lastModified": 1771683283,
"narHash": "sha256-gmU9cRplrQWqoback9PgQX7Dlsdx8JlhlVZwf0q1F7E=", "narHash": "sha256-WxAEkAbo8dP7qiyPM6VN4ZGAxfuBVlNBNPkrqkrXVEc=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "d055b309a6277343cb1033a11d7500f0a0f669fc", "rev": "c6ed3eab64d23520bcbb858aa53fe2b533725d4a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -515,11 +515,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1769461804, "lastModified": 1771369470,
"narHash": "sha256-msG8SU5WsBUfVVa/9RPLaymvi5bI8edTavbIq3vRlhI=", "narHash": "sha256-0NBlEBKkN3lufyvFegY4TYv5mCNHbi5OmBDrzihbBMQ=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "bfc1b8a4574108ceef22f02bafcf6611380c100d", "rev": "0182a361324364ae3f436a63005877674cf45efb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -552,11 +552,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1770002874, "lastModified": 1771434371,
"narHash": "sha256-UOjvZXyZLZv0dP9GZPjis8IRxmrIoMt8c25WGCt7+hU=", "narHash": "sha256-1ivy5+FBZMSojnduPnG6K8w5EFxyP61vthmLXzfGwco=",
"owner": "noctalia-dev", "owner": "noctalia-dev",
"repo": "noctalia-shell", "repo": "noctalia-shell",
"rev": "a8d74633f6920b91edf102e33a812af8489e2c88", "rev": "04589a4f58c7315b035633a274d1fc820d34c31a",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -1,12 +0,0 @@
{
config,
...
}:
{
home.file.".face".source = ../../assets/profile-picture.jpg;
home.file."${config.xdg.userDirs.extraConfig.XDG_WALLPAPERS_DIR}" = {
source = ../../assets/wallpapers;
recursive = true;
};
}

View File

@@ -1,9 +1,5 @@
{
...
}:
{ {
imports = [ imports = [
./assets.nix
./firefox.nix ./firefox.nix
./git.nix ./git.nix
./helix.nix ./helix.nix
@@ -21,6 +17,6 @@
./xdg.nix ./xdg.nix
./yazi.nix ./yazi.nix
./zed.nix ./zed.nix
./zen-browser.nix # ./zen-browser.nix
]; ];
} }

View File

@@ -117,6 +117,22 @@
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@np" ]; definedAliases = [ "@np" ];
}; };
home-manager = {
name = "Home Manager";
urls = [
{
template = "https://home-manager-options.extranix.com";
params = [
{
name = "query";
value = "{searchTerms}";
}
];
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@hm" ];
};
surugaya = { surugaya = {
name = "Surugaya"; name = "Surugaya";
urls = [ urls = [

View File

@@ -26,15 +26,82 @@ in
enable = true; enable = true;
defaultEditor = true; defaultEditor = true;
extraPackages = with pkgs; [ extraPackages = with pkgs; [
basedpyright basedpyright # Python static type checker
ruff ruff # Pyhton linter and formatter
isort nixd # Nix language server
black nixfmt # Nix formatter
nixd rust-analyzer # Rust language server
nixfmt rustfmt # Rust formmater
rust-analyzer clippy # Rust linter
rustfmt lldb # Debugger for llvm languages
marksman # Markdown language server
markdown-oxide # Markdown PKM language server
rumdl # Markdown linter and formatter
libclang # C language family frontend for LLVM
typescript-language-server # Typescript language server
vscode-langservers-extracted # HTML/CSS/JSON/ESLint language servers extracted from vscode
emmet-language-server # Emmet support based on LSP
prettier # Formatter for HTML/CSS/JSON/ESLint languages
superhtml # HTML Language Server and Templating Language Library
]; ];
settings = {
editor = {
line-number = "relative";
cursorline = true;
auto-format = true;
completion-timeout = 5;
completion-trigger-len = 1;
bufferline = "always";
color-modes = true;
end-of-line-diagnostics = "hint";
lsp = {
display-inlay-hints = true;
};
cursor-shape = {
insert = "bar";
normal = "block";
select = "underline";
};
indent-guides = {
render = true;
skip-levels = 1;
};
soft-wrap = {
enable = true;
max-indent-retain = 80;
};
inline-diagnostics = {
cursor-line = "warning";
};
};
keys =
let
arrow_keys = {
"up" = "jump_view_up";
"down" = "jump_view_down";
"left" = "jump_view_left";
"right" = "jump_view_right";
};
in
{
normal = {
"C-y" =
":sh zellij run -n Yazi -c -f -x 10%% -y 10%% --width 80%% --height 80%% -- yazi-picker open %{buffer_name}";
}
// arrow_keys;
insert = {
"C-k" = "move_visual_line_up";
"C-j" = "move_visual_line_down";
"C-h" = "move_char_left";
"C-l" = "move_char_right";
}
// arrow_keys;
select = { } // arrow_keys;
};
theme = "catppuccin_mocha";
};
# Check https://github.com/helix-editor/helix/blob/master/languages.toml for default language configuration
# Only explictly set options you want to override / make explicit
languages = { languages = {
language = [ language = [
{ {
@@ -45,10 +112,10 @@ in
]; ];
auto-format = true; auto-format = true;
formatter = { formatter = {
command = "bash"; # We have to use bash to call both isort and black command = "ruff";
args = [ args = [
"-c" "format"
"isort --profile black - | black --quiet --line-length=79 -" # Line length of 79 in accordance with PEP 8 "-"
]; ];
}; };
} }
@@ -62,75 +129,194 @@ in
} }
{ {
name = "rust"; name = "rust";
language-servers = [ "rust-analyzer" ];
auto-format = true; auto-format = true;
roots = [
"Cargo.toml"
"Cargo.lock"
];
formatter = { formatter = {
command = "rustfmt"; command = "rustfmt";
}; };
} }
{
name = "markdown";
auto-format = true;
formatter = {
command = "rumdl";
args = [
"fmt"
"-"
];
};
}
{
name = "c";
file-types = [
"c"
"h"
]; # "h" is currently missing from the default config
auto-format = true;
formatter = {
command = "clang-format";
args = [
"--style=WebKit"
];
};
}
{
name = "typescript";
language-servers = [
"typescript-language-server"
"vscode-eslint-language-server"
"emmet-language-server"
];
auto-format = true;
formatter = {
command = "prettier";
args = [
"--parser"
"typescript"
];
};
}
{
name = "tsx";
language-servers = [
"typescript-language-server"
"vscode-eslint-language-server"
"emmet-language-server"
];
auto-format = true;
formatter = {
command = "prettier";
args = [
"--parser"
"typescript"
];
};
}
{
name = "javascript";
language-servers = [
"typescript-language-server"
"vscode-eslint-language-server"
"emmet-language-server"
];
auto-format = true;
formatter = {
command = "prettier";
args = [
"--parser"
"typescript"
];
};
}
{
name = "jsx";
language-servers = [
"typescript-language-server"
"vscode-eslint-language-server"
"emmet-language-server"
];
auto-format = true;
formatter = {
command = "prettier";
args = [
"--parser"
"typescript"
];
};
}
{
name = "json";
auto-format = true;
formatter = {
command = "prettier";
args = [
"--parser"
"json"
];
};
}
{
name = "jsonc";
auto-format = true;
formatter = {
command = "prettier";
args = [
"--parser"
"jsonc"
];
};
}
{
name = "html";
language-servers = [
"vscode-html-language-server"
{
name = "superhtml";
except-features = [ "format" ];
}
"emmet-language-server"
];
auto-format = true;
formatter = {
command = "prettier";
args = [
"--parser"
"html"
];
};
}
{
name = "css";
language-servers = [
"vscode-css-language-server"
"emmet-language-server"
];
auto-format = true;
formatter = {
command = "prettier";
args = [
"--parser"
"css"
];
};
}
{
name = "scss";
language-servers = [
"vscode-css-language-server"
"emmet-language-server"
];
auto-format = true;
formatter = {
command = "prettier";
args = [
"--parser"
"scss"
];
};
}
]; ];
language-server = { language-server = {
basedpyright.config.python.analysis = { basedpyright.config.python.analysis.typeCheckingMode = "strict";
typeCheckingMode = "strict"; rust-analyzer.config.check.command = "clippy";
emmet-language-server = {
command = "emmet-language-server";
args = [ "--stdio" ];
}; };
ruff = { vscode-eslint-language-server = {
command = "ruff";
args = [ "server" ];
};
nixd = {
command = "nixd";
};
rust-analyzer = {
command = "rust-analyzer";
config = { config = {
inlayHints = { # Automatically fix ESLint errors
bindingModeHints.enable = false; codeActionsOnSave = {
closingBraceHints.minLines = 10; mode = "all";
closureReturnTypeHints.enable = "with_block"; "source.fixAll.eslint" = true;
discriminantHints.enable = "fieldless"; };
lifetimeElisionHints.enable = "skip_trivial"; quiet = false;
typeHints.hideClosureInitialization = false; experimental = {
# Support for the modern ESLint configuration format
useFlatConfig = true;
}; };
}; };
}; };
}; };
}; };
settings = {
editor = {
bufferline = "always";
completion-timeout = 5;
completion-trigger-len = 1;
line-number = "relative";
cursorline = true;
color-modes = true;
cursor-shape = {
insert = "bar";
normal = "block";
select = "underline";
};
lsp = {
display-inlay-hints = true;
};
indent-guides = {
render = true;
skip-levels = 1;
};
soft-wrap = {
enable = true;
max-indent-retain = 80;
};
};
keys = {
normal = {
"C-y" =
":sh zellij run -n Yazi -c -f -x 10%% -y 10%% --width 80%% --height 80%% -- yazi-picker open %{buffer_name}";
};
};
theme = "catppuccin_mocha";
};
}; };
} }

View File

@@ -1,6 +1,3 @@
{
...
}:
{ {
services.kanshi = { services.kanshi = {
enable = true; enable = true;

View File

@@ -80,6 +80,8 @@ in
repeat = false; repeat = false;
hotkey-overlay.title = "Session menu"; hotkey-overlay.title = "Session menu";
}; };
# Notifications
"Mod+N" = { "Mod+N" = {
action.spawn = [ action.spawn = [
noctalia-shell noctalia-shell
@@ -91,6 +93,17 @@ in
repeat = false; repeat = false;
hotkey-overlay.title = "Show notifications"; hotkey-overlay.title = "Show notifications";
}; };
"Mod+Ctrl+N" = {
action.spawn = [
noctalia-shell
"ipc"
"call"
"notifications"
"clear"
];
repeat = false;
hotkey-overlay.title = "Clear notifications";
};
# Media keys # Media keys
"XF86AudioPrev" = { "XF86AudioPrev" = {
@@ -292,28 +305,33 @@ in
hotkey-overlay.title = "Decrease window height"; hotkey-overlay.title = "Decrease window height";
}; };
"Mod+Z" = { "Mod+Z" = {
action.switch-focus-between-floating-and-tiling = { }; action.toggle-window-floating = { };
repeat = false; repeat = false;
hotkey-overlay.title = "Toggle floating"; hotkey-overlay.title = "Toggle floating";
}; };
"Mod+T" = {
action.toggle-column-tabbed-display = { };
repeat = false;
hotkey-overlay.title = "Toggle tabbed column";
};
# Window and column movement # Window and column movement
"Mod+Up" = { "Mod+K" = {
action.focus-window-or-monitor-up = { }; action.focus-window-or-monitor-up = { };
repeat = false; repeat = false;
hotkey-overlay.title = "Focus window up"; hotkey-overlay.title = "Focus window up";
}; };
"Mod+Down" = { "Mod+J" = {
action.focus-window-or-monitor-down = { }; action.focus-window-or-monitor-down = { };
repeat = false; repeat = false;
hotkey-overlay.title = "Focus window down"; hotkey-overlay.title = "Focus window down";
}; };
"Mod+Left" = { "Mod+H" = {
action.focus-column-or-monitor-left = { }; action.focus-column-or-monitor-left = { };
repeat = false; repeat = false;
hotkey-overlay.title = "Focus window left"; hotkey-overlay.title = "Focus window left";
}; };
"Mod+Right" = { "Mod+L" = {
action.focus-column-or-monitor-right = { }; action.focus-column-or-monitor-right = { };
repeat = false; repeat = false;
hotkey-overlay.title = "Focus window right"; hotkey-overlay.title = "Focus window right";
@@ -328,44 +346,44 @@ in
repeat = false; repeat = false;
hotkey-overlay.title = "Move window right"; hotkey-overlay.title = "Move window right";
}; };
"Mod+Shift+Up" = { "Mod+Shift+K" = {
action.move-column-to-monitor-up = { }; action.move-column-to-monitor-up = { };
repeat = false; repeat = false;
hotkey-overlay.title = "Move column up"; hotkey-overlay.title = "Move column up";
}; };
"Mod+Shift+Down" = { "Mod+Shift+J" = {
action.move-column-to-monitor-down = { }; action.move-column-to-monitor-down = { };
repeat = false; repeat = false;
hotkey-overlay.title = "Move column down"; hotkey-overlay.title = "Move column down";
}; };
"Mod+Shift+Left" = { "Mod+Shift+H" = {
action.move-column-left-or-to-monitor-left = { }; action.move-column-left-or-to-monitor-left = { };
repeat = false; repeat = false;
hotkey-overlay.title = "Move column left"; hotkey-overlay.title = "Move column left";
}; };
"Mod+Shift+Right" = { "Mod+Shift+L" = {
action.move-column-right-or-to-monitor-right = { }; action.move-column-right-or-to-monitor-right = { };
repeat = false; repeat = false;
hotkey-overlay.title = "Move column right"; hotkey-overlay.title = "Move column right";
}; };
# Workspaces # Workspaces
"Mod+Ctrl+Up" = { "Mod+Ctrl+K" = {
action.focus-workspace-up = { }; action.focus-workspace-up = { };
repeat = false; repeat = false;
hotkey-overlay.title = "Focus workspace up"; hotkey-overlay.title = "Focus workspace up";
}; };
"Mod+Ctrl+Down" = { "Mod+Ctrl+J" = {
action.focus-workspace-down = { }; action.focus-workspace-down = { };
repeat = false; repeat = false;
hotkey-overlay.title = "Focus workspace down"; hotkey-overlay.title = "Focus workspace down";
}; };
"Mod+Ctrl+Shift+Up" = { "Mod+Ctrl+Shift+K" = {
action.move-column-to-workspace-up = { }; action.move-column-to-workspace-up = { };
repeat = false; repeat = false;
hotkey-overlay.title = "Move column to workspace up"; hotkey-overlay.title = "Move column to workspace up";
}; };
"Mod+Ctrl+Shift+Down" = { "Mod+Ctrl+Shift+J" = {
action.move-column-to-workspace-down = { }; action.move-column-to-workspace-down = { };
repeat = false; repeat = false;
hotkey-overlay.title = "Move column to workspace down"; hotkey-overlay.title = "Move column to workspace down";
@@ -381,13 +399,32 @@ in
window-rules = [ window-rules = [
{ {
geometry-corner-radius = { geometry-corner-radius = {
bottom-left = 5.0; bottom-left = 10.0;
bottom-right = 5.0; bottom-right = 10.0;
top-left = 5.0; top-left = 10.0;
top-right = 5.0; top-right = 10.0;
}; };
clip-to-geometry = true; clip-to-geometry = true;
} }
# Unfortunately windows like firefox extensions set their titles after spawning preventing
# the window rules from being applied. There is a script to fix this but it is pretty hacky.
# {
# matches = [
# {
# title = "^Extension:.*";
# app-id = "firefox";
# }
# ];
# open-floating = true;
# }
{
matches = [
{ app-id = "foot"; }
{ app-id = "Alacritty"; }
];
opacity = 0.93;
default-column-width.proportion = 0.4;
}
]; ];
layer-rules = [ layer-rules = [
{ {
@@ -397,7 +434,7 @@ in
} }
]; ];
prefer-no-csd = true; prefer-no-csd = true;
screenshot-path = "${config.xdg.userDirs.extraConfig.XDG_SCREENSHOTS_DIR}/%Y%m%d-%H%M%S.png"; screenshot-path = "${config.xdg.userDirs.extraConfig.SCREENSHOTS}/%Y%m%d-%H%M%S.png";
hotkey-overlay = { hotkey-overlay = {
skip-at-startup = true; skip-at-startup = true;
}; };
@@ -406,13 +443,17 @@ in
# { argv = [ "noctalia-shell" ]; } # { argv = [ "noctalia-shell" ]; }
# ]; # ];
cursor = { cursor = {
size = 16; size = config.stylix.cursor.size;
theme = "catppuccin-mocha-dark-cursors"; theme = config.stylix.cursor.name;
hide-when-typing = true; hide-when-typing = true;
}; };
gestures = { gestures = {
hot-corners.enable = false; hot-corners.enable = false;
}; };
xwayland-satellite = {
enable = true;
path = lib.getExe pkgs.xwayland-satellite-unstable;
};
environment = { environment = {
"NIXOS_OZONE_WL" = "1"; "NIXOS_OZONE_WL" = "1";
}; };
@@ -420,7 +461,7 @@ in
# Allows notification actions and window activation from Noctalia. # Allows notification actions and window activation from Noctalia.
honor-xdg-activation-with-invalid-serial = { }; honor-xdg-activation-with-invalid-serial = { };
}; };
# Support for external 'inclues' sounds like it is in the works. # Support for external 'includes' sounds like it is in the works.
# Will just have to wait until then for noctalia color scheme integration. # Will just have to wait until then for noctalia color scheme integration.
}; };
}; };

View File

@@ -14,6 +14,8 @@
settings = { settings = {
general = { general = {
avatarImage = "~/.face"; avatarImage = "~/.face";
autoStartAuth = true;
allowPasswordWithFprintd = true;
}; };
location.name = "Washington DC"; location.name = "Washington DC";
bar = { bar = {
@@ -45,6 +47,10 @@
}; };
templates = { templates = {
activeTemplates = [ activeTemplates = [
{
enabled = true;
id = "alacritty";
}
{ {
enabled = true; enabled = true;
id = "discord"; id = "discord";
@@ -91,7 +97,7 @@
wallpaper = { wallpaper = {
enabled = true; enabled = true;
overviewEnabled = true; overviewEnabled = true;
directory = "${config.xdg.userDirs.extraConfig.XDG_WALLPAPERS_DIR}"; directory = "${config.xdg.userDirs.extraConfig.WALLPAPERS}";
}; };
colorSchemes.predefinedScheme = "Catppuccin"; colorSchemes.predefinedScheme = "Catppuccin";
}; };

View File

@@ -11,7 +11,6 @@
programs.nix-jmu-cs345.enable = true; programs.nix-jmu-cs345.enable = true;
home.packages = with pkgs; [ home.packages = with pkgs; [
zoom-us
devenv devenv
htop htop
obsidian obsidian

View File

@@ -15,7 +15,7 @@
# Configuration options: https://github.com/jtheoof/swappy?tab=readme-ov-file#config # Configuration options: https://github.com/jtheoof/swappy?tab=readme-ov-file#config
settings = { settings = {
Default = { Default = {
save_dir = config.xdg.userDirs.extraConfig.XDG_SCREENSHOTS_DIR; save_dir = config.xdg.userDirs.extraConfig.SCREENSHOTS;
save_filename_format = "%Y%m%d-%H%M%S.png"; save_filename_format = "%Y%m%d-%H%M%S.png";
show_panel = false; show_panel = false;
auto_save = false; auto_save = false;

View File

@@ -1,6 +1,3 @@
{
...
}:
{ {
programs.ssh = { programs.ssh = {
enable = true; enable = true;

View File

@@ -9,20 +9,28 @@
inputs.stylix.homeModules.stylix inputs.stylix.homeModules.stylix
]; ];
# Not really using stylix as it was intended because IMO it sets too many defaults for some
# programs and not enought for others, meaning I wind up setting a lot myself anyway. That
# being said it provides a nice structure for setting fonts, cursors, icons, etc.
stylix = { stylix = {
enable = true; enable = true;
autoEnable = false; autoEnable = false;
polarity = "dark"; polarity = "dark";
base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml"; base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml";
cursor = { cursor = {
name = "Catppuccin-Mocha-Dark-Cursors"; name = "catppuccin-mocha-dark-cursors";
package = pkgs.catppuccin-cursors.mochaDark; package = pkgs.catppuccin-cursors.mochaDark;
size = 16; size = 16;
}; };
# For some reason setting the fonts' package option doesn't work.
# Just use home.packages instead
fonts = { fonts = {
monospace = { monospace.name = "JetBrainsMono Nerd Font";
name = "JetBrainsMono Nerd Font"; sansSerif.name = "Noto Sans";
package = pkgs.nerd-fonts.jetbrains-mono; emoji.name = "Noto Color Emoji";
sizes = {
applications = 12;
terminal = 12;
}; };
}; };
icons = { icons = {
@@ -31,60 +39,51 @@
light = "MoreWaita"; light = "MoreWaita";
dark = "MoreWaita"; dark = "MoreWaita";
}; };
targets = {
foot = {
enable = true;
fonts.enable = true;
colors.enable = false;
inputs.enable = false;
opacity.enable = false;
};
};
}; };
# Fonts
home.packages = with pkgs; [
nerd-fonts.jetbrains-mono
noto-fonts
noto-fonts-cjk-sans
noto-fonts-color-emoji
];
gtk = { gtk = {
enable = true; enable = true;
colorScheme = "dark"; colorScheme = config.stylix.polarity;
iconTheme.name = "MoreWaita"; # iconTheme is set by default by stylix.icons.enable
theme = { theme = {
name = "adw-gtk3-dark"; name = "adw-gtk3-${config.stylix.polarity}";
package = pkgs.adw-gtk3; package = pkgs.adw-gtk3;
}; };
}; };
qt = { qt =
enable = true; let
platformTheme.name = "qtct"; qt_settings = ver: {
style.name = "breeze"; Appearance = {
qt5ctSettings = { color_scheme_path = "${config.xdg.configHome}/${ver}/colors/noctalia.conf";
Appearance = { custom_palette = true;
color_scheme_path = "${config.xdg.configHome}/qt5ct/colors/noctalia.conf"; icon_theme = config.stylix.icons.${config.stylix.polarity};
custom_palette = true; standard_dialogs = "xdgdesktopportal";
icon_theme = "MoreWaita"; style = "Breeze";
standard_dialogs = "xdgdesktopportal"; };
style = "Breeze"; Fonts = {
}; fixed = "\"${config.stylix.fonts.monospace.name},${toString config.stylix.fonts.sizes.applications}\"";
Fonts = { general = "\"${config.stylix.fonts.sansSerif.name},${toString config.stylix.fonts.sizes.applications}\"";
fixed = "\"JetBrainsMono Nerd Font Mono,12\""; };
general = "\"JetBrainsMono Nerd Font Propo,12\"";
}; };
in
{
enable = true;
platformTheme.name = "qtct";
style.name = "breeze";
qt5ctSettings = qt_settings "qt5ct";
qt6ctSettings = qt_settings "qt6ct";
}; };
qt6ctSettings = {
Appearance = {
color_scheme_path = "${config.xdg.configHome}/qt6ct/colors/noctalia.conf";
custom_palette = true;
icon_theme = "MoreWaita";
standard_dialogs = "xdgdesktopportal";
style = "Breeze";
};
Fonts = {
fixed = "\"JetBrainsMono Nerd Font Mono,12\"";
general = "\"JetBrainsMono Nerd Font Propo,12\"";
};
};
};
home.sessionVariables = { home.sessionVariables = {
QS_ICON_THEME = "MoreWaita"; QS_ICON_THEME = config.stylix.icons.${config.stylix.polarity};
}; };
} }

View File

@@ -5,6 +5,21 @@
}: }:
{ {
programs = { programs = {
alacritty = {
enable = true;
settings = {
general = {
import = [ "${config.xdg.configHome}/alacritty/themes/noctalia.toml" ];
};
font = {
normal = {
family = "${config.stylix.fonts.monospace.name}";
style = "Regular";
};
size = config.stylix.fonts.sizes.terminal;
};
};
};
direnv = { direnv = {
enable = true; enable = true;
enableZshIntegration = true; enableZshIntegration = true;
@@ -19,6 +34,8 @@
main = { main = {
term = "xterm-256color"; term = "xterm-256color";
include = "${config.xdg.configHome}/foot/themes/noctalia"; include = "${config.xdg.configHome}/foot/themes/noctalia";
dpi-aware = "no";
font = "${config.stylix.fonts.monospace.name}:size=${toString config.stylix.fonts.sizes.terminal}";
}; };
mouse = { mouse = {
hide-when-typing = "yes"; hide-when-typing = "yes";
@@ -35,18 +52,18 @@
settings = { settings = {
add_newline = true; add_newline = true;
format = pkgs.lib.concatStrings [ format = pkgs.lib.concatStrings [
"[ $username([@](bold 3)$hostname) $directory( $git_branch $git_status)](5)" "[ [\\[](1)$username([@](bold 2)$hostname)[\\]:](1) $directory( $git_branch)](5)"
"$line_break" "$line_break"
"[ $character](5)" "[ $character](5)"
]; ];
username = { username = {
style_root = "white"; style_root = "white";
format = "[$user](5)"; format = "[$user](3)";
disabled = false; disabled = false;
show_always = true; show_always = true;
}; };
hostname = { hostname = {
format = "[$hostname](bold 7)"; format = "[$hostname](bold 4)";
disabled = false; disabled = false;
ssh_only = false; ssh_only = false;
}; };
@@ -57,7 +74,7 @@
}; };
directory = { directory = {
read_only = ""; read_only = "";
format = "[ $path](blue)"; format = "[ $path](5)";
read_only_style = "bold white"; read_only_style = "bold white";
truncation_length = 5; truncation_length = 5;
}; };
@@ -66,20 +83,6 @@
style = "bright-black"; style = "bright-black";
format = "[$symbol $branch]($style)"; format = "[$symbol $branch]($style)";
}; };
git_status = {
format = "([$all_status$ahead_behind](1))";
conflicted = "󱐋";
ahead = "\${count}";
behind = "\${count}";
diverged = "\${ahead_count}\${behind_count}";
up_to_date = "";
untracked = "?\${count}";
stashed = "$${count}";
modified = "!\${count}";
staged = "+\${count}";
renamed = "»\${count}";
deleted = "\${count}";
};
scan_timeout = 100; scan_timeout = 100;
}; };
}; };

View File

@@ -1,6 +1,3 @@
{
...
}:
{ {
programs.vesktop = { programs.vesktop = {
enable = true; enable = true;

View File

@@ -1,4 +1,5 @@
{ {
config,
... ...
}: }:
{ {
@@ -18,17 +19,17 @@
font = { font = {
normal = { normal = {
size = 12; size = 12;
normal = "JetBrainsMono Nerd Font"; normal = "${config.stylix.fonts.sansSerif.name}";
}; };
}; };
theme = { theme = {
light = { light = {
name = "noctalia"; name = "noctalia";
icon_theme = "MoreWaita"; icon_theme = "${config.stylix.icons.light}";
}; };
dark = { dark = {
name = "noctalia"; name = "noctalia";
icon_theme = "MoreWaita"; icon_theme = "${config.stylix.icons.dark}";
}; };
}; };
}; };

View File

@@ -18,10 +18,17 @@
enable = true; enable = true;
createDirectories = true; createDirectories = true;
extraConfig = { extraConfig = {
XDG_DEV_DIR = "${config.home.homeDirectory}/Dev"; DEV = "${config.home.homeDirectory}/Dev";
XDG_WALLPAPERS_DIR = "${config.xdg.userDirs.pictures}/Wallpapers"; WALLPAPERS = "${config.xdg.userDirs.pictures}/Wallpapers";
XDG_SCREENSHOTS_DIR = "${config.xdg.userDirs.pictures}/Screenshots"; SCREENSHOTS = "${config.xdg.userDirs.pictures}/Screenshots";
}; };
}; };
}; };
home.file.".face".source = ../../assets/profile-picture.jpg;
home.file."${config.xdg.userDirs.extraConfig.WALLPAPERS}" = {
source = ../../assets/wallpapers;
recursive = true;
};
} }

View File

@@ -8,6 +8,6 @@
]; ];
programs.zen-browser = { programs.zen-browser = {
enable = true; enable = false;
}; };
} }

View File

@@ -1,6 +1,3 @@
{
...
}:
{ {
nixpkgs.overlays = [ nixpkgs.overlays = [
(import ./heybrochecklog.nix) (import ./heybrochecklog.nix)

View File

@@ -1,13 +1,9 @@
{
...
}:
{ {
imports = [ imports = [
./agenix.nix ./agenix.nix
./boot.nix ./boot.nix
./desktop.nix ./desktop.nix
./fileSystems.nix ./fileSystems.nix
./fonts.nix
./network.nix ./network.nix
./packages.nix ./packages.nix
./security.nix ./security.nix

View File

@@ -1,5 +1,6 @@
{ {
inputs, inputs,
pkgs,
... ...
}: }:
{ {
@@ -8,7 +9,10 @@
]; ];
programs = { programs = {
niri.enable = true; niri = {
enable = true;
package = pkgs.niri-unstable;
};
uwsm = { uwsm = {
enable = true; enable = true;
waylandCompositors = { waylandCompositors = {
@@ -20,6 +24,12 @@
}; };
}; };
environment.systemPackages = [ pkgs.xwayland-satellite-unstable ];
nixpkgs.overlays = [
inputs.niri.overlays.niri
];
services.displayManager = { services.displayManager = {
gdm = { gdm = {
enable = true; enable = true;

View File

@@ -81,6 +81,10 @@
# Enable thermald (only necessary for Intel CPUs) # Enable thermald (only necessary for Intel CPUs)
thermald.enable = true; thermald.enable = true;
fwupd.enable = true;
fprintd.enable = true;
}; };
powerManagement = { powerManagement = {