mirror of
https://github.com/ryan4yin/nix-config.git
synced 2026-04-28 10:56:59 +02:00
feat: add alacritty
This commit is contained in:
@@ -16,6 +16,8 @@ My current terminal emulators are:
|
|||||||
2. foot: A fast, lightweight and minimalistic Wayland terminal emulator.
|
2. foot: A fast, lightweight and minimalistic Wayland terminal emulator.
|
||||||
1. foot only do the things a terminal emulator should do, no more, no less.
|
1. foot only do the things a terminal emulator should do, no more, no less.
|
||||||
1. It's really suitable for tiling window manager or zellij users!
|
1. It's really suitable for tiling window manager or zellij users!
|
||||||
|
3. alacritty: A cross-platform, GPU-accelerated terminal emulator.
|
||||||
|
1. alacritty is really fast, I use it as a backup terminal emulator on all my desktops.
|
||||||
|
|
||||||
## 'xterm-kitty': unknown terminal type when `ssh` into a remote host or `sudo xxx`
|
## 'xterm-kitty': unknown terminal type when `ssh` into a remote host or `sudo xxx`
|
||||||
|
|
||||||
|
|||||||
65
home/base/gui/terminal/alacritty/catppuccin-mocha.toml
Normal file
65
home/base/gui/terminal/alacritty/catppuccin-mocha.toml
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
[colors.primary]
|
||||||
|
background = "#1e1e2e"
|
||||||
|
foreground = "#cdd6f4"
|
||||||
|
dim_foreground = "#7f849c"
|
||||||
|
bright_foreground = "#cdd6f4"
|
||||||
|
|
||||||
|
[colors.cursor]
|
||||||
|
text = "#1e1e2e"
|
||||||
|
cursor = "#f5e0dc"
|
||||||
|
|
||||||
|
[colors.vi_mode_cursor]
|
||||||
|
text = "#1e1e2e"
|
||||||
|
cursor = "#b4befe"
|
||||||
|
|
||||||
|
[colors.search.matches]
|
||||||
|
foreground = "#1e1e2e"
|
||||||
|
background = "#a6adc8"
|
||||||
|
|
||||||
|
[colors.search.focused_match]
|
||||||
|
foreground = "#1e1e2e"
|
||||||
|
background = "#a6e3a1"
|
||||||
|
|
||||||
|
[colors.footer_bar]
|
||||||
|
foreground = "#1e1e2e"
|
||||||
|
background = "#a6adc8"
|
||||||
|
|
||||||
|
[colors.hints.start]
|
||||||
|
foreground = "#1e1e2e"
|
||||||
|
background = "#f9e2af"
|
||||||
|
|
||||||
|
[colors.hints.end]
|
||||||
|
foreground = "#1e1e2e"
|
||||||
|
background = "#a6adc8"
|
||||||
|
|
||||||
|
[colors.selection]
|
||||||
|
text = "#1e1e2e"
|
||||||
|
background = "#f5e0dc"
|
||||||
|
|
||||||
|
[colors.normal]
|
||||||
|
black = "#45475a"
|
||||||
|
red = "#f38ba8"
|
||||||
|
green = "#a6e3a1"
|
||||||
|
yellow = "#f9e2af"
|
||||||
|
blue = "#89b4fa"
|
||||||
|
magenta = "#f5c2e7"
|
||||||
|
cyan = "#94e2d5"
|
||||||
|
white = "#bac2de"
|
||||||
|
|
||||||
|
[colors.bright]
|
||||||
|
black = "#585b70"
|
||||||
|
red = "#f38ba8"
|
||||||
|
green = "#a6e3a1"
|
||||||
|
yellow = "#f9e2af"
|
||||||
|
blue = "#89b4fa"
|
||||||
|
magenta = "#f5c2e7"
|
||||||
|
cyan = "#94e2d5"
|
||||||
|
white = "#a6adc8"
|
||||||
|
|
||||||
|
[[colors.indexed_colors]]
|
||||||
|
index = 16
|
||||||
|
color = "#fab387"
|
||||||
|
|
||||||
|
[[colors.indexed_colors]]
|
||||||
|
index = 17
|
||||||
|
color = "#f5e0dc"
|
||||||
61
home/base/gui/terminal/alacritty/default.nix
Normal file
61
home/base/gui/terminal/alacritty/default.nix
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
{pkgs, ...}:
|
||||||
|
###########################################################
|
||||||
|
#
|
||||||
|
# Alacritty Configuration
|
||||||
|
#
|
||||||
|
# Useful Hot Keys for macOS:
|
||||||
|
# 1. Multi-Window: `command + N`
|
||||||
|
# 2. Increase Font Size: `command + =` | `command + +`
|
||||||
|
# 3. Decrease Font Size: `command + -` | `command + _`
|
||||||
|
# 4. Search Text: `command + F`
|
||||||
|
# 5. And Other common shortcuts such as Copy, Paste, Cursor Move, etc.
|
||||||
|
#
|
||||||
|
# Useful Hot Keys for Linux:
|
||||||
|
# 1. Increase Font Size: `ctrl + shift + =` | `ctrl + shift + +`
|
||||||
|
# 2. Decrease Font Size: `ctrl + shift + -` | `ctrl + shift + _`
|
||||||
|
# 3. Search Text: `ctrl + shift + N`
|
||||||
|
# 4. And Other common shortcuts such as Copy, Paste, Cursor Move, etc.
|
||||||
|
#
|
||||||
|
# Note: Alacritty do not have support for Tabs, and any graphic protocol.
|
||||||
|
#
|
||||||
|
###########################################################
|
||||||
|
{
|
||||||
|
programs.alacritty = {
|
||||||
|
enable = true;
|
||||||
|
# https://alacritty.org/config-alacritty.html
|
||||||
|
settings = {
|
||||||
|
general.import = [
|
||||||
|
./catppuccin-mocha.toml
|
||||||
|
];
|
||||||
|
window = {
|
||||||
|
opacity = 0.93;
|
||||||
|
startup_mode = "Maximized"; # Maximized window
|
||||||
|
dynamic_title = true;
|
||||||
|
option_as_alt = "Both"; # Option key acts as Alt on macOS
|
||||||
|
};
|
||||||
|
scrolling = {
|
||||||
|
history = 10000;
|
||||||
|
};
|
||||||
|
font = {
|
||||||
|
bold = {family = "JetBrainsMono Nerd Font";};
|
||||||
|
italic = {family = "JetBrainsMono Nerd Font";};
|
||||||
|
normal = {family = "JetBrainsMono Nerd Font";};
|
||||||
|
bold_italic = {family = "JetBrainsMono Nerd Font";};
|
||||||
|
size =
|
||||||
|
if pkgs.stdenv.isDarwin
|
||||||
|
then 14
|
||||||
|
else 13;
|
||||||
|
};
|
||||||
|
terminal = {
|
||||||
|
# Spawn a nushell in login mode via `bash`
|
||||||
|
shell = {
|
||||||
|
program = "${pkgs.bash}/bin/bash";
|
||||||
|
args = ["--login" "-c" "nu --login --interactive"];
|
||||||
|
};
|
||||||
|
# Controls the ability to write to the system clipboard with the OSC 52 escape sequence.
|
||||||
|
# It's used by zellij to copy text to the system clipboard.
|
||||||
|
osc52 = "CopyPaste";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
font = "JetBrainsMono Nerd Font:size=13";
|
font = "JetBrainsMono Nerd Font:size=13";
|
||||||
dpi-aware = "yes";
|
dpi-aware = "yes";
|
||||||
|
|
||||||
# Spawn a nushell in login mode via `bash`
|
# Spawn a nushell in login mode via `bash`
|
||||||
shell = "${pkgs.bash}/bin/bash --login -c 'nu --login --interactive'";
|
shell = "${pkgs.bash}/bin/bash --login -c 'nu --login --interactive'";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
else 13;
|
else 13;
|
||||||
};
|
};
|
||||||
|
|
||||||
# consistent with wezterm
|
# consistent with other terminal emulators
|
||||||
keybindings = {
|
keybindings = {
|
||||||
"ctrl+shift+m" = "toggle_maximized";
|
"ctrl+shift+m" = "toggle_maximized";
|
||||||
"ctrl+shift+f" = "show_scrollback"; # search in the current window
|
"ctrl+shift+f" = "show_scrollback"; # search in the current window
|
||||||
|
|||||||
@@ -200,8 +200,8 @@ if.app-id = 'net.kovidgoyal.kitty'
|
|||||||
run = 'move-node-to-workspace 1Kitty'
|
run = 'move-node-to-workspace 1Kitty'
|
||||||
|
|
||||||
[[on-window-detected]]
|
[[on-window-detected]]
|
||||||
if.app-id = 'com.github.wez.wezterm'
|
if.app-id = 'org.alacritty'
|
||||||
run = 'move-node-to-workspace 2Wez'
|
run = 'move-node-to-workspace 2Alacritty'
|
||||||
|
|
||||||
[[on-window-detected]]
|
[[on-window-detected]]
|
||||||
if.app-id = 'com.tencent.WeWorkMac'
|
if.app-id = 'com.tencent.WeWorkMac'
|
||||||
@@ -246,7 +246,7 @@ run = 'layout floating'
|
|||||||
|
|
||||||
[workspace-to-monitor-force-assignment]
|
[workspace-to-monitor-force-assignment]
|
||||||
1Kitty = 'secondary' # Non-main monitor in case when there are only two monitors'
|
1Kitty = 'secondary' # Non-main monitor in case when there are only two monitors'
|
||||||
2Wez = 'main' # "Main" monitor ("main" as in System Settings → Displays → Use as)
|
2Alacritty = 'main' # "Main" monitor ("main" as in System Settings → Displays → Use as)
|
||||||
3Work = 'main'
|
3Work = 'main'
|
||||||
4Firefox = 'main'
|
4Firefox = 'main'
|
||||||
5Chrome = 'secondary'
|
5Chrome = 'secondary'
|
||||||
|
|||||||
@@ -155,8 +155,6 @@ in {
|
|||||||
"visual-studio-code"
|
"visual-studio-code"
|
||||||
"zed" # zed editor
|
"zed" # zed editor
|
||||||
"aerospace" # an i3-like tiling window manager for macOS
|
"aerospace" # an i3-like tiling window manager for macOS
|
||||||
# "wezterm"
|
|
||||||
# "tor-browser"
|
|
||||||
|
|
||||||
# https://joplinapp.org/help/
|
# https://joplinapp.org/help/
|
||||||
# "joplin" # note taking app
|
# "joplin" # note taking app
|
||||||
|
|||||||
@@ -6,6 +6,6 @@
|
|||||||
# set user's default shell back to zsh
|
# set user's default shell back to zsh
|
||||||
# `chsh -s /bin/zsh`
|
# `chsh -s /bin/zsh`
|
||||||
# DO NOT change the system's default shell to nushell! it will break some apps!
|
# DO NOT change the system's default shell to nushell! it will break some apps!
|
||||||
# It's better to change only kitty/wezterm's shell to nushell!
|
# It's better to change only kitty/wezterm & other terminal emulator's shell to nushell!
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
# set user's default shell system-wide
|
# set user's default shell system-wide
|
||||||
users.defaultUserShell = pkgs.bashInteractive;
|
users.defaultUserShell = pkgs.bashInteractive;
|
||||||
|
|
||||||
# fix for `sudo xxx` in kitty/wezterm and other modern terminal emulators
|
# fix for `sudo xxx` in kitty/wezterm/foot and other modern terminal emulators
|
||||||
security.sudo.keepTerminfo = true;
|
security.sudo.keepTerminfo = true;
|
||||||
|
|
||||||
environment.variables = {
|
environment.variables = {
|
||||||
|
|||||||
Reference in New Issue
Block a user