209 lines
6 KiB
Nix
209 lines
6 KiB
Nix
{
|
|
pkgs,
|
|
lib,
|
|
...
|
|
}:
|
|
let
|
|
caelestiaDot = pkgs.fetchFromGitHub {
|
|
owner = "caelestia-dots";
|
|
repo = "caelestia";
|
|
rev = "main";
|
|
sha256 = "sha256-pRLcbh81iBp9fH3Zq7HrNtAfDD46ErGZ3wID8Q65Wlg=";
|
|
};
|
|
in
|
|
{
|
|
home.packages = with pkgs; [
|
|
cliphist
|
|
inotify-tools
|
|
app2unit
|
|
wireplumber
|
|
trash-cli
|
|
foot
|
|
fastfetch
|
|
jq
|
|
socat
|
|
imagemagick
|
|
papirus-icon-theme
|
|
nerd-fonts.jetbrains-mono
|
|
fuzzel
|
|
];
|
|
|
|
xdg.configFile = {
|
|
"hypr/hyprland".source = "${caelestiaDot}/hypr/hyprland";
|
|
"hypr/scheme" = {
|
|
source = "${caelestiaDot}/hypr/scheme";
|
|
recursive = true;
|
|
};
|
|
"hypr/scripts" = {
|
|
source = "${caelestiaDot}/hypr/scripts";
|
|
executable = true;
|
|
};
|
|
"hypr/variables.conf".source = "${caelestiaDot}/hypr/variables.conf";
|
|
};
|
|
|
|
wayland.windowManager.hyprland = {
|
|
settings = {
|
|
"$hypr" = "~/.config/hypr";
|
|
"$hl" = "$hypr/hyprland";
|
|
"$cConf" = "~/.config/caelestia";
|
|
# ### Hyprland ###
|
|
# Apps
|
|
"$terminal" = "ghostty";
|
|
"$browser" = "nvidia-offload zen";
|
|
"$editor" = "nvim";
|
|
"$fileExplorer" = "yazi";
|
|
|
|
# Touchpad
|
|
"$touchpadDisableTyping" = "true";
|
|
"$touchpadScrollFactor" = "0.3";
|
|
"$workSpaceSwipeFingers" = "4";
|
|
|
|
# Blur
|
|
"$blurEnabled" = "true";
|
|
"$blurSpecialWs" = "false";
|
|
"$blurPopups" = "true";
|
|
"$blurInputMethods" = "true";
|
|
"$blurSize" = "8";
|
|
"$blurPasses" = "2";
|
|
"$blurXray" = "false";
|
|
|
|
# Shadow
|
|
"$shadowEnabled" = "true";
|
|
"$shadowRange" = "20";
|
|
"$shadowRenderPower" = "3";
|
|
"$shadowColour" = "rgba($surfaced4)";
|
|
|
|
# Gaps
|
|
"$workspaceGaps" = "20";
|
|
"$windowGapsIn" = "10";
|
|
"$windowGapsOut" = "10";
|
|
"$singleWindowGapsOut" = "10";
|
|
|
|
# Window styling
|
|
"$windowOpacity" = "0.95";
|
|
"$windowRounding" = "10";
|
|
|
|
"$windowBorderSize" = "3";
|
|
"$activeWindowBorderColour" = "rgba($primarye6)";
|
|
"$inactiveWindowBorderColour" = "rgba($onSurfaceVariant11)";
|
|
|
|
# Misc
|
|
"$volumeStep" = "5 # In percent";
|
|
|
|
"$kbGoToWs" = "SUPER";
|
|
"$wsaction" = "~/.config/hypr/scripts/wsaction.fish";
|
|
|
|
source = [
|
|
"$hypr/scheme/current.conf"
|
|
"$hl/env.conf"
|
|
"$hl/input.conf"
|
|
"$hl/misc.conf"
|
|
"$hl/animations.conf"
|
|
"$hl/decoration.conf"
|
|
"$hl/group.conf"
|
|
"$hl/rules.conf"
|
|
"${pkgs.writeText "keybinds.conf" ''
|
|
exec = hyprctl dispatch submap global
|
|
submap = global
|
|
|
|
# ## Shell keybinds
|
|
# Launcher
|
|
bind = Super+CTRL, K, global, caelestia:showall
|
|
bindi = Super, Super_L, global, caelestia:launcher
|
|
bindin = Super, catchall, global, caelestia:launcherInterrupt
|
|
bindin = Super, mouse:272, global, caelestia:launcherInterrupt
|
|
bindin = Super, mouse:273, global, caelestia:launcherInterrupt
|
|
bindin = Super, mouse:274, global, caelestia:launcherInterrupt
|
|
bindin = Super, mouse:275, global, caelestia:launcherInterrupt
|
|
bindin = Super, mouse:276, global, caelestia:launcherInterrupt
|
|
bindin = Super, mouse:277, global, caelestia:launcherInterrupt
|
|
bindin = Super, mouse_up, global, caelestia:launcherInterrupt
|
|
bindin = Super, mouse_down, global, caelestia:launcherInterrupt
|
|
bind = Super, DELETE, global, caelestia:lock
|
|
bind = Super, Q, killactive,
|
|
bind = Super , RETURN, exec, app2unit -- $terminal
|
|
bind = Super, F, exec, app2unit -- $browser
|
|
bind = Super, V, togglefloating,
|
|
bind = Super, P, pseudo
|
|
bind = Super, S, togglesplit
|
|
bindl = , XF86AudioPlay, global, caelestia:mediaToggle
|
|
bindl = , XF86AudioPause, global, caelestia:mediaToggle
|
|
bindl = , XF86AudioNext, global, caelestia:mediaNext
|
|
bindl = , XF86AudioPrev, global, caelestia:mediaPrev
|
|
bindl = , XF86AudioStop, global, caelestia:mediaStop
|
|
|
|
bind = Super+SHIFT, s, global, caelestia:screenshot
|
|
bind = CTRL SHIFT, s, exec, hyprshot -m window
|
|
bind = CTRL SHIFT Super, s, exec, hyprshot -m output
|
|
bind = CTRL ALT, s, exec, hyprshot -m active -m window
|
|
|
|
bindl = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
|
bindle = , XF86AudioRaiseVolume, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0; wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ $volumeStep%+
|
|
bindle = , XF86AudioLowerVolume, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0; wpctl set-volume @DEFAULT_AUDIO_SINK@ $volumeStep%-
|
|
|
|
bind = Super, Period, exec, pkill fuzzel || caelestia emoji -p
|
|
bind = Super+Shift, V, exec, pkill fuzzel || caelestia clipboard
|
|
''}"
|
|
];
|
|
|
|
bindm = [
|
|
# Move/resize windows with mainMod + LMB/RMB and dragging
|
|
''SUPER, mouse:272, movewindow''
|
|
''SUPER, mouse:273, resizewindow''
|
|
];
|
|
|
|
exec = [
|
|
"cp -L --no-preserve=mode --update=none $hypr/scheme/default.conf $hypr/scheme/current.conf"
|
|
];
|
|
|
|
misc = {
|
|
vrr = 0;
|
|
vfr = true;
|
|
};
|
|
};
|
|
};
|
|
|
|
home.activation.writeConfigFile =
|
|
lib.hm.dag.entryAfter [ "writeBoundary" ]
|
|
# bash
|
|
''
|
|
configList=("btop" "fastfetch" "thunar")
|
|
|
|
for config in "''\${configList[@]}"; do
|
|
if [ ! -d "$XDG_CONFIG_HOME/$config" ]; then
|
|
install -Dm666 "${caelestiaDot}/$config" "$XDG_CONFIG_HOME/$config"
|
|
fi
|
|
done
|
|
'';
|
|
|
|
fonts.fontconfig.enable = true;
|
|
|
|
programs.caelestia = {
|
|
enable = true;
|
|
settings = { };
|
|
cli = {
|
|
enable = true;
|
|
settings = { };
|
|
};
|
|
};
|
|
|
|
gtk = {
|
|
enable = lib.mkDefault true;
|
|
iconTheme = {
|
|
name = lib.mkDefault "Papirus-Dark";
|
|
package = lib.mkDefault pkgs.papirus-icon-theme;
|
|
};
|
|
};
|
|
|
|
systemd.user.services.caelestia = {
|
|
Service = {
|
|
Environment = [
|
|
"QT_QPA_PLATFORMTHEME=gtk3"
|
|
];
|
|
};
|
|
};
|
|
|
|
services.swww.enable = lib.mkForce false;
|
|
programs.waybar.enable = lib.mkForce false;
|
|
services.swaync.enable = lib.mkForce false;
|
|
}
|