077d8f07e7
Introduce a `shell` variable in host variables and enable the Fish package. Make Bash configuration conditional on the selected shell and add Fish integration for programs such as fzf, starship, kitty, zoxide, and eza. Provide a full Fish module with aliases, functions, and plugin placeholders. Update Stylix to configure Fish, Starship, Fzf, Bat, Anki, Btop, Kitty, and Vesktop themes. Remove the large Emoji module and simplify a few Dconf settings. All changes collectively enable and style the Fish shell across the system.
156 lines
4.1 KiB
Nix
156 lines
4.1 KiB
Nix
{
|
|
host,
|
|
pkgs,
|
|
...
|
|
}: let
|
|
inherit (import ../../../hosts/${host}/variables.nix) extraMonitorSettings keyboardLayout;
|
|
in {
|
|
systemd.user.targets.hyprland-session.Unit.Wants = [
|
|
"xdg-desktop-autostart.target"
|
|
];
|
|
# Place Files Inside Home Directory
|
|
home.file = {
|
|
"Pictures/Wallpapers" = {
|
|
source = ../../../wallpapers;
|
|
recursive = true;
|
|
};
|
|
".face.icon".source = ./face.jpg;
|
|
".config/face.jpg".source = ./face.jpg;
|
|
};
|
|
wayland.windowManager.hyprland = {
|
|
enable = true;
|
|
package = pkgs.hyprland;
|
|
configType = "hyprlang"; # TODO: hyprlang => lua migration.
|
|
xwayland.enable = true;
|
|
systemd = {
|
|
enable = true;
|
|
enableXdgAutostart = true;
|
|
variables = ["--all"];
|
|
};
|
|
settings = {
|
|
input = {
|
|
kb_layout = "${keyboardLayout}";
|
|
kb_options = [
|
|
"grp:alt_caps_toggle"
|
|
"caps:super"
|
|
];
|
|
numlock_by_default = true;
|
|
repeat_delay = 300;
|
|
follow_mouse = 1;
|
|
float_switch_override_focus = 0;
|
|
sensitivity = 0;
|
|
touchpad = {
|
|
natural_scroll = true;
|
|
disable_while_typing = true;
|
|
scroll_factor = 0.8;
|
|
};
|
|
};
|
|
|
|
gestures = {
|
|
# workspace_swipe = 1;
|
|
# workspace_swipe_fingers = 3;
|
|
workspace_swipe_distance = 500;
|
|
workspace_swipe_invert = 1;
|
|
workspace_swipe_min_speed_to_force = 30;
|
|
workspace_swipe_cancel_ratio = 0.5;
|
|
workspace_swipe_create_new = 1;
|
|
workspace_swipe_forever = 1;
|
|
};
|
|
|
|
general = {
|
|
layout = "dwindle";
|
|
gaps_in = 6;
|
|
gaps_out = 8;
|
|
border_size = 2;
|
|
resize_on_border = true;
|
|
# "col.active_border" = "rgb(${config.lib.stylix.colors.base08}) rgb(${config.lib.stylix.colors.base0C}) 45deg";
|
|
# "col.inactive_border" = "rgb(${config.lib.stylix.colors.base01})";
|
|
};
|
|
|
|
misc = {
|
|
layers_hog_keyboard_focus = true;
|
|
initial_workspace_tracking = 0;
|
|
mouse_move_enables_dpms = true;
|
|
key_press_enables_dpms = false;
|
|
disable_hyprland_logo = true;
|
|
disable_splash_rendering = true;
|
|
enable_swallow = true;
|
|
swallow_regex = "^(kitty)$";
|
|
vrr = 2; # Variable Refresh Rate Might need to set to 0 for NVIDIA/AQ_DRM_DEVICES
|
|
# Screen flashing to black momentarily or going black when app is fullscreen
|
|
# Try setting vrr to 0
|
|
|
|
# Application not responding (ANR) settings
|
|
enable_anr_dialog = true;
|
|
anr_missed_pings = 15;
|
|
};
|
|
|
|
dwindle = {
|
|
# pseudotile = true;
|
|
preserve_split = true;
|
|
force_split = 2;
|
|
};
|
|
|
|
decoration = {
|
|
rounding = 10;
|
|
rounding_power = 2;
|
|
blur = {
|
|
enabled = true;
|
|
size = 5;
|
|
passes = 3;
|
|
vibrancy = 0.1696;
|
|
ignore_opacity = false;
|
|
new_optimizations = true;
|
|
};
|
|
shadow = {
|
|
enabled = true;
|
|
range = 4;
|
|
render_power = 3;
|
|
# color = "rgba(1a1a1aee)";
|
|
};
|
|
};
|
|
|
|
ecosystem = {
|
|
no_donation_nag = true;
|
|
no_update_news = false;
|
|
};
|
|
|
|
cursor = {
|
|
sync_gsettings_theme = true;
|
|
no_hardware_cursors = 2; # change to 1 if want to disable
|
|
enable_hyprcursor = false;
|
|
warp_on_change_workspace = 2;
|
|
no_warps = true;
|
|
};
|
|
|
|
render = {
|
|
# Disabling as no longer supported
|
|
#explicit_sync = 1; # Change to 1 to disable
|
|
#explicit_sync_kms = 1;
|
|
direct_scanout = 0;
|
|
};
|
|
|
|
debug = {
|
|
vfr = true; # Variable Frame Rate
|
|
full_cm_proto = true;
|
|
};
|
|
|
|
master = {
|
|
new_status = "master";
|
|
new_on_top = 1;
|
|
mfact = 0.5;
|
|
};
|
|
|
|
# Ensure Xwayland windows render at integer scale; compositor scales them
|
|
xwayland.force_zero_scaling = true;
|
|
};
|
|
|
|
extraConfig = "
|
|
monitor=,preferred,auto,auto
|
|
monitor=Virtual-1,1920x1080@60,auto,1
|
|
${extraMonitorSettings}
|
|
layerrule = blur on, blur_popups on, ignore_alpha 0.5, match:namespace noctalia-background-\.*$
|
|
";
|
|
};
|
|
}
|