terminal: Split out
This commit is contained in:
parent
fbde2f5028
commit
1dbfd6cf88
|
@ -16,6 +16,7 @@ in
|
||||||
./qutebrowser.nix
|
./qutebrowser.nix
|
||||||
./redness
|
./redness
|
||||||
./screenshots
|
./screenshots
|
||||||
|
./terminal
|
||||||
];
|
];
|
||||||
config = lib.mkIf config.frogeye.desktop.xorg {
|
config = lib.mkIf config.frogeye.desktop.xorg {
|
||||||
xsession = {
|
xsession = {
|
||||||
|
@ -32,81 +33,10 @@ in
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
# Terminal
|
# Terminal
|
||||||
alacritty = {
|
|
||||||
# TODO Emojis. Or maybe they work on NixOS?
|
|
||||||
# Arch (working) shows this with alacritty -vvv:
|
|
||||||
# [TRACE] [crossfont] Got font path="/usr/share/fonts/twemoji/twemoji.ttf", index=0
|
|
||||||
# [DEBUG] [crossfont] Loaded Face Face { ft_face: Font Face: Regular, load_flags: MONOCHROME | TARGET_MONO | COLOR, render_mode: "Mono", lcd_filter: 1 }
|
|
||||||
# Nix (not working) shows this:
|
|
||||||
# [TRACE] [crossfont] Got font path="/nix/store/872g3w9vcr5nh93r0m83a3yzmpvd2qrj-home-manager-path/share/fonts/truetype/TwitterColorEmoji-SVGinOT.ttf", index=0
|
|
||||||
# [DEBUG] [crossfont] Loaded Face Face { ft_face: Font Face: Regular, load_flags: TARGET_LIGHT | COLOR, render_mode: "Lcd", lcd_filter: 1 }
|
|
||||||
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
bell = {
|
|
||||||
animation = "EaseOutExpo";
|
|
||||||
color = "#000000";
|
|
||||||
command = { program = "${pkgs.sox}/bin/play"; args = [ "-n" "synth" "sine" "C5" "sine" "E4" "remix" "1-2" "fade" "0.1" "0.2" "0.1" ]; };
|
|
||||||
duration = 100;
|
|
||||||
};
|
|
||||||
cursor = { vi_mode_style = "Underline"; };
|
|
||||||
env = {
|
|
||||||
WINIT_X11_SCALE_FACTOR = "1";
|
|
||||||
# Prevents Alacritty from resizing from one monitor to another.
|
|
||||||
# Might cause issue on HiDPI screens but we'll get there when we get there
|
|
||||||
};
|
|
||||||
hints = {
|
|
||||||
enabled = [
|
|
||||||
{
|
|
||||||
binding = { mods = "Control|Alt"; key = "F"; };
|
|
||||||
command = "${pkgs.xdg-utils}/bin/xdg-open";
|
|
||||||
mouse = { enabled = true; mods = "Control"; };
|
|
||||||
post_processing = true;
|
|
||||||
regex = "(mailto:|gemini:|gopher:|https:|http:|news:|file:|git:|ssh:|ftp:)[^\\u0000-\\u001F\\u007F-\\u009F<>\"\\\\s{-}\\\\^⟨⟩`]+";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
key_bindings = [
|
|
||||||
{ mode = "~Search"; mods = "Alt|Control"; key = "Space"; action = "ToggleViMode"; }
|
|
||||||
{ mode = "Vi|~Search"; mods = "Control"; key = "K"; action = "ScrollHalfPageUp"; }
|
|
||||||
{ mode = "Vi|~Search"; mods = "Control"; key = "J"; action = "ScrollHalfPageDown"; }
|
|
||||||
{ mode = "~Vi"; mods = "Control|Alt"; key = "V"; action = "Paste"; }
|
|
||||||
{ mods = "Control|Alt"; key = "C"; action = "Copy"; }
|
|
||||||
{ mode = "~Search"; mods = "Control|Alt"; key = "F"; action = "SearchForward"; }
|
|
||||||
{ mode = "~Search"; mods = "Control|Alt"; key = "B"; action = "SearchBackward"; }
|
|
||||||
{ mode = "Vi|~Search"; mods = "Control|Alt"; key = "C"; action = "ClearSelection"; }
|
|
||||||
];
|
|
||||||
window = {
|
|
||||||
dynamic_padding = false;
|
|
||||||
dynamic_title = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
bash.shellAliases = {
|
bash.shellAliases = {
|
||||||
x = "startx ${config.home.homeDirectory}/${config.xsession.scriptPath}; logout";
|
x = "startx ${config.home.homeDirectory}/${config.xsession.scriptPath}; logout";
|
||||||
lmms = "lmms --config ${config.xdg.configHome}/lmmsrc.xml";
|
lmms = "lmms --config ${config.xdg.configHome}/lmmsrc.xml";
|
||||||
};
|
};
|
||||||
# Backup terminal
|
|
||||||
urxvt = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.rxvt-unicode-emoji;
|
|
||||||
scroll = {
|
|
||||||
bar.enable = false;
|
|
||||||
};
|
|
||||||
iso14755 = false; # Disable Ctrl+Shift default bindings
|
|
||||||
keybindings = {
|
|
||||||
"Shift-Control-C" = "eval:selection_to_clipboard";
|
|
||||||
"Shift-Control-V" = "eval:paste_clipboard";
|
|
||||||
# TODO Not sure resizing works, Nix doesn't have the package (urxvt-resize-font-git on Arch)
|
|
||||||
"Control-KP_Subtract" = "resize-font:smaller";
|
|
||||||
"Control-KP_Add" = "resize-font:bigger";
|
|
||||||
};
|
|
||||||
extraConfig = {
|
|
||||||
"letterSpace" = 0;
|
|
||||||
"perl-ext-common" = "resize-font,bell-command,readline,selection";
|
|
||||||
"bell-command" = "${pkgs.sox}/bin/play -n synth sine C5 sine E4 remix 1-2 fade 0.1 0.2 0.1 &> /dev/null";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
rofi = {
|
rofi = {
|
||||||
# TODO This theme template, that was used for Arch, looks much better:
|
# TODO This theme template, that was used for Arch, looks much better:
|
||||||
# https://gitlab.com/jordiorlando/base16-rofi/-/blob/master/templates/default.mustache
|
# https://gitlab.com/jordiorlando/base16-rofi/-/blob/master/templates/default.mustache
|
||||||
|
@ -152,15 +82,6 @@ in
|
||||||
templates = null;
|
templates = null;
|
||||||
videos = "${config.home.homeDirectory}/Vidéos";
|
videos = "${config.home.homeDirectory}/Vidéos";
|
||||||
};
|
};
|
||||||
configFile = {
|
|
||||||
"rofimoji.rc" = {
|
|
||||||
text = ''
|
|
||||||
skin-tone = neutral
|
|
||||||
files = [emojis, math]
|
|
||||||
action = clipboard
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
services = {
|
services = {
|
||||||
blueman-applet.enable = true;
|
blueman-applet.enable = true;
|
||||||
|
@ -225,9 +146,6 @@ in
|
||||||
# browsers
|
# browsers
|
||||||
firefox
|
firefox
|
||||||
|
|
||||||
# fonts
|
|
||||||
dejavu_fonts
|
|
||||||
twemoji-color-font
|
|
||||||
gnome.gedit
|
gnome.gedit
|
||||||
feh
|
feh
|
||||||
zbar
|
zbar
|
||||||
|
@ -236,19 +154,16 @@ in
|
||||||
python3Packages.magic
|
python3Packages.magic
|
||||||
|
|
||||||
# x11-exclusive
|
# x11-exclusive
|
||||||
numlockx
|
|
||||||
simplescreenrecorder
|
simplescreenrecorder
|
||||||
trayer
|
trayer
|
||||||
xclip
|
xclip
|
||||||
keynav
|
keynav
|
||||||
xorg.xinit
|
xorg.xinit
|
||||||
# TODO Make this clean. Service?
|
|
||||||
|
|
||||||
# organisation
|
# organisation
|
||||||
thunderbird
|
thunderbird
|
||||||
];
|
];
|
||||||
sessionVariables = {
|
sessionVariables = {
|
||||||
RXVT_SOCKET = "${config.xdg.stateHome}/urxvtd"; # Used to want -$HOME suffix, hopefullt this isn't needed
|
|
||||||
# XAUTHORITY = "${config.xdg.configHome}/Xauthority"; # Disabled as this causes lock-ups with DMs
|
# XAUTHORITY = "${config.xdg.configHome}/Xauthority"; # Disabled as this causes lock-ups with DMs
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -39,6 +39,15 @@ in
|
||||||
{
|
{
|
||||||
config = lib.mkIf config.xsession.windowManager.i3.enable {
|
config = lib.mkIf config.xsession.windowManager.i3.enable {
|
||||||
stylix.targets.i3.enable = false;
|
stylix.targets.i3.enable = false;
|
||||||
|
xdg.configFile = {
|
||||||
|
"rofimoji.rc" = {
|
||||||
|
text = ''
|
||||||
|
skin-tone = neutral
|
||||||
|
files = [emojis, math]
|
||||||
|
action = clipboard
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
xsession.windowManager.i3.config = {
|
xsession.windowManager.i3.config = {
|
||||||
modifier = "Mod4";
|
modifier = "Mod4";
|
||||||
fonts = {
|
fonts = {
|
||||||
|
@ -72,12 +81,6 @@ in
|
||||||
"${mod}+d" = "${rofi} -modi run -show run";
|
"${mod}+d" = "${rofi} -modi run -show run";
|
||||||
"${mod}+Shift+d" = "${rofi} -modi drun -show drun";
|
"${mod}+Shift+d" = "${rofi} -modi drun -show drun";
|
||||||
# Start Applications
|
# Start Applications
|
||||||
"${mod}+Return" = "exec ${
|
|
||||||
pkgs.writeShellScript "terminal" "${config.programs.alacritty.package}/bin/alacritty msg create-window -e zsh || exec ${config.programs.alacritty.package}/bin/alacritty -e zsh"
|
|
||||||
# -e zsh is for systems where I can't configure my user's shell
|
|
||||||
# TODO Is a shell script even required?
|
|
||||||
}";
|
|
||||||
"${mod}+Shift+Return" = "exec ${config.programs.urxvt.package}/bin/urxvt";
|
|
||||||
"${mod}+p" = "exec ${pkgs.xfce.thunar}/bin/thunar";
|
"${mod}+p" = "exec ${pkgs.xfce.thunar}/bin/thunar";
|
||||||
# Misc
|
# Misc
|
||||||
"${mod}+F10" = "exec ${ pkgs.writeShellScript "show-keyboard-layout"
|
"${mod}+F10" = "exec ${ pkgs.writeShellScript "show-keyboard-layout"
|
||||||
|
|
90
hm/desktop/terminal/default.nix
Normal file
90
hm/desktop/terminal/default.nix
Normal file
|
@ -0,0 +1,90 @@
|
||||||
|
{ pkgs, lib, config, ... }:
|
||||||
|
let
|
||||||
|
mod = config.xsession.windowManager.i3.config.modifier;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
config = lib.mkIf config.frogeye.desktop.xorg {
|
||||||
|
home.sessionVariables = {
|
||||||
|
RXVT_SOCKET = "${config.xdg.stateHome}/urxvtd";
|
||||||
|
# We don't use urxvt deamon mode as we use it as a backup, but just in case, this helps keep it out of the home directory.
|
||||||
|
};
|
||||||
|
programs = {
|
||||||
|
alacritty = {
|
||||||
|
# TODO Emojis
|
||||||
|
# Arch (working) shows this with alacritty -vvv:
|
||||||
|
# [TRACE] [crossfont] Got font path="/usr/share/fonts/twemoji/twemoji.ttf", index=0
|
||||||
|
# [DEBUG] [crossfont] Loaded Face Face { ft_face: Font Face: Regular, load_flags: MONOCHROME | TARGET_MONO | COLOR, render_mode: "Mono", lcd_filter: 1 }
|
||||||
|
# Nix (not working) shows this:
|
||||||
|
# [TRACE] [crossfont] Got font path="/nix/store/872g3w9vcr5nh93r0m83a3yzmpvd2qrj-home-manager-path/share/fonts/truetype/TwitterColorEmoji-SVGinOT.ttf", index=0
|
||||||
|
# [DEBUG] [crossfont] Loaded Face Face { ft_face: Font Face: Regular, load_flags: TARGET_LIGHT | COLOR, render_mode: "Lcd", lcd_filter: 1 }
|
||||||
|
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
bell = {
|
||||||
|
animation = "EaseOutExpo";
|
||||||
|
color = "#000000";
|
||||||
|
command = { program = "${pkgs.sox}/bin/play"; args = [ "-n" "synth" "sine" "C5" "sine" "E4" "remix" "1-2" "fade" "0.1" "0.2" "0.1" ]; };
|
||||||
|
duration = 100;
|
||||||
|
};
|
||||||
|
cursor = { vi_mode_style = "Underline"; };
|
||||||
|
env = {
|
||||||
|
WINIT_X11_SCALE_FACTOR = "1";
|
||||||
|
# Prevents Alacritty from resizing from one monitor to another.
|
||||||
|
# Might cause issue on HiDPI screens but we'll get there when we get there
|
||||||
|
};
|
||||||
|
hints = {
|
||||||
|
enabled = [
|
||||||
|
{
|
||||||
|
binding = { mods = "Control|Alt"; key = "F"; };
|
||||||
|
command = "${pkgs.xdg-utils}/bin/xdg-open";
|
||||||
|
mouse = { enabled = true; mods = "Control"; };
|
||||||
|
post_processing = true;
|
||||||
|
regex = "(mailto:|gemini:|gopher:|https:|http:|news:|file:|git:|ssh:|ftp:)[^\\u0000-\\u001F\\u007F-\\u009F<>\"\\\\s{-}\\\\^⟨⟩`]+";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
key_bindings = [
|
||||||
|
{ mode = "~Search"; mods = "Alt|Control"; key = "Space"; action = "ToggleViMode"; }
|
||||||
|
{ mode = "Vi|~Search"; mods = "Control"; key = "K"; action = "ScrollHalfPageUp"; }
|
||||||
|
{ mode = "Vi|~Search"; mods = "Control"; key = "J"; action = "ScrollHalfPageDown"; }
|
||||||
|
{ mode = "~Vi"; mods = "Control|Alt"; key = "V"; action = "Paste"; }
|
||||||
|
{ mods = "Control|Alt"; key = "C"; action = "Copy"; }
|
||||||
|
{ mode = "~Search"; mods = "Control|Alt"; key = "F"; action = "SearchForward"; }
|
||||||
|
{ mode = "~Search"; mods = "Control|Alt"; key = "B"; action = "SearchBackward"; }
|
||||||
|
{ mode = "Vi|~Search"; mods = "Control|Alt"; key = "C"; action = "ClearSelection"; }
|
||||||
|
];
|
||||||
|
window = {
|
||||||
|
dynamic_padding = false;
|
||||||
|
dynamic_title = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
# Backup terminal
|
||||||
|
urxvt = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.rxvt-unicode-emoji;
|
||||||
|
scroll = {
|
||||||
|
bar.enable = false;
|
||||||
|
};
|
||||||
|
iso14755 = false; # Disable Ctrl+Shift default bindings
|
||||||
|
keybindings = {
|
||||||
|
"Shift-Control-C" = "eval:selection_to_clipboard";
|
||||||
|
"Shift-Control-V" = "eval:paste_clipboard";
|
||||||
|
# TODO Not sure resizing works, Nix doesn't have the package (urxvt-resize-font-git on Arch)
|
||||||
|
"Control-KP_Subtract" = "resize-font:smaller";
|
||||||
|
"Control-KP_Add" = "resize-font:bigger";
|
||||||
|
};
|
||||||
|
extraConfig = {
|
||||||
|
"letterSpace" = 0;
|
||||||
|
"perl-ext-common" = "resize-font,bell-command,readline,selection";
|
||||||
|
"bell-command" = "${pkgs.sox}/bin/play -n synth sine C5 sine E4 remix 1-2 fade 0.1 0.2 0.1 &> /dev/null";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
xsession.windowManager.i3.config.keybindings = {
|
||||||
|
"${mod}+Return" = "exec ${config.programs.alacritty.package}/bin/alacritty msg create-window -e zsh || exec ${config.programs.alacritty.package}/bin/alacritty -e zsh";
|
||||||
|
# -e zsh is for systems where I can't configure my user's shell
|
||||||
|
"${mod}+Shift+Return" = "exec ${config.programs.urxvt.package}/bin/urxvt";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in a new issue