add caelestia shell

This commit is contained in:
2026-01-20 23:02:45 +03:00
parent 2eb01e9603
commit c09233132b
12 changed files with 210 additions and 165 deletions
+35 -15
View File
@@ -1,10 +1,11 @@
{ config, pkgs, lib, ... }:
{ config, pkgs, lib, inputs, ... }:
# TODO:
# - make hyprexpo work
{
imports = [
inputs.caelestia-shell.homeManagerModules.default
# ./hyprland/env.nix
# ./hyprland/execs.nix
# ./hyprland/general.nix
@@ -12,10 +13,27 @@
# ./hyprland/active.nix
./hyprland/rules.nix
./hyprland/keybinds.nix # done
./hyprlock.nix # done
# ./hyprlock.nix # done
./hypridle.nix # done
./qs/qs.nix
] ++ lib.optional (builtins.pathExists ./hyprland/my.nix) ./hyprland/my.nix;
programs.caelestia = {
enable = true;
systemd = {
enable = false; # if you prefer starting from your compositor
target = "graphical-session.target";
environment = [ ];
};
settings = {
# bar.status = { showBattery = false; };
# paths.wallpaperDir = "~/Images";
};
cli = {
enable = true; # Also add caelestia-cli to path
# settings = { theme.enableGtk = false; };
};
};
home.packages = with pkgs; [
(pkgs.writeScriptBin "wallpaper" (''
#!${pkgs.python311}/bin/python3
@@ -27,14 +45,14 @@
nemo
pywal
jq
quickshell
xdg-desktop-portal
xdg-desktop-portal-gtk
xdg-desktop-portal-hyprland
xdg-desktop-portal-shana
# wayvnc # configure in future for auto start
];
programs.vicinae.enable = true;
services.swww.enable = true;
programs.hyprpanel = {
enable = true;
settings = builtins.fromJSON (builtins.readFile ./hyprpanel.json);
};
home.file.".config/hypr/scripts" = {
source = ./scripts;
@@ -54,14 +72,12 @@
layerrule = [ "noanim, vicinae" "blur,vicinae" "ignorealpha 0, vicinae" ];
env = [ "XCURSOR_SIZE,24" "HYPRCURSOR_SIZE,24" ];
# кто-то возраждает swww
# надо узнать, кому он нужен
exec-once = [
"hyprlock --immediate-render --no-fade-in &"
"caelestia shell &"
"caelestia shell lock lock; until [ $? -eq 0 ]; do sleep 1; caelestia shell lock lock; done"
# "hyprlock --immediate-render --no-fade-in &"
"wal -R &"
"swww img ${config.home.homeDirectory}/Pictures/wallpaper.png &"
# "(swww-daemon &) && sleep 2 && swww img ${config.home.homeDirectory}/Pictures/wallpaper.png"
"hyprpanel &"
# "swww img ${config.home.homeDirectory}/Pictures/wallpaper.png &"
"vicinae server &"
"gsettings set org.gnome.desktop.interface cursor-theme '${config.home.pointerCursor.name}'"
"gsettings set org.gnome.desktop.interface cursor-size ${
@@ -74,9 +90,11 @@
debug = { disable_logs = false; };
monitor = [
"eDP-1,preferred,auto,1.25"
"eDP-1,preferred,0x0,1.25"
"HDMI-A-1,preferred,auto-left,auto"
"HDMI-A-2,preferred,auto-left,auto"
"vcl-samsung,2340x1080@30,0x864,2"
"vcl-xiaomi,1440x900@30,-900x0,1"
];
input = {
@@ -211,6 +229,8 @@
disable_splash_rendering = true;
focus_on_activate = false;
vrr = 0;
# TODO: enable after rules.nix
# vfr = 1;
+4 -3
View File
@@ -2,7 +2,8 @@
{
services.hypridle = let
lock_cmd = "hyprlock --grace 10";
lock_cmd = "caelestia shell lock lock &";
# lock_cmd = "hyprlock --grace 10";
# lock_cmd = "exit";
suspend_cmd = "systemctl suspend || loginctl suspend";
in {
@@ -16,11 +17,11 @@
listener = [
{
timeout = 300; # 5 mins
timeout = 420; # 7 mins
on-timeout = "loginctl lock-session";
}
{
timeout = 600; # 10 mins
timeout = 780; # 13 mins
# on-timeout = "hyprctl dispatch dpms off";
# on-resume = "hyprctl dispatch dpms on";
}
@@ -126,13 +126,20 @@
# ''
];
bindd = [
bindd = [ # d - description
"${super}, M, Toggle power profile,exec, ~/.config/hypr/scripts/switch_config.sh"
# "${super}+Shift, S, Screenshot, exec, hyprshot --freeze --clipboard-only --mode region --silent"
", Print, Screenshot screen to file, exec, hyprshot --mode output --mode active "
"${super}+Shift, S, Screenshot region, exec, hyprshot --freeze --clipboard-only --mode region --silent"
"${super}+Shift, T, OCR, exec, hyprshot -m region --raw | tesseract stdin stdout"
"${super}, L, Lock screen, exec, hyprlock --immediate-render --no-fade-in"
"${super}, L, Lock screen, exec, caelestia shell lock lock"
", XF86AudioMicMute, Disable microphone, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle" # а они у меня есть?.. F4 + Fn
", XF86Display, Lock Hyprland, exec, caelestia shell lock lock" # F7 + Fn can be in future toggle vnc
# ", XF86WLAN, Open Amnezia, exec, AmneziaVPN" # F8 + Fn need to disable by default
", XF86Tools, Open NixOS config in VSCode, exec, code ~/Documents/Github/nixos-config"
# ", XF86Bluetooth, Open control center, exec, caelestia shell controlCenter open || kitty -n1 blueman || kitty -n1 bluetoothctl" # need to disable by default
# ", XF86Keyboard"
", XF86Favorites, Open special workspace, togglespecialworkspace, special"
# ", XF86WakeUp"
];
bindm = [
@@ -142,9 +149,9 @@
"${super}, mouse:275, togglespecialworkspace"
];
bindle = [
", XF86MonBrightnessUp, exec, brightnessctl s 5%+"
", XF86MonBrightnessDown, exec, brightnessctl s 5%-"
bindle = [ # l - locked, e - repeat
", XF86MonBrightnessUp, exec, caelestia shell brightness set +0.05 || brightnessctl s 5%+"
", XF86MonBrightnessDown, exec, caelestia shell brightness set 0.05- || brightnessctl s 5%-"
", XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 2%+"
", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%-"
];
-23
View File
@@ -1,23 +0,0 @@
{ config, pkgs, lib, ... }:
let
qmlPrefix = pkgs.qt6Packages.qtbase.qtQmlPrefix;
qmlDir = pkg: "${pkg}/${qmlPrefix}";
qsWrapped = pkgs.writeShellScriptBin "qss" ''
export QML_IMPORT_PATH="${qmlDir pkgs.qt6Packages.qtpositioning}:${
qmlDir pkgs.qt6Packages.qtlocation
}:${qmlDir pkgs.qt6Packages.qt5compat}:''${QML_IMPORT_PATH:-}"
export QML2_IMPORT_PATH="$QML_IMPORT_PATH"
exec ${pkgs.quickshell}/bin/qs "$@"
'';
in {
home.packages = [
pkgs.quickshell
pkgs.qt6Packages.qt5compat
pkgs.qt6Packages.qtpositioning
pkgs.qt6Packages.qtlocation
qsWrapped
];
}
+3 -1
View File
@@ -1,4 +1,4 @@
{ config, pkgs, ... }:
{ config, pkgs, inputs, ... }:
{
home.packages = with pkgs; [
@@ -21,7 +21,9 @@
bat
ripgrep
entr
ddgr
cava
github-copilot-cli
];