some hyprland configs and other stuff
This commit is contained in:
@@ -1,14 +1,29 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
# TODO:
|
||||
# - make shortcuts for hyprctl commands
|
||||
# - split into multiple files
|
||||
# - configure comands like hyprpaper, waybar, etc.
|
||||
# - make hyprexpo work
|
||||
|
||||
{
|
||||
imports = [
|
||||
# ./hyprland/env.nix
|
||||
# ./hyprland/execs.nix
|
||||
# ./hyprland/general.nix
|
||||
# ./hyprland/rules.nix
|
||||
# ./hyprland/colors.nix
|
||||
# ./hyprland/active.nix
|
||||
./hyprland/keybinds.nix # in process
|
||||
./hyprlock.nix # done
|
||||
./hypridle.nix # done
|
||||
];
|
||||
home.packages = with pkgs; [
|
||||
hyprland # already in nixos modules, but here for hyprctl
|
||||
hyprland
|
||||
brightnessctl
|
||||
playerctl
|
||||
wl-clipboard
|
||||
hyprshot
|
||||
tesseract
|
||||
];
|
||||
programs.hyprpanel = {
|
||||
enable = true;
|
||||
@@ -16,35 +31,194 @@
|
||||
};
|
||||
programs.fuzzel.enable = true;
|
||||
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
exec-once = [
|
||||
# Fixes cursor themes in gnome apps under hyprland
|
||||
"gsettings set org.gnome.desktop.interface cursor-theme '${config.home.pointerCursor.name}'"
|
||||
"gsettings set org.gnome.desktop.interface cursor-size ${
|
||||
toString config.home.pointerCursor.size
|
||||
}"
|
||||
];
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
# plugins = [ hyprexpo ];
|
||||
settings = {
|
||||
env = [ "XCURSOR_SIZE,24" "HYPRCURSOR_SIZE,24" ];
|
||||
|
||||
exec-once = [
|
||||
"hyprlock"
|
||||
"hyprpanel &"
|
||||
"gsettings set org.gnome.desktop.interface cursor-theme '${config.home.pointerCursor.name}'"
|
||||
"gsettings set org.gnome.desktop.interface cursor-size ${
|
||||
toString config.home.pointerCursor.size
|
||||
}"
|
||||
];
|
||||
|
||||
exec = "hyprctl dispatch submap global";
|
||||
submap = "global";
|
||||
debug = { disable_logs = false; };
|
||||
|
||||
monitor =
|
||||
[ "eDP-1,preferred,auto,auto" "HDMI-A-1,preferred,auto-left,auto" ];
|
||||
|
||||
input = {
|
||||
kb_layout = "us,ru";
|
||||
kb_options = "grp:win_space_toggle,ctrl:swap_lalt_lctl";
|
||||
natural_scroll = true;
|
||||
follow_mouse = 1;
|
||||
numlock_by_default = true;
|
||||
|
||||
touchpad = {
|
||||
disable_while_typing = true;
|
||||
clickfinger_behavior = true;
|
||||
natural_scroll = true;
|
||||
};
|
||||
};
|
||||
cursor = {
|
||||
no_hardware_cursors = true;
|
||||
min_refresh_rate = 60;
|
||||
inactive_timeout = 5;
|
||||
hide_on_key_press = true;
|
||||
};
|
||||
|
||||
binds.scroll_event_delay = 0;
|
||||
|
||||
gestures = {
|
||||
workspace_swipe = true;
|
||||
workspace_swipe_distance = 700;
|
||||
workspace_swipe_fingers = 3;
|
||||
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 and border
|
||||
gaps_in = 5;
|
||||
gaps_out = 10;
|
||||
gaps_workspaces = 50;
|
||||
border_size = 0;
|
||||
|
||||
# Fallback colors
|
||||
"col.active_border" = "rgba(0DB7D4FF)";
|
||||
"col.inactive_border" = "rgba(31313600)";
|
||||
|
||||
resize_on_border = true;
|
||||
no_focus_fallback = true;
|
||||
# layout = dwindle
|
||||
|
||||
#focus_to_other_workspaces = true # ahhhh i still haven't properly implemented this
|
||||
allow_tearing =
|
||||
true; # This just allows the `immediate` window rule to work
|
||||
snap.enabled = true;
|
||||
};
|
||||
|
||||
dwindle = {
|
||||
preserve_split = true;
|
||||
smart_split = false;
|
||||
smart_resizing = false;
|
||||
};
|
||||
|
||||
decoration = {
|
||||
rounding = 20;
|
||||
|
||||
blur = {
|
||||
enabled = true;
|
||||
xray = false;
|
||||
special = false;
|
||||
new_optimizations = true;
|
||||
ignore_opacity = true;
|
||||
size = 4;
|
||||
passes = 2;
|
||||
brightness = 1;
|
||||
noise = "0.01";
|
||||
contrast = 1;
|
||||
popups = true;
|
||||
popups_ignorealpha = "0.6";
|
||||
vibrancy = 0;
|
||||
};
|
||||
|
||||
shadow = {
|
||||
enabled = true;
|
||||
ignore_window = true;
|
||||
range = 20;
|
||||
offset = "0 2";
|
||||
render_power = 4;
|
||||
color = "rgba(0000002A)";
|
||||
};
|
||||
|
||||
active_opacity = "0.95";
|
||||
inactive_opacity = "0.5";
|
||||
fullscreen_opacity = 1;
|
||||
|
||||
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"
|
||||
];
|
||||
};
|
||||
|
||||
misc = {
|
||||
mouse_move_enables_dpms = true;
|
||||
key_press_enables_dpms = true;
|
||||
disable_splash_rendering = true;
|
||||
focus_on_activate = true;
|
||||
|
||||
# TODO: enable after rules.nix
|
||||
|
||||
# vfr = 1;
|
||||
# vrr = 1;
|
||||
animate_manual_resizes = false;
|
||||
animate_mouse_windowdragging = false;
|
||||
# enable_swallow = false;
|
||||
# swallow_regex = "(foot|kitty|allacritty|Alacritty)";
|
||||
|
||||
# disable_hyprland_logo = true;
|
||||
# force_default_wallpaper = 0;
|
||||
new_window_takes_over_fullscreen = 2;
|
||||
allow_session_lock_restore = true;
|
||||
|
||||
initial_workspace_tracking = false;
|
||||
};
|
||||
|
||||
plugin.hyprexpo = {
|
||||
columns = 3;
|
||||
gap_size = 5;
|
||||
bg_col = "rgb(000000)";
|
||||
workspace_method =
|
||||
"first 1"; # [center/first] [workspace] e.g. first 1 or center m+1
|
||||
|
||||
enable_gesture = false; # laptop touchpad, 4 fingers
|
||||
gesture_distance = 300; # how far is the "max"
|
||||
gesture_positive = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# wayland.windowManager.hyprland = {
|
||||
# enable = true;
|
||||
home.file.".config/hypr/scripts" = {
|
||||
source = ./scripts;
|
||||
recursive = true;
|
||||
};
|
||||
|
||||
# settings = {
|
||||
# exec = "hyprctl dispatch submap global";
|
||||
# submap = "global";
|
||||
# debug = { disable_logs = false; };
|
||||
# };
|
||||
# };
|
||||
|
||||
# imports = [
|
||||
# ./hyprland/env.nix
|
||||
# ./hyprland/execs.nix
|
||||
# ./hyprland/general.nix
|
||||
# ./hyprland/rules.nix
|
||||
# ./hyprland/colors.nix
|
||||
# ./hyprland/keybinds.nix # in process
|
||||
# ./hyprland/active.nix
|
||||
# ./hyprlock.nix # done
|
||||
# ./hypridle.nix # done
|
||||
# ];
|
||||
}
|
||||
|
||||
@@ -6,27 +6,29 @@
|
||||
suspend_cmd = "systemctl suspend || loginctl suspend";
|
||||
in {
|
||||
enable = true;
|
||||
general = {
|
||||
lock_cmd = lock_cmd;
|
||||
before_sleep_cmd = "loginctl lock-session";
|
||||
after_sleep_cmd = "hyprctl dispatch global quickshell:lockFocus";
|
||||
inhibit_sleep = 3;
|
||||
};
|
||||
settings = {
|
||||
general = {
|
||||
lock_cmd = lock_cmd;
|
||||
before_sleep_cmd = "loginctl lock-session";
|
||||
after_sleep_cmd = "hyprctl dispatch global quickshell:lockFocus";
|
||||
inhibit_sleep = 3;
|
||||
};
|
||||
|
||||
listener = [
|
||||
{
|
||||
timeout = 300; # 5 mins
|
||||
on-timeout = "loginctl lock-session";
|
||||
}
|
||||
{
|
||||
timeout = 600; # 10 mins
|
||||
on-timeout = "hyprctl dispatch dpms off";
|
||||
on-resume = "hyprctl dispatch dpms on";
|
||||
}
|
||||
{
|
||||
timeout = 900; # 15 mins
|
||||
on-timeout = suspend_cmd;
|
||||
}
|
||||
];
|
||||
listener = [
|
||||
{
|
||||
timeout = 300; # 5 mins
|
||||
on-timeout = "loginctl lock-session";
|
||||
}
|
||||
{
|
||||
timeout = 600; # 10 mins
|
||||
on-timeout = "hyprctl dispatch dpms off";
|
||||
on-resume = "hyprctl dispatch dpms on";
|
||||
}
|
||||
{
|
||||
timeout = 900; # 15 mins
|
||||
on-timeout = suspend_cmd;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,114 +0,0 @@
|
||||
# -- Missing --
|
||||
# Toggle cheatsheet
|
||||
# Clipboard history
|
||||
# Emoji
|
||||
# Toggle media controls ?
|
||||
# Change wallpaper
|
||||
# Restart hyprland and plugins
|
||||
# AI
|
||||
# Move from silent to normal workspace
|
||||
# ----
|
||||
|
||||
# -- Missing scripts --
|
||||
# switch_config.sh
|
||||
# hide_window.sh
|
||||
# workspace_action.sh
|
||||
# launch_first_available.sh
|
||||
# tesseract
|
||||
# ----
|
||||
|
||||
# -- To fix now --
|
||||
# add hyprshot
|
||||
# wl-clipboard
|
||||
# ----
|
||||
|
||||
bind = Super, Super_L, exec, pkill fuzzel || fuzzel # [hidden] Launcher
|
||||
|
||||
bindle=, XF86MonBrightnessUp, exec, brightnessctl s 5%+ # [hidden]
|
||||
bindle=, XF86MonBrightnessDown, exec, brightnessctl s 5%- # [hidden]
|
||||
bindle=, XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 2%+ # [hidden]
|
||||
bindle=, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%- # [hidden]
|
||||
bindl = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_SINK@ toggle # [hidden]
|
||||
|
||||
bindd = Super, M, Toggle power profile, exec, ~/.config/hypr/hyprland/scripts/switch_config.sh # [hidden] Toggle power profile
|
||||
bind = Super, H, exec, ~/.config/hypr/hyprland/scripts/hide_window.sh h # hide active window
|
||||
bind = Super, I, exec, ~/.config/hypr/hyprland/scripts/hide_window.sh u # show hide window
|
||||
|
||||
bind = Super, P, pseudo, # [hidden] dwindle
|
||||
bindd = Super+Shift, S, Screen snip, exec, hyprshot --freeze --clipboard-only --mode region --silent # Screen snip
|
||||
bindld = ,Print, Screenshot >> clipboard ,exec, hyprshot -m output
|
||||
bindd = Super+Shift, T, Character recognition,exec,hyprshot -m region --raw | tesseract stdin stdout # OCR
|
||||
|
||||
bindm = Super, mouse:272, movewindow # Move
|
||||
bindm = Super, mouse:274, movewindow # [hidden]
|
||||
bindm = Super, mouse:273, resizewindow # Resize
|
||||
#/# bind = Super, ←/↑/→/↓,, # Focus in direction
|
||||
bind = Super, Left, movefocus, l # [hidden]
|
||||
bind = Super, Right, movefocus, r # [hidden]
|
||||
bind = Super, Up, movefocus, u # [hidden]
|
||||
bind = Super, Down, movefocus, d # [hidden]
|
||||
#/# bind = Super+Shift, ←/↑/→/↓,, # Move in direction
|
||||
bind = Super+Shift, Left, movewindow, l # [hidden]
|
||||
bind = Super+Shift, Right, movewindow, r # [hidden]
|
||||
bind = Super+Shift, Up, movewindow, u # [hidden]
|
||||
bind = Super+Shift, Down, movewindow, d # [hidden]
|
||||
bind = Alt, F4, killactive, # [hidden] Close (Windows)
|
||||
bind = Super, Q, killactive, # Close
|
||||
bind = Super+Shift+Alt, Q, exec, hyprctl kill # Forcefully zap a window
|
||||
|
||||
#/# binde = Super, -/+,, # Adjust split ratio
|
||||
binde = Super, Minus, splitratio, -0.1
|
||||
binde = Super, Equal, splitratio, +0.1
|
||||
bind = Super+Alt, F, togglefloating,
|
||||
bind = Super, D, fullscreen, 1 # Maximize
|
||||
bind = Super, F, fullscreen, 0 # Fullscreen
|
||||
|
||||
#/# bind = Super+Alt, Hash,, # Send to workspace # (1, 2, 3,...)
|
||||
bind = Super+Alt, 1, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 1 # [hidden]
|
||||
bind = Super+Alt, 2, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 2 # [hidden]
|
||||
bind = Super+Alt, 3, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 3 # [hidden]
|
||||
bind = Super+Alt, 4, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 4 # [hidden]
|
||||
bind = Super+Alt, 5, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 5 # [hidden]
|
||||
bind = Super+Alt, 6, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 6 # [hidden]
|
||||
bind = Super+Alt, 7, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 7 # [hidden]
|
||||
bind = Super+Alt, 8, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 8 # [hidden]
|
||||
bind = Super+Alt, 9, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 9 # [hidden]
|
||||
bind = Super+Alt, 0, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 10 # [hidden]
|
||||
|
||||
bind = Super+Alt, S, movetoworkspacesilent, special # Send to scratchpad
|
||||
bind = Super, S, togglespecialworkspace, # Toggle scratchpad
|
||||
bind = Super, mouse:275, togglespecialworkspace, # [hidden]
|
||||
|
||||
#/# bind = Super, Hash,, # Focus workspace # (1, 2, 3,...)
|
||||
bind = Super, 1, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 1 # [hidden]
|
||||
bind = Super, 2, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 2 # [hidden]
|
||||
bind = Super, 3, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 3 # [hidden]
|
||||
bind = Super, 4, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 4 # [hidden]
|
||||
bind = Super, 5, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 5 # [hidden]
|
||||
bind = Super, 6, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 6 # [hidden]
|
||||
bind = Super, 7, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 7 # [hidden]
|
||||
bind = Super, 8, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 8 # [hidden]
|
||||
bind = Super, 9, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 9 # [hidden]
|
||||
bind = Super, 0, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 10 # [hidden]
|
||||
|
||||
#/# bind = Ctrl+Super, ←/→,, # Focus left/right
|
||||
bind = Ctrl+Super, Right, workspace, r+1 # [hidden]
|
||||
bind = Ctrl+Super, Left, workspace, r-1 # [hidden]
|
||||
|
||||
#/# bind = Ctrl+Super, ←/→,, # Focus left/right
|
||||
bind = Ctrl+Super, Right, workspace, r+1 # [hidden]
|
||||
bind = Ctrl+Super, Left, workspace, r-1 # [hidden]
|
||||
|
||||
bindd = Super, L, Lock, exec, loginctl lock-session # Lock
|
||||
|
||||
bindl= ,XF86AudioNext, exec, playerctl next || playerctl position `bc <<< "100 * $(playerctl metadata mpris:length) / 1000000 / 100"` # [hidden]
|
||||
bindl= ,XF86AudioPrev, exec, playerctl previous # [hidden]
|
||||
bindl= ,XF86AudioNext, exec, playerctl next || playerctl position `bc <<< "100 * $(playerctl metadata mpris:length) / 1000000 / 100"` # [hidden]
|
||||
bindl= ,XF86AudioPrev, exec, playerctl previous # [hidden]
|
||||
|
||||
bind = Super, Return, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "kitty" "foot" "alacritty" "wezterm" "konsole" "kgx" "uxterm" "xterm" # Terminal
|
||||
bind = Super, T, exec, Telegram
|
||||
bind = Super, E, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "dolphin" "nautilus" "nemo" "thunar" "kitty -1 fish -c yazi" # File manager
|
||||
bind = Super, W, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "google-chrome-stable" "zen" "firefox" "brave" "chromium" "microsoft-edge-stable" "opera" "librewolf" # Browser
|
||||
bind = 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" # Code editor
|
||||
bind = Ctrl+Shift, Escape, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "kitty -1 fish -c btop" # Task manager
|
||||
@@ -11,23 +11,14 @@
|
||||
# Move from silent to normal workspace
|
||||
# ----
|
||||
|
||||
# -- Missing scripts --
|
||||
# switch_config.sh
|
||||
# hide_window.sh
|
||||
# workspace_action.sh
|
||||
# launch_first_available.sh
|
||||
# ----
|
||||
|
||||
{
|
||||
home.packages = with pkgs; [ wl-clipboard hyprshot tesseract ];
|
||||
|
||||
wayland.windowManager.hyprland.settings = let super = "Super";
|
||||
in {
|
||||
bind = [
|
||||
"${super}, Super_L, exec, pkill fuzzel || fuzzel"
|
||||
|
||||
"${super}, H, exec, ~/.config/hypr/hyprland/scripts/hide_window.sh h"
|
||||
"${super}, I, exec, ~/.config/hypr/hyprland/scripts/hide_window.sh u"
|
||||
"${super}, H, exec, ~/.config/hypr/scripts/hide_window.sh h"
|
||||
"${super}, I, exec, ~/.config/hypr/scripts/hide_window.sh u"
|
||||
|
||||
"${super}, P, pseudo"
|
||||
"${super}, Q, killactive"
|
||||
@@ -43,22 +34,20 @@
|
||||
"${super}+Shift, Up, movewindow, u"
|
||||
"${super}+Shift, Down, movewindow, d"
|
||||
|
||||
"Alt, F4, killactive"
|
||||
|
||||
"${super}, D, fullscreen, 1"
|
||||
"${super}, F, fullscreen, 0"
|
||||
"${super}+Alt, F, togglefloating"
|
||||
|
||||
"${super}, 1, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 1"
|
||||
"${super}, 2, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 2"
|
||||
"${super}, 3, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 3"
|
||||
"${super}, 4, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 4"
|
||||
"${super}, 5, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 5"
|
||||
"${super}, 6, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 6"
|
||||
"${super}, 7, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 7"
|
||||
"${super}, 8, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 8"
|
||||
"${super}, 9, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 9"
|
||||
"${super}, 0, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 10"
|
||||
"${super}, 1, exec, ~/.config/hypr/scripts/workspace_action.sh workspace 1"
|
||||
"${super}, 2, exec, ~/.config/hypr/scripts/workspace_action.sh workspace 2"
|
||||
"${super}, 3, exec, ~/.config/hypr/scripts/workspace_action.sh workspace 3"
|
||||
"${super}, 4, exec, ~/.config/hypr/scripts/workspace_action.sh workspace 4"
|
||||
"${super}, 5, exec, ~/.config/hypr/scripts/workspace_action.sh workspace 5"
|
||||
"${super}, 6, exec, ~/.config/hypr/scripts/workspace_action.sh workspace 6"
|
||||
"${super}, 7, exec, ~/.config/hypr/scripts/workspace_action.sh workspace 7"
|
||||
"${super}, 8, exec, ~/.config/hypr/scripts/workspace_action.sh workspace 8"
|
||||
"${super}, 9, exec, ~/.config/hypr/scripts/workspace_action.sh workspace 9"
|
||||
"${super}, 0, exec, ~/.config/hypr/scripts/workspace_action.sh workspace 10"
|
||||
|
||||
"Ctrl+${super}, Right, workspace, r+1"
|
||||
"Ctrl+${super}, Left, workspace, r-1"
|
||||
@@ -66,23 +55,35 @@
|
||||
"${super}, L, exec, loginctl lock-session"
|
||||
|
||||
''
|
||||
${super}, Return, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "kitty" "foot" "alacritty" "wezterm" "konsole" "kgx" "uxterm" "xterm"''
|
||||
${super}, Return, exec, ~/.config/hypr/scripts/launch_first_available.sh "kitty" "foot" "alacritty" "wezterm" "konsole" "kgx" "uxterm" "xterm"''
|
||||
"${super}, T, exec, Telegram"
|
||||
''
|
||||
${super}, E, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "dolphin" "nautilus" "nemo" "thunar" "kitty -1 fish -c yazi"''
|
||||
${super}, E, exec, ~/.config/hypr/scripts/launch_first_available.sh "dolphin" "nautilus" "nemo" "thunar" "kitty -1 fish -c yazi"''
|
||||
''
|
||||
${super}, W, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "google-chrome-stable" "zen" "firefox" "brave" "chromium" "microsoft-edge-stable" "opera" "librewolf"''
|
||||
${super}, W, exec, ~/.config/hypr/scripts/launch_first_available.sh "google-chrome-stable" "zen" "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}, C, exec, ~/.config/hypr/scripts/launch_first_available.sh "code" "codium" "cursor" "zed" "zedit" "zeditor" "kate" "gnome-text-editor" "emacs" "command -v nvim && kitty -1 nvim"''
|
||||
|
||||
''
|
||||
Ctrl+Shift, Escape, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "kitty -1 fish -c btop"''
|
||||
Ctrl+Shift, Escape, exec, ~/.config/hypr/scripts/launch_first_available.sh "kitty -1 fish -c btop"''
|
||||
"${super}+Alt, 1, exec, ~/.config/hypr/scripts/workspace_action.sh movetoworkspacesilent 1"
|
||||
"${super}+Alt, 2, exec, ~/.config/hypr/scripts/workspace_action.sh movetoworkspacesilent 2"
|
||||
"${super}+Alt, 3, exec, ~/.config/hypr/scripts/workspace_action.sh movetoworkspacesilent 3"
|
||||
"${super}+Alt, 4, exec, ~/.config/hypr/scripts/workspace_action.sh movetoworkspacesilent 4"
|
||||
"${super}+Alt, 5, exec, ~/.config/hypr/scripts/workspace_action.sh movetoworkspacesilent 5"
|
||||
"${super}+Alt, 6, exec, ~/.config/hypr/scripts/workspace_action.sh movetoworkspacesilent 6"
|
||||
"${super}+Alt, 7, exec, ~/.config/hypr/scripts/workspace_action.sh movetoworkspacesilent 7"
|
||||
"${super}+Alt, 8, exec, ~/.config/hypr/scripts/workspace_action.sh movetoworkspacesilent 8"
|
||||
"${super}+Alt, 9, exec, ~/.config/hypr/scripts/workspace_action.sh movetoworkspacesilent 9"
|
||||
"${super}+Alt, 0, exec, ~/.config/hypr/scripts/workspace_action.sh movetoworkspacesilent 10"
|
||||
"${super}+Alt, S, movetoworkspacesilent, special"
|
||||
"${super}, S, togglespecialworkspace"
|
||||
];
|
||||
|
||||
bindd = [
|
||||
"${super}, M, exec, ~/.config/hypr/hyprland/scripts/switch_config.sh"
|
||||
"${super}+Shift, S, exec, hyprshot --freeze --clipboard-only --mode region --silent"
|
||||
"${super}+Shift, T, exec, hyprshot -m region --raw | tesseract stdin stdout"
|
||||
"${super}, M, Toggle power profile,exec, ~/.config/hypr/scripts/switch_config.sh"
|
||||
"${super}+Shift, S, Screenshot, exec, hyprshot --freeze --clipboard-only --mode region --silent"
|
||||
"${super}+Shift, T, OCR, exec, hyprshot -m region --raw | tesseract stdin stdout"
|
||||
];
|
||||
|
||||
bindm = [
|
||||
@@ -111,21 +112,5 @@
|
||||
"${super}, Minus, splitratio, -0.1"
|
||||
"${super}, Equal, splitratio, +0.1"
|
||||
];
|
||||
|
||||
# Move window to workspace
|
||||
bindwsMove = [
|
||||
"${super}+Alt, 1, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 1"
|
||||
"${super}+Alt, 2, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 2"
|
||||
"${super}+Alt, 3, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 3"
|
||||
"${super}+Alt, 4, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 4"
|
||||
"${super}+Alt, 5, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 5"
|
||||
"${super}+Alt, 6, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 6"
|
||||
"${super}+Alt, 7, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 7"
|
||||
"${super}+Alt, 8, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 8"
|
||||
"${super}+Alt, 9, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 9"
|
||||
"${super}+Alt, 0, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 10"
|
||||
"${super}+Alt, S, movetoworkspacesilent, special"
|
||||
"${super}, S, togglespecialworkspace"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -0,0 +1,160 @@
|
||||
{
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
# Window rules
|
||||
windowrule = [
|
||||
"opacity 0.97 override 0.85 override 1 override, class:^(firefox|Code|obsidian|zen)$"
|
||||
];
|
||||
|
||||
windowrulev2 = [
|
||||
# Basic rules
|
||||
"noblur,class:^()$,title:^()$"
|
||||
"idleinhibit fullscreen, class:^(*)$"
|
||||
"idleinhibit fullscreen, title:^(*)$"
|
||||
"idleinhibit fullscreen, fullscreen:1"
|
||||
|
||||
# Floating windows
|
||||
"float, class:^(blueberry.py)$"
|
||||
"float, class:^(steam)$"
|
||||
"float, class:^(guifetch)$" # FlafyDev/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 rules
|
||||
"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)(.*)$"
|
||||
|
||||
# Dialog windows - float+center
|
||||
"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 rules
|
||||
workspace = [ "special:special, gapsout:30" ];
|
||||
|
||||
# Layer rules
|
||||
layerrule = [
|
||||
# Basic layer rules
|
||||
"noanim, walker"
|
||||
"noanim, selection"
|
||||
"noanim, overview"
|
||||
"noanim, anyrun"
|
||||
"noanim, indicator.*"
|
||||
"noanim, osk"
|
||||
"noanim, hyprpicker"
|
||||
"noanim, noanim"
|
||||
|
||||
# Blur effects
|
||||
"blur, gtk-layer-shell"
|
||||
"ignorezero, gtk-layer-shell"
|
||||
"blur, launcher"
|
||||
"ignorealpha 0.5, launcher"
|
||||
"blur, notifications"
|
||||
"ignorealpha 0.69, notifications"
|
||||
"blur, logout_dialog" # wlogout
|
||||
|
||||
# AGS rules
|
||||
"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, osk[0-9]*"
|
||||
"ignorealpha 0.6, osk[0-9]*"
|
||||
|
||||
# Quickshell rules
|
||||
"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"
|
||||
|
||||
# Launchers need to be FAST
|
||||
"noanim, quickshell:overview"
|
||||
"noanim, gtk4-layer-shell"
|
||||
|
||||
# outfoxxed's stuff
|
||||
"blur, shell:bar"
|
||||
"ignorezero, shell:bar"
|
||||
"blur, shell:notifications"
|
||||
"ignorealpha 0.1, shell:notifications"
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
{
|
||||
programs.hyprlock = {
|
||||
nable = true;
|
||||
enable = true;
|
||||
extraConfig = ''
|
||||
$text_color = rgba(ffdad9FF)
|
||||
$entry_background_color = rgba(40000a11)
|
||||
@@ -158,7 +158,7 @@
|
||||
|
||||
label { # Status
|
||||
monitor =
|
||||
text = cmd[update:5000] ${HOME}/.config/hypr/hyprlock/status.sh
|
||||
text = cmd[update:5000] ${config.home.homeDirectory}/.config/hypr/scripts/hyprlock-status.sh
|
||||
color = $text_color
|
||||
|
||||
shadow_passes = 3
|
||||
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
#!/bin/sh
|
||||
|
||||
stack_file="/tmp/hide_window_pid_stack.txt"
|
||||
|
||||
function hide_window(){
|
||||
pid=$(hyprctl activewindow -j | jq '.pid')
|
||||
hyprctl dispatch movetoworkspacesilent 88,pid:$pid
|
||||
echo $pid >> $stack_file
|
||||
}
|
||||
|
||||
function show_window(){
|
||||
pid=$(tail -1 $stack_file && sed -i '$d' $stack_file)
|
||||
[ -z $pid ] && exit
|
||||
|
||||
current_workspace=$(hyprctl activeworkspace -j | jq '.id')
|
||||
hyprctl dispatch movetoworkspacesilent $current_workspace,pid:$pid
|
||||
}
|
||||
|
||||
|
||||
if [ ! -z $1 ]
|
||||
then
|
||||
if [ "$1" == "h" ]
|
||||
then
|
||||
hide_window
|
||||
else
|
||||
show_window
|
||||
fi
|
||||
fi
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
############ Variables ############
|
||||
enable_battery=false
|
||||
battery_charging=false
|
||||
|
||||
####### Check availability ########
|
||||
for battery in /sys/class/power_supply/*BAT*; do
|
||||
if [[ -f "$battery/uevent" ]]; then
|
||||
enable_battery=true
|
||||
if [[ $(cat /sys/class/power_supply/*/status | head -1) == "Charging" ]]; then
|
||||
battery_charging=true
|
||||
fi
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
############# Output #############
|
||||
if [[ $enable_battery == true ]]; then
|
||||
if [[ $battery_charging == true ]]; then
|
||||
echo -n "(+) "
|
||||
fi
|
||||
echo -n "$(cat /sys/class/power_supply/*/capacity | head -1)"%
|
||||
if [[ $battery_charging == false ]]; then
|
||||
echo -n " remaining"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo ''
|
||||
@@ -0,0 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
for cmd in "$@"; do
|
||||
eval "command -v ${cmd%% *}" >/dev/null 2>&1 || continue
|
||||
eval "$cmd" &
|
||||
exit
|
||||
done
|
||||
exit 1
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
#!/bin/bash
|
||||
|
||||
CONFIG_DIR="$HOME/.config/hypr/hyprland/configs"
|
||||
CURRENT_CONFIG_FILE="$HOME/.config/hypr/hyprland/active.conf"
|
||||
|
||||
# List of available configs in order to cycle through
|
||||
CONFIGS=("powersave" "balanced" "performance")
|
||||
|
||||
# Read current config or set default
|
||||
if [[ -f "$CURRENT_CONFIG_FILE" ]]; then
|
||||
CURRENT_CONFIG=$(grep -oP '^#\s*\K\w+' "$CURRENT_CONFIG_FILE" | head -n1)
|
||||
else
|
||||
CURRENT_CONFIG="${CONFIGS[0]}"
|
||||
fi
|
||||
|
||||
# Find current config index
|
||||
INDEX=0
|
||||
for i in "${!CONFIGS[@]}"; do
|
||||
if [[ "${CONFIGS[$i]}" = "$CURRENT_CONFIG" ]]; then
|
||||
INDEX=$i
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
# Calculate next config index (with wrap-around)
|
||||
NEXT_INDEX=$(( (INDEX + 1) % ${#CONFIGS[@]} ))
|
||||
NEXT_CONFIG="${CONFIGS[$NEXT_INDEX]}"
|
||||
|
||||
# Update current config file
|
||||
printf "# ${NEXT_CONFIG}\n" > "$CURRENT_CONFIG_FILE"
|
||||
printf "# AUTO-GENERATED FILE\n" >> "$CURRENT_CONFIG_FILE"
|
||||
cat "${CONFIG_DIR}/${NEXT_CONFIG}.conf" >> "$CURRENT_CONFIG_FILE"
|
||||
|
||||
if [[ "$NEXT_CONFIG" == "powersave" ]]; then
|
||||
sudo auto-cpufreq --force powersave
|
||||
elif [[ "$NEXT_CONFIG" == "performance" ]]; then
|
||||
sudo auto-cpufreq --force performance
|
||||
elif [[ "$NEXT_CONFIG" == "balanced" ]]; then
|
||||
sudo auto-cpufreq --force reset
|
||||
else
|
||||
notify-send -u critical "Unknown config: $NEXT_CONFIG"
|
||||
fi
|
||||
|
||||
# Reload Hyprland
|
||||
hyprctl reload
|
||||
|
||||
# Notification
|
||||
notify-send -t 3000 "Hyprland Config" "Switched to ${NEXT_CONFIG} config"
|
||||
@@ -0,0 +1,2 @@
|
||||
#!/usr/bin/env bash
|
||||
hyprctl dispatch "$1" $(((($(hyprctl activeworkspace -j | jq -r .id) - 1) / 10) * 10 + $2))
|
||||
@@ -10,6 +10,7 @@
|
||||
obsidian
|
||||
lmstudio
|
||||
plantuml
|
||||
# amnezia-vpn
|
||||
];
|
||||
|
||||
# do i really need it?
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
ignoreAllDups = true;
|
||||
ignoreDups = true;
|
||||
saveNoDups = true;
|
||||
share = false;
|
||||
};
|
||||
|
||||
plugins = with pkgs; [
|
||||
|
||||
Reference in New Issue
Block a user