terminal: foot --> ghostty

This commit is contained in:
ooks-io 2025-01-21 15:35:02 +11:00
parent 512774da02
commit 4ffecbac0c
7 changed files with 89 additions and 17 deletions

View file

@ -22,7 +22,7 @@
profiles = ["creative" "virtualization" "gaming" "media" "communication" "productivity"]; profiles = ["creative" "virtualization" "gaming" "media" "communication" "productivity"];
default = { default = {
browser = "firefox"; browser = "firefox";
terminal = "foot"; terminal = "ghostty";
}; };
}; };
console = { console = {

View file

@ -13,6 +13,8 @@ in {
browser = mkBind "No browser is enabled"; browser = mkBind "No browser is enabled";
terminal = mkBind "No terminal is enabled"; terminal = mkBind "No terminal is enabled";
terminalLaunch = mkBind "Failed to launch tui"; terminalLaunch = mkBind "Failed to launch tui";
terminalDropdown = mkBind "Terminal Dropdown not enabled";
btop = mkBind "Btop binding not set";
fileManager = mkBind "No file manager is enabled."; fileManager = mkBind "No file manager is enabled.";
notes = mkBind "No Notes app is enabled"; notes = mkBind "No Notes app is enabled";
discord = mkBind "No Discord app is enabled"; discord = mkBind "No Discord app is enabled";

View file

@ -7,7 +7,7 @@ in {
# Program Launch # Program Launch
"SUPER, b, exec, ${binds.browser}" "SUPER, b, exec, ${binds.browser}"
"SUPER, return, exec, ${binds.terminal}" "SUPER, return, exec, ${binds.terminal}"
"SUPERSHIFT, return, exec, ${binds.terminal} --title foot-dropdown" "SUPERSHIFT, return, exec, ${binds.terminal} --title=dropdown"
"SUPER, e, exec, ${binds.terminalLaunch} $EDITOR" "SUPER, e, exec, ${binds.terminalLaunch} $EDITOR"
"SUPERSHIFT, P, exec, ${binds.password}" "SUPERSHIFT, P, exec, ${binds.password}"
"SUPERCTRL, P, exec, ${binds.quickpass}" "SUPERCTRL, P, exec, ${binds.quickpass}"
@ -15,7 +15,7 @@ in {
"SUPERSHIFT, e, exec, ${binds.fileManager}" "SUPERSHIFT, e, exec, ${binds.fileManager}"
"SUPERSHIFT, S, exec, ${binds.steam}" "SUPERSHIFT, S, exec, ${binds.steam}"
"SUPERSHIFT, n, exec, ${binds.notes}" "SUPERSHIFT, n, exec, ${binds.notes}"
"SUPER, escape, exec, ${binds.terminalLaunch} --title=BTOP btop" "SUPER, escape, exec, ${binds.btop}"
"SUPER CTRL, return, exec, ${binds.zellijMenu}" "SUPER CTRL, return, exec, ${binds.zellijMenu}"
"SUPER, delete, exec, ${binds.powerMenu}" "SUPER, delete, exec, ${binds.powerMenu}"
"SUPERSHIFT, F, exec, ${binds.factorio}" "SUPERSHIFT, F, exec, ${binds.factorio}"

View file

@ -58,7 +58,7 @@ in {
rules = ["center 1" "float" "size 50%"]; rules = ["center 1" "float" "size 50%"];
} }
{ {
matches = {initialTitle = "foot-dropdown";}; matches = {initialTitle = "dropdown";};
rules = [ rules = [
"monitor 0" "monitor 0"
"animation slide down" "animation slide down"

View file

@ -1,6 +1,6 @@
{ {
imports = [ imports = [
./foot.nix ./foot.nix
# ./ghostty.nix ./ghostty.nix
]; ];
} }

View file

@ -1,14 +1,83 @@
{ {
inputs, lib,
inputs', hozen,
osConfig,
config,
... ...
}: { }: let
imports = [ inherit (lib) mkIf mkMerge;
inputs.ghostty-hm.homeModules.default inherit (hozen) color;
]; inherit (osConfig.ooknet.host) admin;
inherit (osConfig.ooknet.appearance.fonts) monospace;
inherit (osConfig.ooknet.workstation) default;
cfg = osConfig.ooknet.workstation.programs.ghostty;
in {
config = mkMerge [
(mkIf (cfg.enable || default.terminal == "ghostty") {
programs.ghostty = { programs.ghostty = {
enable = true; enable = true;
package = inputs'.ghostty.packages.default; enableFishIntegration = admin.shell == "fish";
settings = {
# defined below
theme = "hozen";
# font config
font-size = monospace.size;
font-family = monospace.family;
font-family-bold = "${monospace.family} Bold";
font-family-italic = "${monospace.family} Italic";
font-family-bold-italic = "${monospace.family} Bold Italic";
# padding
window-padding-x = 9;
window-padding-y = 9;
# box drawing glyph thickness
adjust-box-thickness = -10; # why where they so thick?
# disable the window decorations
gtk-titlebar = false;
window-decoration = false;
# disable close terminal prompt
confirm-close-surface = false;
}; };
themes.hozen = {
background = "${color.base00}";
foreground = "${color.base05}";
palette = [
"0=#${color.base00}" # black
"1=#${color.base08}" # red
"2=#${color.base0B}" # green
"3=#${color.base0A}" # yellow
"4=#${color.base0D}" # blue
"5=#${color.base0E}" # magenta
"6=#${color.base0C}" # cyan
"7=#${color.base05}" # white
"8=#${color.base03}" # bright black
"9=#${color.base08}" # bright red
"10=#${color.base0B}" # bright green
"11=#${color.base0A}" # bright yellow
"12=#${color.base0D}" # bright blue
"13=#${color.base0E}" # bright magenta
"14=#${color.base0C}" # bright cyan
"15=#${color.base07}" # bright white
];
};
};
})
(mkIf (default.terminal == "ghostty") {
home.sessionVariables = {
TERMINAL = "ghostty";
TERM = "ghostty";
};
ooknet.binds = {
terminal = "ghostty";
terminalLaunch = "ghostty -e";
terminalDropdown = "ghostty --title=dropdown";
btop = mkIf config.programs.btop.enable "ghostty --title=BTOP -e btop";
};
})
];
} }

View file

@ -21,13 +21,14 @@ in {
default = "firefox"; default = "firefox";
}; };
terminal = mkOption { terminal = mkOption {
type = enum ["foot"]; type = enum ["foot" "ghostty"];
default = "foot"; default = "ghostty";
}; };
}; };
programs = { programs = {
firefox.enable = mkEnableOption ""; firefox.enable = mkEnableOption "";
foot.enable = mkEnableOption ""; foot.enable = mkEnableOption "";
ghostty.enable = mkEnableOption "";
}; };
}; };
} }