forked from Shinonome/dots-hyprland
added files
This commit is contained in:
@@ -0,0 +1,17 @@
|
|||||||
|
{pkgs, ...}: {
|
||||||
|
imports = [
|
||||||
|
./keybinds.nix
|
||||||
|
./execs.nix
|
||||||
|
./rules.nix
|
||||||
|
./env.nix
|
||||||
|
./colours.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
wayland.windowManager.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
xwayland.enable = true;
|
||||||
|
systemd.enable = true;
|
||||||
|
settings = {
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
wayland.windowManager.hyprland.settings = {
|
||||||
|
env = [
|
||||||
|
# Input method
|
||||||
|
"QT_IM_MODULE, fcitx"
|
||||||
|
"XMODIFIERS, @im=fcitx"
|
||||||
|
"SDL_IM_MODULE, fcitx"
|
||||||
|
"GLFW_IM_MODULE, ibus"
|
||||||
|
"INPUT_METHOD, fcitx"
|
||||||
|
|
||||||
|
# Wayland
|
||||||
|
"ELECTRON_OZONE_PLATFORM_HINT, auto"
|
||||||
|
|
||||||
|
# Themes
|
||||||
|
"QT_QPA_PLATFORM, wayland"
|
||||||
|
"QT_QPA_PLATFORMTHEME, kde"
|
||||||
|
"XDG_MENU_PREFIX, plasma-"
|
||||||
|
|
||||||
|
# Virtual environment
|
||||||
|
"ILLOGICAL_IMPULSE_VIRTUAL_ENV, ~/.local/state/quickshell/.venv"
|
||||||
|
|
||||||
|
# Terminal application
|
||||||
|
"TERMINAL, kitty -1"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
{
|
||||||
|
}
|
||||||
@@ -0,0 +1,155 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
wayland.windowManager.hyprland.settings = {
|
||||||
|
monitor = [
|
||||||
|
",preferred,auto,1,transform, 0"
|
||||||
|
# "HDMI-A-1,1920x1080@60,1920x0,1,mirror,eDP-1"
|
||||||
|
# ",addreserved, 0, 0, 0, 0"
|
||||||
|
];
|
||||||
|
|
||||||
|
gestures = {
|
||||||
|
workspace_swipe = true;
|
||||||
|
workspace_swipe_distance = 700;
|
||||||
|
workspace_swipe_fingers = 3;
|
||||||
|
workspace_swipe_min_fingers = true;
|
||||||
|
workspace_swipe_cancel_ratio = 0.2;
|
||||||
|
workspace_swipe_min_speed_to_force = 5;
|
||||||
|
workspace_swipe_direction_lock = true;
|
||||||
|
workspace_swipe_direction_lock_threshold = 10;
|
||||||
|
workspace_swipe_create_new = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
general = {
|
||||||
|
gaps_in = 4;
|
||||||
|
gaps_out = 5;
|
||||||
|
gaps_workspaces = 50;
|
||||||
|
border_size = 1;
|
||||||
|
"col.active_border" = "rgba(0DB7D4FF)";
|
||||||
|
"col.inactive_border" = "rgba(31313600)";
|
||||||
|
resize_on_border = true;
|
||||||
|
no_focus_fallback = true;
|
||||||
|
allow_tearing = true;
|
||||||
|
snap.enabled = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
dwindle = {
|
||||||
|
preserve_split = true;
|
||||||
|
smart_split = false;
|
||||||
|
smart_resizing = false;
|
||||||
|
# precise_mouse_move = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
decoration = {
|
||||||
|
rounding = 18;
|
||||||
|
blur = {
|
||||||
|
enabled = true;
|
||||||
|
xray = true;
|
||||||
|
special = false;
|
||||||
|
new_optimizations = true;
|
||||||
|
size = 14;
|
||||||
|
passes = 3;
|
||||||
|
brightness = 1;
|
||||||
|
noise = 0.01;
|
||||||
|
contrast = 1;
|
||||||
|
popups = true;
|
||||||
|
popups_ignorealpha = 0.6;
|
||||||
|
input_methods = true;
|
||||||
|
input_methods_ignorealpha = 0.8;
|
||||||
|
};
|
||||||
|
shadow = {
|
||||||
|
enabled = true;
|
||||||
|
ignore_window = true;
|
||||||
|
range = 30;
|
||||||
|
offset = "0 2";
|
||||||
|
render_power = 4;
|
||||||
|
color = "rgba(00000010)";
|
||||||
|
};
|
||||||
|
dim_inactive = true;
|
||||||
|
dim_strength = 0.025;
|
||||||
|
dim_special = 0.07;
|
||||||
|
};
|
||||||
|
|
||||||
|
animations = {
|
||||||
|
enabled = true;
|
||||||
|
bezier = [
|
||||||
|
"expressiveFastSpatial, 0.42, 1.67, 0.21, 0.90"
|
||||||
|
"expressiveSlowSpatial, 0.39, 1.29, 0.35, 0.98"
|
||||||
|
"expressiveDefaultSpatial, 0.38, 1.21, 0.22, 1.00"
|
||||||
|
"emphasizedDecel, 0.05, 0.7, 0.1, 1"
|
||||||
|
"emphasizedAccel, 0.3, 0, 0.8, 0.15"
|
||||||
|
"standardDecel, 0, 0, 0, 1"
|
||||||
|
"menu_decel, 0.1, 1, 0, 1"
|
||||||
|
"menu_accel, 0.52, 0.03, 0.72, 0.08"
|
||||||
|
];
|
||||||
|
animation = [
|
||||||
|
"windowsIn, 1, 3, emphasizedDecel, popin 80%"
|
||||||
|
"windowsOut, 1, 2, emphasizedDecel, popin 90%"
|
||||||
|
"windowsMove, 1, 3, emphasizedDecel, slide"
|
||||||
|
"border, 1, 10, emphasizedDecel"
|
||||||
|
"layersIn, 1, 2.7, emphasizedDecel, popin 93%"
|
||||||
|
"layersOut, 1, 2.4, menu_accel, popin 94%"
|
||||||
|
"fadeLayersIn, 1, 0.5, menu_decel"
|
||||||
|
"fadeLayersOut, 1, 2.7, menu_accel"
|
||||||
|
"workspaces, 1, 7, menu_decel, slide"
|
||||||
|
"specialWorkspaceIn, 1, 2.8, emphasizedDecel, slidevert"
|
||||||
|
"specialWorkspaceOut, 1, 1.2, emphasizedAccel, slidevert"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
input = {
|
||||||
|
kb_layout = "us";
|
||||||
|
numlock_by_default = true;
|
||||||
|
repeat_delay = 250;
|
||||||
|
repeat_rate = 35;
|
||||||
|
follow_mouse = 1;
|
||||||
|
off_window_axis_events = 2;
|
||||||
|
touchpad = {
|
||||||
|
natural_scroll = true;
|
||||||
|
disable_while_typing = true;
|
||||||
|
clickfinger_behavior = true;
|
||||||
|
scroll_factor = 0.5;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
misc = {
|
||||||
|
disable_hyprland_logo = true;
|
||||||
|
disable_splash_rendering = true;
|
||||||
|
vfr = 1;
|
||||||
|
vrr = 1;
|
||||||
|
mouse_move_enables_dpms = true;
|
||||||
|
key_press_enables_dpms = true;
|
||||||
|
animate_manual_resizes = false;
|
||||||
|
animate_mouse_windowdragging = false;
|
||||||
|
enable_swallow = false;
|
||||||
|
swallow_regex = "(foot|kitty|allacritty|Alacritty)";
|
||||||
|
new_window_takes_over_fullscreen = 2;
|
||||||
|
allow_session_lock_restore = true;
|
||||||
|
# session_lock_xray = true;
|
||||||
|
initial_workspace_tracking = false;
|
||||||
|
focus_on_activate = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
binds = {
|
||||||
|
scroll_event_delay = 0;
|
||||||
|
hide_special_on_workspace_change = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
cursor = {
|
||||||
|
zoom_factor = 1;
|
||||||
|
zoom_rigid = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
plugin.hyprexpo = {
|
||||||
|
columns = 3;
|
||||||
|
gap_size = 5;
|
||||||
|
bg_col = "rgb(000000)";
|
||||||
|
workspace_method = "first 1";
|
||||||
|
enable_gesture = false;
|
||||||
|
gesture_distance = 300;
|
||||||
|
gesture_positive = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,189 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
wayland.windowManager.hyprland.settings = {
|
||||||
|
# Shell keybinds
|
||||||
|
bindi = [
|
||||||
|
"Super, Super_L, Toggle overview, global, quickshell:overviewToggleRelease"
|
||||||
|
];
|
||||||
|
binditn = [
|
||||||
|
"Super, catchall, global, quickshell:overviewToggleReleaseInterrupt"
|
||||||
|
"Ctrl, Super_L, global, quickshell:overviewToggleReleaseInterrupt"
|
||||||
|
"Super, mouse:272, global, quickshell:overviewToggleReleaseInterrupt"
|
||||||
|
"Super, mouse:273, global, quickshell:overviewToggleReleaseInterrupt"
|
||||||
|
"Super, mouse:274, global, quickshell:overviewToggleReleaseInterrupt"
|
||||||
|
"Super, mouse:275, global, quickshell:overviewToggleReleaseInterrupt"
|
||||||
|
"Super, mouse:276, global, quickshell:overviewToggleReleaseInterrupt"
|
||||||
|
"Super, mouse:277, global, quickshell:overviewToggleReleaseInterrupt"
|
||||||
|
"Super, mouse_up, global, quickshell:overviewToggleReleaseInterrupt"
|
||||||
|
"Super, mouse_down, global, quickshell:overviewToggleReleaseInterrupt"
|
||||||
|
];
|
||||||
|
bindit = [
|
||||||
|
", Super_L, global, quickshell:workspaceNumber"
|
||||||
|
];
|
||||||
|
bindd = [
|
||||||
|
# The Nix module for Hyprland doesn't use `bindd` as a separate type,
|
||||||
|
# but it's used in the config file to handle cheatsheet descriptions.
|
||||||
|
# We'll put these into the main `bind` list and resolve the duplicates.
|
||||||
|
# The `bindd` lines here were already duplicates of the `bind` lines
|
||||||
|
# in your previous example, so they were the source of the conflict.
|
||||||
|
# I am merging them into a single, comprehensive `bind` list below.
|
||||||
|
];
|
||||||
|
|
||||||
|
# All unique keybindings are listed here.
|
||||||
|
bind =
|
||||||
|
[
|
||||||
|
# Shell and QuickShell keybinds
|
||||||
|
"Super, V, exec, qs -c $qsConfig ipc call TEST_ALIVE || pkill fuzzel || cliphist list | fuzzel --match-mode fzf --dmenu | cliphist decode | wl-copy"
|
||||||
|
"Super, Period, exec, qs -c $qsConfig ipc call TEST_ALIVE || pkill fuzzel || ~/.config/hypr/hyprland/scripts/fuzzel-emoji.sh copy"
|
||||||
|
"Super, Tab, global, quickshell:overviewToggle"
|
||||||
|
"Super, A, global, quickshell:sidebarLeftToggle"
|
||||||
|
"Super+Alt, A, global, quickshell:sidebarLeftToggleDetach"
|
||||||
|
"Super, B, global, quickshell:sidebarLeftToggle"
|
||||||
|
"Super, O, global, quickshell:sidebarLeftToggle"
|
||||||
|
"Super, N, global, quickshell:sidebarRightToggle"
|
||||||
|
"Super, Slash, global, quickshell:ch+CtrleatsheetToggle"
|
||||||
|
"Super, M, global, quickshell:mediaControlsToggle"
|
||||||
|
"Ctrl+Alt, Delete, global, quickshell:sessionToggle"
|
||||||
|
"Ctrl+Alt, Delete, exec, qs -c $qsConfig ipc call TEST_ALIVE || pkill wlogout || wlogout -p layer-shell"
|
||||||
|
"Shift+Super+Alt, Slash, exec, qs -p ~/.config/quickshell/$qsConfig/welcome.qml"
|
||||||
|
|
||||||
|
# Utilities keybinds
|
||||||
|
"Super+Shift, S, exec, qs -p ~/.config/quickshell/$qsConfig/screenshot.qml || pidof slurp || hyprshot --freeze --clipboard-only --mode region --silent"
|
||||||
|
"Super+Shift, T, exec, grim -g \"$(slurp $SLURP_ARGS)\" \"tmp.png\" && tesseract \"tmp.png\" - | wl-copy && rm \"tmp.png\""
|
||||||
|
"Super+Shift, C, exec, hyprpicker -a"
|
||||||
|
"Super+Alt, R, exec, ~/.config/hypr/hyprland/scripts/record.sh"
|
||||||
|
"Ctrl+Alt, R, exec, ~/.config/hypr/hyprland/scripts/record.sh --fullscreen"
|
||||||
|
"Super+Shift+Alt, R, exec, ~/.config/hypr/hyprland/scripts/record.sh --fullscreen-sound"
|
||||||
|
"Super+Shift+Alt, mouse:273, exec, ~/.config/hypr/hyprland/scripts/ai/primary-buffer-query.sh"
|
||||||
|
"Ctrl+Super, T, exec, ~/.config/hypr/hyprland/scripts/colors/switchwall.sh"
|
||||||
|
"Ctrl+Super, R, exec, killall ags agsv1 gjs ydotool qs quickshell; qs -c $qsConfig &"
|
||||||
|
"Ctrl+Super, Backslash, resizeactive, exact 640 480"
|
||||||
|
"Super+Alt, f11, exec, bash -c 'RANDOM_IMAGE=$(find ~/Pictures -type f | grep -v -i \"nipple\" | grep -v -i \"pussy\" | shuf -n 1); ACTION=$(notify-send \"Test notification with body image\" \"This notification should contain your user account <b>image</b> and <a href=\\\"https://discord.com/app\\\">Discord</a> <b>icon</b>. Oh and here is a random image in your Pictures folder: <img src=\\\"$RANDOM_IMAGE\\\" alt=\\\"Testing image\\\"/>\" -a \"Hyprland keybind\" -p -h \"string:image-path:/var/lib/AccountsService/icons/$USER\" -t 6000 -i \"discord\" -A \"openImage=Open profile image\" -A \"action2=Open the random image\" -A \"action3=Useless button\"); [[ $ACTION == *openImage ]] && xdg-open \"/var/lib/AccountsService/icons/$USER\"; [[ $ACTION == *action2 ]] && xdg-open \"$RANDOM_IMAGE\"'"
|
||||||
|
"Super+Alt, f12, exec, bash -c 'RANDOM_IMAGE=$(find ~/Pictures -type f | grep -v -i \"nipple\" | grep -v -i \"pussy\" | shuf -n 1); ACTION=$(notify-send \"Test notification\" \"This notification should contain a random image in your <b>Pictures</b> folder and <a href=\\\"https://discord.com/app\\\">Discord</a> <b>icon</b>.\\n<i>Flick right to dismiss!</i>\" -a \"Discord (fake)\" -p -h \"string:image-path:$RANDOM_IMAGE\" -t 6000 -i \"discord\" -A \"openImage=Open profile image\" -A \"action2=Useless button\" -A \"action3=Cry more\"); [[ $ACTION == *openImage ]] && xdg-open \"/var/lib/AccountsService/icons/$USER\"'"
|
||||||
|
"Super+Alt, Equal, exec, notify-send \"Urgent notification\" \"Ah hell no\" -u critical -a 'Hyprland keybind'"
|
||||||
|
|
||||||
|
# Window management
|
||||||
|
"Super, Q, killactive"
|
||||||
|
"Super+Shift+Alt, Q, exec, hyprctl kill"
|
||||||
|
"Super+Alt, Space, togglefloating"
|
||||||
|
"Super, D, fullscreen, 1"
|
||||||
|
"Super, F, fullscreen, 0"
|
||||||
|
"Super+Alt, F, fullscreenstate, 0 3"
|
||||||
|
"Super, P, pin"
|
||||||
|
"Super, S, togglespecialworkspace"
|
||||||
|
"Super+Alt, S, movetoworkspacesilent, special"
|
||||||
|
"Alt, Tab, cyclenext"
|
||||||
|
"Alt, Tab, bringactivetotop"
|
||||||
|
"Super, mouse:275, togglespecialworkspace"
|
||||||
|
|
||||||
|
# Media
|
||||||
|
"Super+Shift, N, exec, playerctl next || playerctl position `bc <<< \"100 * $(playerctl metadata mpris:length) / 1000000 / 100\"`"
|
||||||
|
"Super+Shift, B, exec, playerctl previous"
|
||||||
|
"Super+Shift, P, exec, playerctl play-pause"
|
||||||
|
"Super+Shift+Alt, mouse:275, exec, playerctl previous"
|
||||||
|
"Super+Shift+Alt, mouse:276, exec, playerctl next || playerctl position `bc <<< \"100 * $(playerctl metadata mpris:length) / 1000000 / 100\"`"
|
||||||
|
|
||||||
|
# Session
|
||||||
|
"Ctrl+Shift+Alt+Super, Delete, exec, systemctl poweroff || loginctl poweroff"
|
||||||
|
|
||||||
|
# Apps
|
||||||
|
"Super, Return, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"$TERMINAL\" \"kitty -1\" \"foot\" \"alacritty\" \"wezterm\" \"konsole\" \"kgx\" \"uxterm\" \"xterm\""
|
||||||
|
"Super, T, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"$TERMINAL\" \"kitty -1\" \"foot\" \"alacritty\" \"wezterm\" \"konsole\" \"kgx\" \"uxterm\" \"xterm\""
|
||||||
|
"Ctrl+Alt, T, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"$TERMINAL\" \"kitty -1\" \"foot\" \"alacritty\" \"wezterm\" \"konsole\" \"kgx\" \"uxterm\" \"xterm\""
|
||||||
|
"Super, E, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"dolphin\" \"nautilus\" \"nemo\" \"thunar\" \"$TERMINAL\" \"kitty -1 fish -c yazi\""
|
||||||
|
"Super, W, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"google-chrome-stable\" \"zen-browser\" \"firefox\" \"brave\" \"chromium\" \"microsoft-edge-stable\" \"opera\" \"librewolf\""
|
||||||
|
"Super, C, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"code\" \"codium\" \"cursor\" \"zed\" \"zedit\" \"zeditor\" \"kate\" \"gnome-text-editor\" \"emacs\" \"command -v nvim && kitty -1 nvim\""
|
||||||
|
"Super+Shift, W, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"wps\" \"onlyoffice-desktopeditors\""
|
||||||
|
"Super, X, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"kate\" \"gnome-text-editor\" \"emacs\""
|
||||||
|
"Ctrl+Super, V, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"pavucontrol-qt\" \"pavucontrol\""
|
||||||
|
"Super, I, exec, XDG_CURRENT_DESKTOP=gnome ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"qs -p ~/.config/quickshell/$qsConfig/settings.qml\" \"systemsettings\" \"gnome-control-center\" \"better-control\""
|
||||||
|
"Ctrl+Shift, Escape, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"gnome-system-monitor\" \"plasma-systemmonitor --page-name Processes\" \"command -v btop && kitty -1 fish -c btop\""
|
||||||
|
|
||||||
|
# Window movement and focus
|
||||||
|
"Super, Left, movefocus, l"
|
||||||
|
"Super, Right, movefocus, r"
|
||||||
|
"Super, Up, movefocus, u"
|
||||||
|
"Super, Down, movefocus, d"
|
||||||
|
"Super, BracketLeft, movefocus, l"
|
||||||
|
"Super, BracketRight, movefocus, r"
|
||||||
|
"Super+Shift, Left, movewindow, l"
|
||||||
|
"Super+Shift, Right, movewindow, r"
|
||||||
|
"Super+Shift, Up, movewindow, u"
|
||||||
|
"Super+Shift, Down, movewindow, d"
|
||||||
|
"Alt, F4, killactive"
|
||||||
|
"Super+Shift, mouse_down, movetoworkspace, r-1"
|
||||||
|
"Super+Shift, mouse_up, movetoworkspace, r+1"
|
||||||
|
"Super+Alt, mouse_down, movetoworkspace, -1"
|
||||||
|
"Super+Alt, mouse_up, movetoworkspace, +1"
|
||||||
|
"Super+Shift, Page_Down, movetoworkspace, r+1"
|
||||||
|
"Super+Shift, Page_Up, movetoworkspace, r-1"
|
||||||
|
"Ctrl+Super+Shift, Right, movetoworkspace, r+1"
|
||||||
|
"Ctrl+Super+Shift, Left, movetoworkspace, r-1"
|
||||||
|
"Ctrl+Super, Right, workspace, r+1"
|
||||||
|
"Ctrl+Super, Left, workspace, r-1"
|
||||||
|
"Ctrl+Super+Alt, Right, workspace, m+1"
|
||||||
|
"Ctrl+Super+Alt, Left, workspace, m-1"
|
||||||
|
"Super, Page_Down, workspace, +1"
|
||||||
|
"Super, Page_Up, workspace, -1"
|
||||||
|
"Ctrl+Super, Page_Down, workspace, r+1"
|
||||||
|
"Ctrl+Super, Page_Up, workspace, r-1"
|
||||||
|
"Super, mouse_up, workspace, +1"
|
||||||
|
"Super, mouse_down, workspace, -1"
|
||||||
|
"Ctrl+Super, mouse_up, workspace, r+1"
|
||||||
|
"Ctrl+Super, mouse_down, workspace, r-1"
|
||||||
|
|
||||||
|
"Super+Alt, 0, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 0"
|
||||||
|
"Super, 0, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 0"
|
||||||
|
]
|
||||||
|
++ (
|
||||||
|
builtins.concatLists (builtins.genList (
|
||||||
|
i: let
|
||||||
|
ws = i + 1;
|
||||||
|
in [
|
||||||
|
"Super+Alt, ${toString ws}, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent ${toString ws}"
|
||||||
|
"Super, ${toString ws}, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace ${toString ws}"
|
||||||
|
]
|
||||||
|
)
|
||||||
|
9)
|
||||||
|
);
|
||||||
|
|
||||||
|
# The `bindm` list is used for mouse modifiers.
|
||||||
|
bindm = [
|
||||||
|
"Super, mouse:272, movewindow"
|
||||||
|
"Super, mouse:274, movewindow"
|
||||||
|
"Super, mouse:273, resizewindow"
|
||||||
|
];
|
||||||
|
|
||||||
|
# The `bindl` list is for key release events.
|
||||||
|
bindl = [
|
||||||
|
", XF86MonBrightnessUp, exec, qs -c $qsConfig ipc call brightness increment || brightnessctl s 5%+"
|
||||||
|
", XF86MonBrightnessDown, exec, qs -c $qsConfig ipc call brightness decrement || brightnessctl s 5%-"
|
||||||
|
", XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 2%+"
|
||||||
|
", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%-"
|
||||||
|
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_SINK@ toggle"
|
||||||
|
"Super+Shift, M, exec, wpctl set-mute @DEFAULT_SINK@ toggle"
|
||||||
|
"Alt, XF86AudioMute, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle"
|
||||||
|
", XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle"
|
||||||
|
"Super+Alt, M, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle"
|
||||||
|
", Print, exec, grim - | wl-copy"
|
||||||
|
"Ctrl, Print, exec, mkdir -p $(xdg-user-dir PICTURES)/Screenshots && grim $(xdg-user-dir PICTURES)/Screenshots/Screenshot_\"$(date '+%Y-%m-%d_%H.%M.%S')\".png"
|
||||||
|
", XF86AudioNext, exec, playerctl next || playerctl position `bc <<< \"100 * $(playerctl metadata mpris:length) / 1000000 / 100\"`"
|
||||||
|
", XF86AudioPrev, exec, playerctl previous"
|
||||||
|
", XF86AudioPlay, exec, playerctl play-pause"
|
||||||
|
", XF86AudioPause, exec, playerctl play-pause"
|
||||||
|
];
|
||||||
|
|
||||||
|
# The `binde` list is for continuous events.
|
||||||
|
binde = [
|
||||||
|
"Super, Semicolon, splitratio, -0.1"
|
||||||
|
"Super, Apostrophe, splitratio, +0.1"
|
||||||
|
"Super, Minus, exec, qs -c $qsConfig ipc call zoom zoomOut"
|
||||||
|
"Super, Equal, exec, qs -c $qsConfig ipc call zoom zoomIn"
|
||||||
|
"Super, Minus, exec, qs -c $qsConfig ipc call TEST_ALIVE || ~/.config/hypr/hyprland/scripts/zoom.sh decrease 0.1"
|
||||||
|
"Super, Equal, exec, qs -c $qsConfig ipc call TEST_ALIVE || ~/.config/hypr/hyprland/scripts/zoom.sh increase 0.1"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,153 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
wayland.windowManager.hyprland.settings = {
|
||||||
|
windowrulev2 = [
|
||||||
|
# Uncomment to apply global transparency to all windows:
|
||||||
|
# "opacity 0.89 override 0.89 override, class:.*"
|
||||||
|
|
||||||
|
# Disable blur for xwayland context menus
|
||||||
|
"noblur, class:^()$,title:^()$"
|
||||||
|
"noblur, xwayland:1"
|
||||||
|
|
||||||
|
# Floating
|
||||||
|
"float, class:^(blueberry\\.py)$"
|
||||||
|
"float, class:^(guifetch)$"
|
||||||
|
"float, class:^(pavucontrol)$"
|
||||||
|
"size 45%, class:^(pavucontrol)$"
|
||||||
|
"center, class:^(pavucontrol)$"
|
||||||
|
"float, class:^(org\\.pulseaudio\\.pavucontrol)$"
|
||||||
|
"size 45%, class:^(org\\.pulseaudio\\.pavucontrol)$"
|
||||||
|
"center, class:^(org\\.pulseaudio\\.pavucontrol)$"
|
||||||
|
"float, class:^(nm-connection-editor)$"
|
||||||
|
"size 45%, class:^(nm-connection-editor)$"
|
||||||
|
"center, class:^(nm-connection-editor)$"
|
||||||
|
"float, class:.*plasmawindowed.*"
|
||||||
|
"float, class:kcm_.*"
|
||||||
|
"float, class:.*bluedevilwizard"
|
||||||
|
"float, title:.*Welcome"
|
||||||
|
"float, title:^(illogical-impulse Settings)$"
|
||||||
|
"float, class:org.freedesktop.impl.portal.desktop.kde"
|
||||||
|
"float, class:^(Zotero)$"
|
||||||
|
"size 45%, class:^(Zotero)$"
|
||||||
|
|
||||||
|
# Move
|
||||||
|
"float, class:^(plasma-changeicons)$"
|
||||||
|
"noinitialfocus, class:^(plasma-changeicons)$"
|
||||||
|
"move 999999 999999, class:^(plasma-changeicons)$"
|
||||||
|
"move 40 80, title:^(Copying — Dolphin)$"
|
||||||
|
|
||||||
|
# Tiling
|
||||||
|
"tile, class:^dev\\.warp\\.Warp$"
|
||||||
|
|
||||||
|
# Picture-in-Picture
|
||||||
|
"float, title:^([Pp]icture[-\\s]?[Ii]n[-\\s]?[Pp]icture)(.*)$"
|
||||||
|
"keepaspectratio, title:^([Pp]icture[-\\s]?[Ii]n[-\\s]?[Pp]icture)(.*)$"
|
||||||
|
"move 73% 72%, title:^([Pp]icture[-\\s]?[Ii]n[-\\s]?[Pp]icture)(.*)$"
|
||||||
|
"size 25%, title:^([Pp]icture[-\\s]?[Ii]n[-\\s]?[Pp]icture)(.*)$"
|
||||||
|
"pin, title:^([Pp]icture[-\\s]?[Ii]n[-\\s]?[Pp]icture)(.*)$"
|
||||||
|
"float, title:^([Pp]icture[-\\s]?[Ii]n[-\\s]?[Pp]icture)(.*)$"
|
||||||
|
|
||||||
|
# Dialog windows
|
||||||
|
"center, title:^(Open File)(.*)$"
|
||||||
|
"center, title:^(Select a File)(.*)$"
|
||||||
|
"center, title:^(Choose wallpaper)(.*)$"
|
||||||
|
"center, title:^(Open Folder)(.*)$"
|
||||||
|
"center, title:^(Save As)(.*)$"
|
||||||
|
"center, title:^(Library)(.*)$"
|
||||||
|
"center, title:^(File Upload)(.*)$"
|
||||||
|
"center, title:^(.*)(wants to save)$"
|
||||||
|
"center, title:^(.*)(wants to open)$"
|
||||||
|
"float, title:^(Open File)(.*)$"
|
||||||
|
"float, title:^(Select a File)(.*)$"
|
||||||
|
"float, title:^(Choose wallpaper)(.*)$"
|
||||||
|
"float, title:^(Open Folder)(.*)$"
|
||||||
|
"float, title:^(Save As)(.*)$"
|
||||||
|
"float, title:^(Library)(.*)$"
|
||||||
|
"float, title:^(File Upload)(.*)$"
|
||||||
|
"float, title:^(.*)(wants to save)$"
|
||||||
|
"float, title:^(.*)(wants to open)$"
|
||||||
|
|
||||||
|
# Tearing
|
||||||
|
"immediate, title:.*\\.exe"
|
||||||
|
"immediate, title:.*minecraft.*"
|
||||||
|
"immediate, class:^(steam_app).*"
|
||||||
|
|
||||||
|
# No shadow for tiled windows
|
||||||
|
"noshadow, floating:0"
|
||||||
|
];
|
||||||
|
|
||||||
|
workspace = [
|
||||||
|
"special:special, gapsout:30"
|
||||||
|
];
|
||||||
|
|
||||||
|
layerrule = [
|
||||||
|
"xray 1, .*"
|
||||||
|
# "noanim, .*"
|
||||||
|
"noanim, walker"
|
||||||
|
"noanim, selection"
|
||||||
|
"noanim, overview"
|
||||||
|
"noanim, anyrun"
|
||||||
|
"noanim, indicator.*"
|
||||||
|
"noanim, osk"
|
||||||
|
"noanim, hyprpicker"
|
||||||
|
"noanim, noanim"
|
||||||
|
"blur, gtk-layer-shell"
|
||||||
|
"ignorezero, gtk-layer-shell"
|
||||||
|
"blur, launcher"
|
||||||
|
"ignorealpha 0.5, launcher"
|
||||||
|
"blur, notifications"
|
||||||
|
"ignorealpha 0.69, notifications"
|
||||||
|
"blur, logout_dialog"
|
||||||
|
"animation slide left, sideleft.*"
|
||||||
|
"animation slide right, sideright.*"
|
||||||
|
"blur, session[0-9]*"
|
||||||
|
"blur, bar[0-9]*"
|
||||||
|
"ignorealpha 0.6, bar[0-9]*"
|
||||||
|
"blur, barcorner.*"
|
||||||
|
"ignorealpha 0.6, barcorner.*"
|
||||||
|
"blur, dock[0-9]*"
|
||||||
|
"ignorealpha 0.6, dock[0-9]*"
|
||||||
|
"blur, indicator.*"
|
||||||
|
"ignorealpha 0.6, indicator.*"
|
||||||
|
"blur, overview[0-9]*"
|
||||||
|
"ignorealpha 0.6, overview[0-9]*"
|
||||||
|
"blur, cheatsheet[0-9]*"
|
||||||
|
"ignorealpha 0.6, cheatsheet[0-9]*"
|
||||||
|
"blur, sideright[0-9]*"
|
||||||
|
"ignorealpha 0.6, sideright[0-9]*"
|
||||||
|
"blur, sideleft[0-9]*"
|
||||||
|
"ignorealpha 0.6, sideleft[0-9]*"
|
||||||
|
"blur, indicator.*"
|
||||||
|
"ignorealpha 0.6, indicator.*"
|
||||||
|
"blur, osk[0-9]*"
|
||||||
|
"ignorealpha 0.6, osk[0-9]*"
|
||||||
|
"blurpopups, quickshell:.*"
|
||||||
|
"blur, quickshell:.*"
|
||||||
|
"ignorealpha 0.79, quickshell:.*"
|
||||||
|
"animation slide top, quickshell:bar"
|
||||||
|
"animation fade, quickshell:screenCorners"
|
||||||
|
"animation slide right, quickshell:sidebarRight"
|
||||||
|
"animation slide left, quickshell:sidebarLeft"
|
||||||
|
"animation slide bottom, quickshell:osk"
|
||||||
|
"animation slide bottom, quickshell:dock"
|
||||||
|
"blur, quickshell:session"
|
||||||
|
"noanim, quickshell:session"
|
||||||
|
"ignorealpha 0, quickshell:session"
|
||||||
|
"animation fade, quickshell:notificationPopup"
|
||||||
|
"blur, quickshell:backgroundWidgets"
|
||||||
|
"ignorealpha 0.05, quickshell:backgroundWidgets"
|
||||||
|
"noanim, quickshell:screenshot"
|
||||||
|
"animation popin 120%, quickshell:screenCorners"
|
||||||
|
"noanim, quickshell:lockWindowPusher"
|
||||||
|
"noanim, quickshell:overview"
|
||||||
|
"noanim, gtk4-layer-shell"
|
||||||
|
"blur, shell:bar"
|
||||||
|
"ignorezero, shell:bar"
|
||||||
|
"blur, shell:notifications"
|
||||||
|
"ignorealpha 0.1, shell:notifications"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -17,6 +17,15 @@
|
|||||||
description = "Uses a custom pure-like starship configuration.";
|
description = "Uses a custom pure-like starship configuration.";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
hyprland = {
|
||||||
|
useNixForConf = {
|
||||||
|
enable = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = false;
|
||||||
|
description = "Use .nix files for hyprland setup instead of exporting .config/hypr. Useful for modifiable configurations.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,49 @@
|
|||||||
|
{lib, ...}: {
|
||||||
|
format = lib.concatStrings [
|
||||||
|
"$username"
|
||||||
|
"$hostname"
|
||||||
|
"$directory"
|
||||||
|
"$git_branch"
|
||||||
|
"$git_state"
|
||||||
|
"$git_status"
|
||||||
|
"$cmd_duration"
|
||||||
|
"$line_break"
|
||||||
|
"$python"
|
||||||
|
"$character"
|
||||||
|
];
|
||||||
|
directory = {
|
||||||
|
style = "blue";
|
||||||
|
};
|
||||||
|
character = {
|
||||||
|
success_symbol = "[→](purple)";
|
||||||
|
error_symbol = "[→](red)";
|
||||||
|
vimcmd_symbol = "[←](green)";
|
||||||
|
};
|
||||||
|
git_branch = {
|
||||||
|
format = "[$branch]($style)";
|
||||||
|
style = "bright-black";
|
||||||
|
};
|
||||||
|
git_status = {
|
||||||
|
format = "[(*$conflicted$untracked$modified$staged$renamed$deleted) $ahead_behind$stashed]($style)";
|
||||||
|
style = "cyan";
|
||||||
|
conflicted = "";
|
||||||
|
untracked = "";
|
||||||
|
modified = "";
|
||||||
|
staged = "";
|
||||||
|
renamed = "";
|
||||||
|
deleted = "";
|
||||||
|
stashed = "≡";
|
||||||
|
};
|
||||||
|
git_state = {
|
||||||
|
format = "([$state( $progress_current/$progress_total)]($style)) ";
|
||||||
|
style = "bright-black";
|
||||||
|
};
|
||||||
|
cmd_duration = {
|
||||||
|
format = "[$duration]($style) ";
|
||||||
|
style = "yellow";
|
||||||
|
};
|
||||||
|
python = {
|
||||||
|
format = "[$virtualenv]($style) ";
|
||||||
|
style = "bright-black";
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -4,6 +4,7 @@
|
|||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
cfg = config.programs.illogical-impulse;
|
cfg = config.programs.illogical-impulse;
|
||||||
|
simpleStarshipSettings = import ./simpleStarship.nix {inherit lib;};
|
||||||
in {
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
../options.nix
|
../options.nix
|
||||||
@@ -12,55 +13,7 @@ in {
|
|||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
programs.starship = lib.mkIf cfg.settings.simpleStarship.enable {
|
programs.starship = lib.mkIf cfg.settings.simpleStarship.enable {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = simpleStarshipSettings;
|
||||||
format = lib.concatStrings [
|
|
||||||
"$username"
|
|
||||||
"$hostname"
|
|
||||||
"$directory"
|
|
||||||
"$git_branch"
|
|
||||||
"$git_state"
|
|
||||||
"$git_status"
|
|
||||||
"$cmd_duration"
|
|
||||||
"$line_break"
|
|
||||||
"$python"
|
|
||||||
"$character"
|
|
||||||
];
|
|
||||||
directory = {
|
|
||||||
style = "blue";
|
|
||||||
};
|
|
||||||
character = {
|
|
||||||
success_symbol = "[→](purple)";
|
|
||||||
error_symbol = "[→](red)";
|
|
||||||
vimcmd_symbol = "[←](green)";
|
|
||||||
};
|
|
||||||
git_branch = {
|
|
||||||
format = "[$branch]($style)";
|
|
||||||
style = "bright-black";
|
|
||||||
};
|
|
||||||
git_status = {
|
|
||||||
format = "[(*$conflicted$untracked$modified$staged$renamed$deleted) $ahead_behind$stashed]($style)";
|
|
||||||
style = "cyan";
|
|
||||||
conflicted = "";
|
|
||||||
untracked = "";
|
|
||||||
modified = "";
|
|
||||||
staged = "";
|
|
||||||
renamed = "";
|
|
||||||
deleted = "";
|
|
||||||
stashed = "≡";
|
|
||||||
};
|
|
||||||
git_state = {
|
|
||||||
format = "([$state( $progress_current/$progress_total)]($style)) ";
|
|
||||||
style = "bright-black";
|
|
||||||
};
|
|
||||||
cmd_duration = {
|
|
||||||
format = "[$duration]($style) ";
|
|
||||||
style = "yellow";
|
|
||||||
};
|
|
||||||
python = {
|
|
||||||
format = "[$virtualenv]($style) ";
|
|
||||||
style = "bright-black";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
home.file.".config/starship.toml" = lib.mkIf (!cfg.settings.simpleStarship.enable) {
|
home.file.".config/starship.toml" = lib.mkIf (!cfg.settings.simpleStarship.enable) {
|
||||||
|
|||||||
Reference in New Issue
Block a user