refactor: project repo changes

This commit is contained in:
Rasyidan Akbar F. 2025-10-21 13:10:18 +07:00
commit 1fbecfd579
11 changed files with 38 additions and 6 deletions

View file

@ -0,0 +1,8 @@
{ config, pkgs, lib, ... }: {
# Import shared cross-platform home configuration
imports = [
../../home/rsydn/base.nix
./programs/aerospace
./programs/ghostty.nix
];
}

View file

@ -0,0 +1,22 @@
{ pkgs, lib, ... }:
let
workspaceHelpers = import ./workspaces.nix { inherit lib; };
modes = import ./modes.nix {
inherit (workspaceHelpers) workspaceFocusBindings workspaceSendBindings;
};
userSettings = import ./user-settings.nix { modes = modes; };
in {
programs.aerospace = {
enable = true;
package = pkgs.aerospace;
launchd = {
enable = true;
keepAlive = true;
};
userSettings = userSettings;
};
}

View file

@ -0,0 +1,52 @@
{ workspaceFocusBindings, workspaceSendBindings }: {
main.binding = {
"alt-h" = "focus left";
"alt-j" = "focus down";
"alt-k" = "focus up";
"alt-l" = "focus right";
"alt-shift-h" = "move left";
"alt-shift-j" = "move down";
"alt-shift-k" = "move up";
"alt-shift-l" = "move right";
"alt-minus" = "resize smart -50";
"alt-equal" = "resize smart +50";
"alt-b" = "balance-sizes";
"alt-slash" = "layout tiles horizontal vertical";
"alt-comma" = "layout accordion horizontal vertical";
"alt-space" = "layout floating tiling";
"alt-enter" = ''exec-and-forget open -na "Ghostty"'';
"alt-shift-enter" = ''exec-and-forget open -na "iTerm.app"'';
"alt-backspace" = "close";
"alt-tab" = "workspace-back-and-forth";
"alt-shift-tab" = "move-workspace-to-monitor --wrap-around next";
"alt-r" = "mode resize";
"alt-shift-semicolon" = "mode service";
} // workspaceFocusBindings // workspaceSendBindings;
resize.binding = {
h = "resize width -100";
l = "resize width +100";
j = "resize height -100";
k = "resize height +100";
r = "balance-sizes";
enter = "mode main";
esc = "mode main";
};
service.binding = {
esc = [ "reload-config" "mode main" ];
r = [ "flatten-workspace-tree" "mode main" ];
f = [ "layout floating tiling" "mode main" ];
backspace = [ "close-all-windows-but-current" "mode main" ];
h = [ "join-with left" "mode main" ];
j = [ "join-with down" "mode main" ];
k = [ "join-with up" "mode main" ];
l = [ "join-with right" "mode main" ];
};
}

View file

@ -0,0 +1,25 @@
{ modes }: {
enable-normalization-flatten-containers = true;
enable-normalization-opposite-orientation-for-nested-containers = true;
default-root-container-layout = "tiles";
default-root-container-orientation = "auto";
key-mapping.preset = "qwerty";
gaps = {
inner = {
horizontal = 8;
vertical = 8;
};
outer = {
top = 12;
bottom = 12;
left = 12;
right = 12;
};
};
on-focused-monitor-changed = [ "move-mouse monitor-lazy-center" ];
on-focus-changed = [ "move-mouse window-lazy-center" ];
mode = modes;
}

View file

@ -0,0 +1,16 @@
{ lib }:
let
inherit (builtins) listToAttrs map toString;
workspaceNumbers = map toString (lib.range 1 9);
workspaceFocusBindings = listToAttrs (map (ws: {
name = "alt-${ws}";
value = "workspace ${ws}";
}) workspaceNumbers);
workspaceSendBindings = listToAttrs (map (ws: {
name = "alt-shift-${ws}";
value = "move-node-to-workspace ${ws}";
}) workspaceNumbers);
in { inherit workspaceNumbers workspaceFocusBindings workspaceSendBindings; }

View file

@ -0,0 +1,39 @@
{ config, ... }: {
programs.ghostty = {
enable = true;
package = null;
settings = {
theme = "dracula";
command =
"shell:${config.home.profileDirectory}/bin/tmux new-session -A -s ghostty";
keybind = [ "cmd+k=text:\\x01K" ];
};
themes.dracula = {
background = "282a36";
foreground = "f8f8f2";
cursor-color = "f8f8f2";
selection-background = "44475a";
selection-foreground = "f8f8f2";
palette = [
"0=#21222c"
"1=#ff5555"
"2=#50fa7b"
"3=#f1fa8c"
"4=#bd93f9"
"5=#ff79c6"
"6=#8be9fd"
"7=#f8f8f2"
"8=#6272a4"
"9=#ff6e6e"
"10=#69ff94"
"11=#ffffa5"
"12=#d6acff"
"13=#ff92df"
"14=#a4ffff"
"15=#ffffff"
];
};
};
}