Additional Helix & Niri configuration. Various cleanups
This commit is contained in:
18
flake.lock
generated
18
flake.lock
generated
@@ -375,11 +375,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1769132734,
|
||||
"narHash": "sha256-gmU9cRplrQWqoback9PgQX7Dlsdx8JlhlVZwf0q1F7E=",
|
||||
"lastModified": 1771683283,
|
||||
"narHash": "sha256-WxAEkAbo8dP7qiyPM6VN4ZGAxfuBVlNBNPkrqkrXVEc=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "d055b309a6277343cb1033a11d7500f0a0f669fc",
|
||||
"rev": "c6ed3eab64d23520bcbb858aa53fe2b533725d4a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -515,11 +515,11 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1769461804,
|
||||
"narHash": "sha256-msG8SU5WsBUfVVa/9RPLaymvi5bI8edTavbIq3vRlhI=",
|
||||
"lastModified": 1771369470,
|
||||
"narHash": "sha256-0NBlEBKkN3lufyvFegY4TYv5mCNHbi5OmBDrzihbBMQ=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "bfc1b8a4574108ceef22f02bafcf6611380c100d",
|
||||
"rev": "0182a361324364ae3f436a63005877674cf45efb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -552,11 +552,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1770002874,
|
||||
"narHash": "sha256-UOjvZXyZLZv0dP9GZPjis8IRxmrIoMt8c25WGCt7+hU=",
|
||||
"lastModified": 1771434371,
|
||||
"narHash": "sha256-1ivy5+FBZMSojnduPnG6K8w5EFxyP61vthmLXzfGwco=",
|
||||
"owner": "noctalia-dev",
|
||||
"repo": "noctalia-shell",
|
||||
"rev": "a8d74633f6920b91edf102e33a812af8489e2c88",
|
||||
"rev": "04589a4f58c7315b035633a274d1fc820d34c31a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
}
|
||||
@@ -1,9 +1,5 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
./assets.nix
|
||||
./firefox.nix
|
||||
./git.nix
|
||||
./helix.nix
|
||||
@@ -21,6 +17,6 @@
|
||||
./xdg.nix
|
||||
./yazi.nix
|
||||
./zed.nix
|
||||
./zen-browser.nix
|
||||
# ./zen-browser.nix
|
||||
];
|
||||
}
|
||||
|
||||
@@ -117,6 +117,22 @@
|
||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
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 = {
|
||||
name = "Surugaya";
|
||||
urls = [
|
||||
|
||||
@@ -26,15 +26,82 @@ in
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
extraPackages = with pkgs; [
|
||||
basedpyright
|
||||
ruff
|
||||
isort
|
||||
black
|
||||
nixd
|
||||
nixfmt
|
||||
rust-analyzer
|
||||
rustfmt
|
||||
basedpyright # Python static type checker
|
||||
ruff # Pyhton linter and formatter
|
||||
nixd # Nix language server
|
||||
nixfmt # Nix formatter
|
||||
rust-analyzer # Rust language server
|
||||
rustfmt # Rust formmater
|
||||
clippy # Rust linter
|
||||
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 = {
|
||||
language = [
|
||||
{
|
||||
@@ -45,10 +112,10 @@ in
|
||||
];
|
||||
auto-format = true;
|
||||
formatter = {
|
||||
command = "bash"; # We have to use bash to call both isort and black
|
||||
command = "ruff";
|
||||
args = [
|
||||
"-c"
|
||||
"isort --profile black - | black --quiet --line-length=79 -" # Line length of 79 in accordance with PEP 8
|
||||
"format"
|
||||
"-"
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -62,75 +129,194 @@ in
|
||||
}
|
||||
{
|
||||
name = "rust";
|
||||
language-servers = [ "rust-analyzer" ];
|
||||
auto-format = true;
|
||||
roots = [
|
||||
"Cargo.toml"
|
||||
"Cargo.lock"
|
||||
];
|
||||
formatter = {
|
||||
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 = {
|
||||
basedpyright.config.python.analysis = {
|
||||
typeCheckingMode = "strict";
|
||||
basedpyright.config.python.analysis.typeCheckingMode = "strict";
|
||||
rust-analyzer.config.check.command = "clippy";
|
||||
emmet-language-server = {
|
||||
command = "emmet-language-server";
|
||||
args = [ "--stdio" ];
|
||||
};
|
||||
ruff = {
|
||||
command = "ruff";
|
||||
args = [ "server" ];
|
||||
};
|
||||
nixd = {
|
||||
command = "nixd";
|
||||
};
|
||||
rust-analyzer = {
|
||||
command = "rust-analyzer";
|
||||
vscode-eslint-language-server = {
|
||||
config = {
|
||||
inlayHints = {
|
||||
bindingModeHints.enable = false;
|
||||
closingBraceHints.minLines = 10;
|
||||
closureReturnTypeHints.enable = "with_block";
|
||||
discriminantHints.enable = "fieldless";
|
||||
lifetimeElisionHints.enable = "skip_trivial";
|
||||
typeHints.hideClosureInitialization = false;
|
||||
# Automatically fix ESLint errors
|
||||
codeActionsOnSave = {
|
||||
mode = "all";
|
||||
"source.fixAll.eslint" = true;
|
||||
};
|
||||
quiet = 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";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
services.kanshi = {
|
||||
enable = true;
|
||||
|
||||
@@ -80,6 +80,8 @@ in
|
||||
repeat = false;
|
||||
hotkey-overlay.title = "Session menu";
|
||||
};
|
||||
|
||||
# Notifications
|
||||
"Mod+N" = {
|
||||
action.spawn = [
|
||||
noctalia-shell
|
||||
@@ -91,6 +93,17 @@ in
|
||||
repeat = false;
|
||||
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
|
||||
"XF86AudioPrev" = {
|
||||
@@ -292,28 +305,33 @@ in
|
||||
hotkey-overlay.title = "Decrease window height";
|
||||
};
|
||||
"Mod+Z" = {
|
||||
action.switch-focus-between-floating-and-tiling = { };
|
||||
action.toggle-window-floating = { };
|
||||
repeat = false;
|
||||
hotkey-overlay.title = "Toggle floating";
|
||||
};
|
||||
"Mod+T" = {
|
||||
action.toggle-column-tabbed-display = { };
|
||||
repeat = false;
|
||||
hotkey-overlay.title = "Toggle tabbed column";
|
||||
};
|
||||
|
||||
# Window and column movement
|
||||
"Mod+Up" = {
|
||||
"Mod+K" = {
|
||||
action.focus-window-or-monitor-up = { };
|
||||
repeat = false;
|
||||
hotkey-overlay.title = "Focus window up";
|
||||
};
|
||||
"Mod+Down" = {
|
||||
"Mod+J" = {
|
||||
action.focus-window-or-monitor-down = { };
|
||||
repeat = false;
|
||||
hotkey-overlay.title = "Focus window down";
|
||||
};
|
||||
"Mod+Left" = {
|
||||
"Mod+H" = {
|
||||
action.focus-column-or-monitor-left = { };
|
||||
repeat = false;
|
||||
hotkey-overlay.title = "Focus window left";
|
||||
};
|
||||
"Mod+Right" = {
|
||||
"Mod+L" = {
|
||||
action.focus-column-or-monitor-right = { };
|
||||
repeat = false;
|
||||
hotkey-overlay.title = "Focus window right";
|
||||
@@ -328,44 +346,44 @@ in
|
||||
repeat = false;
|
||||
hotkey-overlay.title = "Move window right";
|
||||
};
|
||||
"Mod+Shift+Up" = {
|
||||
"Mod+Shift+K" = {
|
||||
action.move-column-to-monitor-up = { };
|
||||
repeat = false;
|
||||
hotkey-overlay.title = "Move column up";
|
||||
};
|
||||
"Mod+Shift+Down" = {
|
||||
"Mod+Shift+J" = {
|
||||
action.move-column-to-monitor-down = { };
|
||||
repeat = false;
|
||||
hotkey-overlay.title = "Move column down";
|
||||
};
|
||||
"Mod+Shift+Left" = {
|
||||
"Mod+Shift+H" = {
|
||||
action.move-column-left-or-to-monitor-left = { };
|
||||
repeat = false;
|
||||
hotkey-overlay.title = "Move column left";
|
||||
};
|
||||
"Mod+Shift+Right" = {
|
||||
"Mod+Shift+L" = {
|
||||
action.move-column-right-or-to-monitor-right = { };
|
||||
repeat = false;
|
||||
hotkey-overlay.title = "Move column right";
|
||||
};
|
||||
|
||||
# Workspaces
|
||||
"Mod+Ctrl+Up" = {
|
||||
"Mod+Ctrl+K" = {
|
||||
action.focus-workspace-up = { };
|
||||
repeat = false;
|
||||
hotkey-overlay.title = "Focus workspace up";
|
||||
};
|
||||
"Mod+Ctrl+Down" = {
|
||||
"Mod+Ctrl+J" = {
|
||||
action.focus-workspace-down = { };
|
||||
repeat = false;
|
||||
hotkey-overlay.title = "Focus workspace down";
|
||||
};
|
||||
"Mod+Ctrl+Shift+Up" = {
|
||||
"Mod+Ctrl+Shift+K" = {
|
||||
action.move-column-to-workspace-up = { };
|
||||
repeat = false;
|
||||
hotkey-overlay.title = "Move column to workspace up";
|
||||
};
|
||||
"Mod+Ctrl+Shift+Down" = {
|
||||
"Mod+Ctrl+Shift+J" = {
|
||||
action.move-column-to-workspace-down = { };
|
||||
repeat = false;
|
||||
hotkey-overlay.title = "Move column to workspace down";
|
||||
@@ -381,13 +399,32 @@ in
|
||||
window-rules = [
|
||||
{
|
||||
geometry-corner-radius = {
|
||||
bottom-left = 5.0;
|
||||
bottom-right = 5.0;
|
||||
top-left = 5.0;
|
||||
top-right = 5.0;
|
||||
bottom-left = 10.0;
|
||||
bottom-right = 10.0;
|
||||
top-left = 10.0;
|
||||
top-right = 10.0;
|
||||
};
|
||||
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 = [
|
||||
{
|
||||
@@ -397,7 +434,7 @@ in
|
||||
}
|
||||
];
|
||||
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 = {
|
||||
skip-at-startup = true;
|
||||
};
|
||||
@@ -406,13 +443,17 @@ in
|
||||
# { argv = [ "noctalia-shell" ]; }
|
||||
# ];
|
||||
cursor = {
|
||||
size = 16;
|
||||
theme = "catppuccin-mocha-dark-cursors";
|
||||
size = config.stylix.cursor.size;
|
||||
theme = config.stylix.cursor.name;
|
||||
hide-when-typing = true;
|
||||
};
|
||||
gestures = {
|
||||
hot-corners.enable = false;
|
||||
};
|
||||
xwayland-satellite = {
|
||||
enable = true;
|
||||
path = lib.getExe pkgs.xwayland-satellite-unstable;
|
||||
};
|
||||
environment = {
|
||||
"NIXOS_OZONE_WL" = "1";
|
||||
};
|
||||
@@ -420,7 +461,7 @@ in
|
||||
# Allows notification actions and window activation from Noctalia.
|
||||
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.
|
||||
};
|
||||
};
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
settings = {
|
||||
general = {
|
||||
avatarImage = "~/.face";
|
||||
autoStartAuth = true;
|
||||
allowPasswordWithFprintd = true;
|
||||
};
|
||||
location.name = "Washington DC";
|
||||
bar = {
|
||||
@@ -45,6 +47,10 @@
|
||||
};
|
||||
templates = {
|
||||
activeTemplates = [
|
||||
{
|
||||
enabled = true;
|
||||
id = "alacritty";
|
||||
}
|
||||
{
|
||||
enabled = true;
|
||||
id = "discord";
|
||||
@@ -91,7 +97,7 @@
|
||||
wallpaper = {
|
||||
enabled = true;
|
||||
overviewEnabled = true;
|
||||
directory = "${config.xdg.userDirs.extraConfig.XDG_WALLPAPERS_DIR}";
|
||||
directory = "${config.xdg.userDirs.extraConfig.WALLPAPERS}";
|
||||
};
|
||||
colorSchemes.predefinedScheme = "Catppuccin";
|
||||
};
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
programs.nix-jmu-cs345.enable = true;
|
||||
|
||||
home.packages = with pkgs; [
|
||||
zoom-us
|
||||
devenv
|
||||
htop
|
||||
obsidian
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
# Configuration options: https://github.com/jtheoof/swappy?tab=readme-ov-file#config
|
||||
settings = {
|
||||
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";
|
||||
show_panel = false;
|
||||
auto_save = false;
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.ssh = {
|
||||
enable = true;
|
||||
|
||||
@@ -9,20 +9,28 @@
|
||||
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 = {
|
||||
enable = true;
|
||||
autoEnable = false;
|
||||
polarity = "dark";
|
||||
base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml";
|
||||
cursor = {
|
||||
name = "Catppuccin-Mocha-Dark-Cursors";
|
||||
name = "catppuccin-mocha-dark-cursors";
|
||||
package = pkgs.catppuccin-cursors.mochaDark;
|
||||
size = 16;
|
||||
};
|
||||
# For some reason setting the fonts' package option doesn't work.
|
||||
# Just use home.packages instead
|
||||
fonts = {
|
||||
monospace = {
|
||||
name = "JetBrainsMono Nerd Font";
|
||||
package = pkgs.nerd-fonts.jetbrains-mono;
|
||||
monospace.name = "JetBrainsMono Nerd Font";
|
||||
sansSerif.name = "Noto Sans";
|
||||
emoji.name = "Noto Color Emoji";
|
||||
sizes = {
|
||||
applications = 12;
|
||||
terminal = 12;
|
||||
};
|
||||
};
|
||||
icons = {
|
||||
@@ -31,60 +39,51 @@
|
||||
light = "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 = {
|
||||
enable = true;
|
||||
colorScheme = "dark";
|
||||
iconTheme.name = "MoreWaita";
|
||||
colorScheme = config.stylix.polarity;
|
||||
# iconTheme is set by default by stylix.icons.enable
|
||||
theme = {
|
||||
name = "adw-gtk3-dark";
|
||||
name = "adw-gtk3-${config.stylix.polarity}";
|
||||
package = pkgs.adw-gtk3;
|
||||
};
|
||||
};
|
||||
|
||||
qt = {
|
||||
qt =
|
||||
let
|
||||
qt_settings = ver: {
|
||||
Appearance = {
|
||||
color_scheme_path = "${config.xdg.configHome}/${ver}/colors/noctalia.conf";
|
||||
custom_palette = true;
|
||||
icon_theme = config.stylix.icons.${config.stylix.polarity};
|
||||
standard_dialogs = "xdgdesktopportal";
|
||||
style = "Breeze";
|
||||
};
|
||||
Fonts = {
|
||||
fixed = "\"${config.stylix.fonts.monospace.name},${toString config.stylix.fonts.sizes.applications}\"";
|
||||
general = "\"${config.stylix.fonts.sansSerif.name},${toString config.stylix.fonts.sizes.applications}\"";
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
enable = true;
|
||||
platformTheme.name = "qtct";
|
||||
style.name = "breeze";
|
||||
qt5ctSettings = {
|
||||
Appearance = {
|
||||
color_scheme_path = "${config.xdg.configHome}/qt5ct/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\"";
|
||||
};
|
||||
};
|
||||
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\"";
|
||||
};
|
||||
};
|
||||
qt5ctSettings = qt_settings "qt5ct";
|
||||
qt6ctSettings = qt_settings "qt6ct";
|
||||
};
|
||||
|
||||
home.sessionVariables = {
|
||||
QS_ICON_THEME = "MoreWaita";
|
||||
QS_ICON_THEME = config.stylix.icons.${config.stylix.polarity};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -5,6 +5,21 @@
|
||||
}:
|
||||
{
|
||||
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 = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
@@ -19,6 +34,8 @@
|
||||
main = {
|
||||
term = "xterm-256color";
|
||||
include = "${config.xdg.configHome}/foot/themes/noctalia";
|
||||
dpi-aware = "no";
|
||||
font = "${config.stylix.fonts.monospace.name}:size=${toString config.stylix.fonts.sizes.terminal}";
|
||||
};
|
||||
mouse = {
|
||||
hide-when-typing = "yes";
|
||||
@@ -35,18 +52,18 @@
|
||||
settings = {
|
||||
add_newline = true;
|
||||
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"
|
||||
"[ ╰─$character](5)"
|
||||
];
|
||||
username = {
|
||||
style_root = "white";
|
||||
format = "[$user](5)";
|
||||
format = "[$user](3)";
|
||||
disabled = false;
|
||||
show_always = true;
|
||||
};
|
||||
hostname = {
|
||||
format = "[$hostname](bold 7)";
|
||||
format = "[$hostname](bold 4)";
|
||||
disabled = false;
|
||||
ssh_only = false;
|
||||
};
|
||||
@@ -57,7 +74,7 @@
|
||||
};
|
||||
directory = {
|
||||
read_only = "";
|
||||
format = "[ $path](blue)";
|
||||
format = "[ $path](5)";
|
||||
read_only_style = "bold white";
|
||||
truncation_length = 5;
|
||||
};
|
||||
@@ -66,20 +83,6 @@
|
||||
style = "bright-black";
|
||||
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;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.vesktop = {
|
||||
enable = true;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
@@ -18,17 +19,17 @@
|
||||
font = {
|
||||
normal = {
|
||||
size = 12;
|
||||
normal = "JetBrainsMono Nerd Font";
|
||||
normal = "${config.stylix.fonts.sansSerif.name}";
|
||||
};
|
||||
};
|
||||
theme = {
|
||||
light = {
|
||||
name = "noctalia";
|
||||
icon_theme = "MoreWaita";
|
||||
icon_theme = "${config.stylix.icons.light}";
|
||||
};
|
||||
dark = {
|
||||
name = "noctalia";
|
||||
icon_theme = "MoreWaita";
|
||||
icon_theme = "${config.stylix.icons.dark}";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -18,10 +18,17 @@
|
||||
enable = true;
|
||||
createDirectories = true;
|
||||
extraConfig = {
|
||||
XDG_DEV_DIR = "${config.home.homeDirectory}/Dev";
|
||||
XDG_WALLPAPERS_DIR = "${config.xdg.userDirs.pictures}/Wallpapers";
|
||||
XDG_SCREENSHOTS_DIR = "${config.xdg.userDirs.pictures}/Screenshots";
|
||||
DEV = "${config.home.homeDirectory}/Dev";
|
||||
WALLPAPERS = "${config.xdg.userDirs.pictures}/Wallpapers";
|
||||
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;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -8,6 +8,6 @@
|
||||
];
|
||||
|
||||
programs.zen-browser = {
|
||||
enable = true;
|
||||
enable = false;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
nixpkgs.overlays = [
|
||||
(import ./heybrochecklog.nix)
|
||||
|
||||
@@ -1,13 +1,9 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
./agenix.nix
|
||||
./boot.nix
|
||||
./desktop.nix
|
||||
./fileSystems.nix
|
||||
./fonts.nix
|
||||
./network.nix
|
||||
./packages.nix
|
||||
./security.nix
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
@@ -8,7 +9,10 @@
|
||||
];
|
||||
|
||||
programs = {
|
||||
niri.enable = true;
|
||||
niri = {
|
||||
enable = true;
|
||||
package = pkgs.niri-unstable;
|
||||
};
|
||||
uwsm = {
|
||||
enable = true;
|
||||
waylandCompositors = {
|
||||
@@ -20,6 +24,12 @@
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = [ pkgs.xwayland-satellite-unstable ];
|
||||
|
||||
nixpkgs.overlays = [
|
||||
inputs.niri.overlays.niri
|
||||
];
|
||||
|
||||
services.displayManager = {
|
||||
gdm = {
|
||||
enable = true;
|
||||
|
||||
@@ -81,6 +81,10 @@
|
||||
|
||||
# Enable thermald (only necessary for Intel CPUs)
|
||||
thermald.enable = true;
|
||||
|
||||
fwupd.enable = true;
|
||||
|
||||
fprintd.enable = true;
|
||||
};
|
||||
|
||||
powerManagement = {
|
||||
|
||||
Reference in New Issue
Block a user