mirror of
https://github.com/szymon-jozef/amazing-dotfiles.git
synced 2026-09-07 12:10:45 +02:00
Compare commits
6 Commits
3fd48c0e3b
...
dcb1e8024b
| Author | SHA1 | Date | |
|---|---|---|---|
| dcb1e8024b | |||
| 97bc84ca2e | |||
| e5e1663234 | |||
| f6f967f955 | |||
| 3608a5968c | |||
| cf87e02dd1 |
12
flake.lock
generated
12
flake.lock
generated
@@ -66,11 +66,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1777218285,
|
||||
"narHash": "sha256-d2FY71SBVKVbT1PsfXA71jz0vD520NijS4lrcvUMeGk=",
|
||||
"lastModified": 1777349711,
|
||||
"narHash": "sha256-PGKgo2dO6fK603QGI+DWXdKmS09pbJjjTxwRHdhkGZA=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "c55c498c9aa205b16cca78b57a7275625726d532",
|
||||
"rev": "c1140540536d483e2730320100f6835d62c94fdf",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -138,11 +138,11 @@
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1777218776,
|
||||
"narHash": "sha256-8juiX5HT2Bp4+qXLCFNRdIL10X8ySiAbgl/QhJDt+24=",
|
||||
"lastModified": 1777236345,
|
||||
"narHash": "sha256-ALOqlq7bE30lsX4rA76hXeQ2aLLEpb44hS+D1+jWS88=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixvim",
|
||||
"rev": "d404af65e951f648272d178a34cbb2292fb93689",
|
||||
"rev": "a67d9cd6ff725a763afe88727aac73208ded3bf4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
||||
@@ -1,480 +1,13 @@
|
||||
{ ... }:
|
||||
{
|
||||
lib,
|
||||
userConfig,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
exe = pkg: bin: if userConfig.isNixOS then "${pkg}/bin/${bin}" else "/usr/bin/${bin}";
|
||||
|
||||
jq = exe pkgs.jq "jq";
|
||||
grim = exe pkgs.grim "grim";
|
||||
satty = exe pkgs.satty "satty";
|
||||
wl_copy = exe pkgs.wl-clipboard "wl-copy";
|
||||
notify_send = exe pkgs.libnotify "notify-send";
|
||||
xdg-desktop-portal-hyprland =
|
||||
if userConfig.isNixOS then
|
||||
"${pkgs.xdg-desktop-portal-hyprland}/libexec/xdg-desktop-portal-hyprland"
|
||||
else
|
||||
"/usr/lib/xdg-desktop-portal-hyprland";
|
||||
hyprlock = exe pkgs.hyprlock "hyprlock";
|
||||
playerctl = exe pkgs.playerctl "playerctl";
|
||||
in
|
||||
{
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
package =
|
||||
if userConfig.isNixOS then
|
||||
# inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland
|
||||
pkgs.hyprland
|
||||
else
|
||||
null;
|
||||
#portalPackage = lib.mkIf (userConfig.isNixOS
|
||||
#) inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
|
||||
xwayland.enable = true;
|
||||
|
||||
settings = {
|
||||
"$mainMod" = "SUPER";
|
||||
"$terminal" = "uwsm app -- kitty";
|
||||
"$menu" = "hyprlauncher";
|
||||
"$music_player" = if userConfig.isNixOS then "spotify" else "flatpak run com.spotify.Client";
|
||||
"$notes" = "obsidian";
|
||||
"$browser" = if userConfig.isNixOS then "zen-beta" else "zen-browser"; # beta on nixos
|
||||
"$openrgb_color" = "09ce30";
|
||||
|
||||
env = [
|
||||
"XCURSOR_SIZE, 32"
|
||||
"HYPRCURSOR_SIZE, 32"
|
||||
"HYPRCURSOR_THEME, theme_phinger-cursors-light"
|
||||
"XDG_CURRENT_DESKTOP,Hyprland"
|
||||
];
|
||||
|
||||
general = {
|
||||
gaps_in = 4;
|
||||
gaps_out = 6;
|
||||
border_size = 4;
|
||||
"col.active_border" = "$blue $sky";
|
||||
"col.inactive_border" = "$overlay1";
|
||||
resize_on_border = false;
|
||||
allow_tearing = false;
|
||||
layout = "scrolling";
|
||||
};
|
||||
|
||||
animations = {
|
||||
enabled = userConfig.animations;
|
||||
bezier = [
|
||||
"easeOutQuint,0.23,1,0.32,1"
|
||||
"easeInOutCubic,0.65,0.05,0.36,1"
|
||||
"linear,0,0,1,1"
|
||||
"almostLinear,0.5,0.5,0.75,1.0"
|
||||
"quick,0.15,0,0.1,1"
|
||||
];
|
||||
animation = [
|
||||
"global, 1, 7, default"
|
||||
"border, 1, 3.39, easeOutQuint"
|
||||
"windows, 1, 2.79, easeOutQuint"
|
||||
"windowsIn, 1, 2.1, easeOutQuint, popin 87%"
|
||||
"windowsOut, 1, 1, linear, popin 87%"
|
||||
"fadeIn, 1, 1.4, almostLinear"
|
||||
"fadeOut, 1, 1.2, almostLinear"
|
||||
"fade, 1, 3.03, quick"
|
||||
"layers, 1, 2, easeOutQuint"
|
||||
"layersIn, 1, 2, easeOutQuint, fade"
|
||||
"layersOut, 1, 1, linear, fade"
|
||||
"fadeLayersIn, 1, 1.4, almostLinear"
|
||||
"fadeLayersOut, 1, 1.1, almostLinear"
|
||||
"workspaces, 1, 1.4, quick, slidevert"
|
||||
"workspacesIn, 1, 0.5, quick, slidevert"
|
||||
"workspacesOut, 1, 0.5, quick, slidevert"
|
||||
];
|
||||
};
|
||||
|
||||
decoration = {
|
||||
rounding = 1;
|
||||
rounding_power = 2;
|
||||
active_opacity = 1.0;
|
||||
inactive_opacity = 1.0;
|
||||
shadow = {
|
||||
enabled = true;
|
||||
range = 1;
|
||||
render_power = 1;
|
||||
color = "$overlay0";
|
||||
};
|
||||
blur = {
|
||||
enabled = true;
|
||||
size = 1;
|
||||
passes = 1;
|
||||
vibrancy = 0.1696;
|
||||
};
|
||||
};
|
||||
|
||||
dwindle = {
|
||||
preserve_split = true;
|
||||
};
|
||||
|
||||
master = {
|
||||
new_status = "slave";
|
||||
allow_small_split = true;
|
||||
orientation = "left";
|
||||
};
|
||||
|
||||
ecosystem = {
|
||||
enforce_permissions = true;
|
||||
};
|
||||
|
||||
permission = [
|
||||
"^${grim}$, screencopy, allow"
|
||||
"^${hyprlock}$, screencopy, allow"
|
||||
"^${xdg-desktop-portal-hyprland}$, screencopy, allow"
|
||||
];
|
||||
|
||||
input = {
|
||||
kb_layout = "pl";
|
||||
kb_variant = "";
|
||||
kb_model = "";
|
||||
kb_options = "caps:escape_shifted_capslock";
|
||||
kb_rules = "";
|
||||
follow_mouse = 1;
|
||||
left_handed = false;
|
||||
sensitivity = -0.5;
|
||||
touchpad = {
|
||||
natural_scroll = true;
|
||||
};
|
||||
};
|
||||
|
||||
device = {
|
||||
name = "msft0001:01-06cb:7f28-touchpad";
|
||||
sensitivity = 0;
|
||||
};
|
||||
|
||||
cursor = {
|
||||
no_hardware_cursors = true;
|
||||
inactive_timeout = 5;
|
||||
warp_on_change_workspace = 1;
|
||||
zoom_factor = 1.0;
|
||||
hide_on_key_press = 1;
|
||||
};
|
||||
|
||||
misc = {
|
||||
force_default_wallpaper = 0;
|
||||
disable_hyprland_logo = true;
|
||||
middle_click_paste = false;
|
||||
};
|
||||
|
||||
xwayland = {
|
||||
force_zero_scaling = 1;
|
||||
};
|
||||
|
||||
quirks = {
|
||||
prefer_hdr = 1;
|
||||
};
|
||||
|
||||
"exec-once" = [
|
||||
"wl-paste --type text --watch cliphist store"
|
||||
"wl-paste --type image --watch cliphist store"
|
||||
"uwsm app -- ${userConfig.statusBar}"
|
||||
"awww-daemon"
|
||||
"openrgb -c $openrgb_color"
|
||||
];
|
||||
|
||||
workspace = [
|
||||
"1, monitor:DP-2"
|
||||
"1, layout: dwindle"
|
||||
"2, monitor:DP-1"
|
||||
"3, monitor:DP-1"
|
||||
"4, monitor:DP-1"
|
||||
"5, monitor:DP-1"
|
||||
"6, monitor:DP-1"
|
||||
"7, monitor:HDMI-A-2"
|
||||
"9, monitor:DP-2"
|
||||
"10, monitor:DP-2"
|
||||
"w[tv1], gapsout:0, gapsin:0"
|
||||
"f[1], gapsout:0, gapsin:0"
|
||||
];
|
||||
|
||||
windowrule = [
|
||||
# smart gaps
|
||||
"border_size 0, match:float 0, match:workspace w[tv1]"
|
||||
"rounding 0, match:float 0, match:workspace w[tv1]"
|
||||
"border_size 0, match:float 0, match:workspace f[1]"
|
||||
"rounding 0, match:float 0, match:workspace f[1]"
|
||||
# general rules
|
||||
"match:class ^(signal)$, workspace 1"
|
||||
"match:class ^(vesktop)$, workspace 1 silent"
|
||||
"match:class ^(chrome-facebook.com__-Default)$, workspace 1"
|
||||
"match:class ^(zen)$, workspace 2"
|
||||
"match:class ^(zen-beta)$, workspace 2"
|
||||
"match:class ^(com.github.IsmaelMartinez.teams_for_linux)$, workspace 2"
|
||||
"match:class ^(FreeTube)$, workspace 2"
|
||||
"match:class ^(brave-x.com__-Default)$, workspace 2"
|
||||
"match:class ^(chrome-www.inoreader.com__all_articles-Default)$, workspace 2"
|
||||
"match:class ^(chrome-mail.proton.me__u_0_inbox.com-Default)$, workspace 2"
|
||||
"match:class ^(chrome-app.tuta.com__-Default)$, workspace 2"
|
||||
"match:class ^(steam)$, workspace 3 silent"
|
||||
"match:class ^(heroic)$, workspace 3"
|
||||
"match:class ^(net.lutris.Lutris)$, workspace 3"
|
||||
"match:class ^(rpcs3)$, workspace 3"
|
||||
"match:class ^(winboat)$, workspace 5"
|
||||
"match:class ^(qemu)$, workspace 5"
|
||||
"match:class ^(obsidian)$, workspace 6"
|
||||
"match:class ^(gimp)$, workspace 8"
|
||||
"match:class .*potify, workspace 9 silent"
|
||||
"match:class ^(com.obsproject.Studio)$, workspace 10"
|
||||
];
|
||||
|
||||
bind =
|
||||
# hyprlang
|
||||
[
|
||||
# background
|
||||
"$mainMod, V, exec, cliphist list | hyprlauncher -m | cliphist decode | wl-copy"
|
||||
"$mainMod ALT_L, V, exec, cliphist wipe && notify-send \"Clipboard\" \"Clipboard cleared!\""
|
||||
# power management
|
||||
"$mainMod L_SHIFT ctrl, l, exec, hyprlock"
|
||||
"$mainMod L_SHIFT ctrl, r, exec, openrgb -c black && systemctl reboot"
|
||||
"$mainMod L_SHIFT ctrl, p, exec, openrgb -c black && systemctl poweroff"
|
||||
"$mainMod L_SHIFT ctrl, s, exec, openrgb -c black && pidof hyprlock || sleep 1 && systemctl sleep"
|
||||
"$mainMod L_SHIFT ctrl, m, exec, uwsm stop"
|
||||
# zoom
|
||||
"$mainMod alt, 0, exec, hyprctl -q keyword cursor:zoom_factor 1"
|
||||
# focus management
|
||||
"$mainMod, h, movefocus, l"
|
||||
"$mainMod, l, movefocus, r"
|
||||
"$mainMod, k, movefocus, u"
|
||||
"$mainMod, j, movefocus, d"
|
||||
"$mainMod, mouse_down, workspace, e+1"
|
||||
"$mainMod, mouse_up, workspace, e-1"
|
||||
"$mainMod L_SHIFT, right, exec, hyprctl dispatch movecurrentworkspacetomonitor +1"
|
||||
"$mainMod L_SHIFT, left, exec, hyprctl dispatch movecurrentworkspacetomonitor -1"
|
||||
# workspace management
|
||||
"$mainMod, 1, workspace, 1"
|
||||
"$mainMod, 2, workspace, 2"
|
||||
"$mainMod, 3, workspace, 3"
|
||||
"$mainMod, 4, workspace, 4"
|
||||
"$mainMod, 5, workspace, 5"
|
||||
"$mainMod, 6, workspace, 6"
|
||||
"$mainMod, 7, workspace, 7"
|
||||
"$mainMod, 8, workspace, 8"
|
||||
"$mainMod, 9, workspace, 9"
|
||||
"$mainMod, 0, workspace, 10"
|
||||
# window management
|
||||
"$mainMod SHIFT, 1, movetoworkspace, 1"
|
||||
"$mainMod SHIFT, 2, movetoworkspace, 2"
|
||||
"$mainMod SHIFT, 3, movetoworkspace, 3"
|
||||
"$mainMod SHIFT, 4, movetoworkspace, 4"
|
||||
"$mainMod SHIFT, 5, movetoworkspace, 5"
|
||||
"$mainMod SHIFT, 6, movetoworkspace, 6"
|
||||
"$mainMod SHIFT, 7, movetoworkspace, 7"
|
||||
"$mainMod SHIFT, 8, movetoworkspace, 8"
|
||||
"$mainMod SHIFT, 9, movetoworkspace, 9"
|
||||
"$mainMod SHIFT, 0, movetoworkspace, 10"
|
||||
# special workspace
|
||||
"$mainMod, TAB, togglespecialworkspace, magic"
|
||||
"$mainMod SHIFT, TAB, movetoworkspace, special:magic"
|
||||
# layout
|
||||
"$mainMod, S, layoutmsg, swapwithmaster"
|
||||
"$mainMod, n, layoutmsg, swapnext"
|
||||
"$mainMod, p, layoutmsg, swapprev"
|
||||
# apps
|
||||
"$mainMod, M, exec, [float] waypaper"
|
||||
"$mainMod, RETURN, exec, [workspace 4] $terminal"
|
||||
"$mainMod CONTROL_L, RETURN, exec, $terminal"
|
||||
"$mainMod, space , exec, $menu"
|
||||
"$mainMod ALT_L, c, exec, openrgb -c $openrgb_color"
|
||||
"$mainMod Control_L, s, exec,[workspace 1] signal-desktop --password-store=\"kwallet6\""
|
||||
"$mainMod Control_L, s, focuswindow, class:^(signal)$"
|
||||
"$mainMod Control_L, s, focuswindow, title:^(signal)$"
|
||||
"$mainMod Control_L, v, sendshortcut, ctrl, k, class:^(vesktop)$"
|
||||
"$mainMod Control_L, v, exec, uwsm app -- vesktop"
|
||||
"$mainMod Control_L, v, focuswindow, class:^(vesktop)$"
|
||||
"$mainMod Control_L, g, exec, uwsm app -- steam"
|
||||
"$mainMod Control_L, g, focuswindow, class:^(steam)$"
|
||||
"$mainMod Control_L, b, exec, uwsm app -- $browser"
|
||||
"$mainMod Control_L, b, focuswindow, class:^(zen)$"
|
||||
"$mainMod Control_L, n, exec, [workspace 6] uwsm app -- $notes"
|
||||
"$mainMod Control_L, n, focuswindow, class:^(obsidian)$"
|
||||
"$mainMod Control_L, m, exec, [workspace 9] uwsm app -- $music_player"
|
||||
"$mainMod Control_L, f, exec, uwsm app -- freetube"
|
||||
"$mainMod Control_L, f, focuswindow, class:^(freetube)$"
|
||||
"$mainMod Control_L, x, exec, uwsm app -- ~/.nix-profile/share/applications/x.desktop"
|
||||
"$mainMod Control_L, x, focuswindow, class:^(chrome-x.com__-Default)$"
|
||||
"$mainMod CONTROL_L L_SHIFT, B, exec, killall ashell && uwsm app -- ashell"
|
||||
];
|
||||
|
||||
binde = [
|
||||
"$mainMod alt, equal, exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor | awk '/^float.*/ {print $2 * 1.1}')"
|
||||
"$mainMod alt, minus, exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor | awk '/^float.*/ {print $2 * 0.9}')"
|
||||
"$mainMod L_SHIFT, l, resizeactive, 10 0"
|
||||
"$mainMod L_SHIFT, h, resizeactive, -10 0"
|
||||
"$mainMod L_SHIFT, k, resizeactive, 0 -10"
|
||||
"$mainMod L_SHIFT, j, resizeactive, 0 10"
|
||||
];
|
||||
|
||||
bindel = [
|
||||
",XF86MonBrightnessDown, exec, hyprctl hyprsunset gamma -10"
|
||||
",XF86MonBrightnessUp, exec, hyprctl hyprsunset gamma +10"
|
||||
", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ && ~/.local/bin/wp-vol.sh && paplay /usr/share/sounds/freedesktop/stereo/bell.oga"
|
||||
", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- && ~/.local/bin/wp-vol.sh && paplay /usr/share/sounds/freedesktop/stereo/bell.oga"
|
||||
", XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle"
|
||||
];
|
||||
|
||||
bindt = [
|
||||
", PRINT, exec, ${pkgs.writeShellScript "screenshot-region" ''
|
||||
MONITOR=$(hyprctl monitors -j | ${jq} -r '.[] | select(.focused == true) | .name')
|
||||
${grim} -o "$MONITOR" - | ${satty} -f -
|
||||
''}"
|
||||
|
||||
"$mainMod, PRINT, exec, ${pkgs.writeShellScript "screenshot-fullscreen" ''
|
||||
target_path="$HOME/${userConfig.pathConfig.screenshot}/$(date +'%d-%m-%Y_%H-%M-%S').png"
|
||||
mkdir -p "$(dirname "$target_path")"
|
||||
|
||||
MONITOR=$(hyprctl monitors -j | ${jq} -r '.[] | select(.focused == true) | .name')
|
||||
|
||||
${grim} -o "$MONITOR" "$target_path"
|
||||
${wl_copy} < "$target_path"
|
||||
${notify_send} -i "$target_path" -u low -a "Screenshot" "Screenshot fullscreen" "Saved and copied"
|
||||
''}"
|
||||
|
||||
"alt_l, PRINT, exec, ${pkgs.writeShellScript "screenshot-window" ''
|
||||
target_path="$HOME/${userConfig.pathConfig.screenshot}/$(date +'%d-%m-%Y_%H-%M-%S').png"
|
||||
mkdir -p "$(dirname "$target_path")"
|
||||
|
||||
GEOMETRY=$(hyprctl activewindow -j | ${jq} -r '"\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"')
|
||||
|
||||
${grim} -g "$GEOMETRY" "$target_path"
|
||||
${wl_copy} < "$target_path"
|
||||
${notify_send} -i "$target_path" -u low -a "Screenshot" "Screenshot window" "Saved and copied"
|
||||
''}"
|
||||
|
||||
", PAUSE, exec, ${playerctl} play-pause"
|
||||
"$mainMod, PAUSE, exec, ${playerctl} play-pause --player spotify"
|
||||
];
|
||||
|
||||
bindm = [
|
||||
"$mainMod, mouse:272, movewindow"
|
||||
"$mainMod, mouse:273, resizewindow"
|
||||
];
|
||||
|
||||
bindd = [
|
||||
"$mainMod, F, Make app fullscreen, fullscreen"
|
||||
"$mainMod, T, Toggle floating, togglefloating"
|
||||
"$mainMod, Q, Kill active window, killactive"
|
||||
];
|
||||
};
|
||||
|
||||
extraConfig =
|
||||
#hyprlang
|
||||
''
|
||||
windowrule {
|
||||
name = pavucontrol-float
|
||||
match:class = ^(org.pulseaudio.pavucontrol)$
|
||||
float = 1
|
||||
size = 80% 60%
|
||||
stay_focused = 1
|
||||
center = 1
|
||||
pin = 1
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = share-picker-float
|
||||
match:class = ^(hyprland-share-picker)$
|
||||
float = 1
|
||||
center = 1
|
||||
pin = 1
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = steam-friends-list
|
||||
match:title = ^(Lista znajomych)$
|
||||
float = 1
|
||||
center = 1
|
||||
size = 40% 60%
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = vesktop-dont-focus-pls
|
||||
match:class = ^(vesktop)$
|
||||
no_initial_focus = 1
|
||||
focus_on_activate = 0
|
||||
render_unfocused = 1
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = xdg-desktop-portal-gtk
|
||||
match:class = ^(xdg-desktop-portal-gtk)$
|
||||
float = 1
|
||||
center = 1
|
||||
size = 55% 50%
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = picture-in-picture
|
||||
match:title = ^(Obraz w obrazie)$
|
||||
pseudo = 1
|
||||
no_initial_focus = 1
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = login-google-zen
|
||||
match:title = ^(Logowanie – Konta Google — Zen Browser)$
|
||||
float = 1
|
||||
center = 1
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = prism-launcher
|
||||
match:class = ^(org.prismlauncher.PrismLauncher)$
|
||||
workspace = 3
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = gamescope
|
||||
match:class = ^(gamescope)$
|
||||
workspace = 3
|
||||
}
|
||||
|
||||
monitorv2 {
|
||||
output = DP-1
|
||||
mode = 2560x1440@180.06
|
||||
position = 0x0
|
||||
scale = 1
|
||||
vrr = 1
|
||||
supports_wide_color = 1
|
||||
bitdepth = 10
|
||||
sdr_min_luminance = 0.005
|
||||
sdr_max_luminance = 220
|
||||
cm = hdr
|
||||
supports_hdr = 1
|
||||
}
|
||||
|
||||
monitorv2 {
|
||||
output = DP-2
|
||||
mode = 1920x1080@144
|
||||
position = auto-left
|
||||
vrr = 1
|
||||
scale = 1.0
|
||||
}
|
||||
|
||||
monitorv2 {
|
||||
output = HDMI-A-2
|
||||
mode = highres
|
||||
position = auto-up
|
||||
scale = 1
|
||||
}
|
||||
|
||||
# for laptop
|
||||
monitorv2 {
|
||||
output = eDP-1
|
||||
mode = highres
|
||||
position = 0x0
|
||||
scale = 1
|
||||
}
|
||||
|
||||
monitorv2 {
|
||||
output =
|
||||
position = auto-right
|
||||
scale = 1
|
||||
}
|
||||
'';
|
||||
};
|
||||
imports = [
|
||||
./hyprland/general.nix
|
||||
./hyprland/looks.nix
|
||||
./hyprland/layouts.nix
|
||||
./hyprland/hardware.nix
|
||||
./hyprland/apps.nix
|
||||
./hyprland/workspaces.nix
|
||||
./hyprland/env.nix
|
||||
./hyprland/autostart.nix
|
||||
];
|
||||
}
|
||||
|
||||
10
modules/hypr/hyprland/apps.nix
Normal file
10
modules/hypr/hyprland/apps.nix
Normal file
@@ -0,0 +1,10 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./apps/communicators.nix
|
||||
./apps/browser.nix
|
||||
./apps/games.nix
|
||||
./apps/misc.nix
|
||||
];
|
||||
}
|
||||
47
modules/hypr/hyprland/apps/browser.nix
Normal file
47
modules/hypr/hyprland/apps/browser.nix
Normal file
@@ -0,0 +1,47 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
wayland.windowManager.hyprland = {
|
||||
settings = {
|
||||
windowrule = [
|
||||
"match:class ^(chrome-facebook.com__-Default)$, workspace 1"
|
||||
"match:class ^(zen)$, workspace 2"
|
||||
"match:class ^(zen-beta)$, workspace 2"
|
||||
"match:class ^(com.github.IsmaelMartinez.teams_for_linux)$, workspace 2"
|
||||
"match:class ^(FreeTube)$, workspace 2"
|
||||
"match:class ^(brave-x.com__-Default)$, workspace 2"
|
||||
"match:class ^(chrome-www.inoreader.com__all_articles-Default)$, workspace 2"
|
||||
"match:class ^(chrome-mail.proton.me__u_0_inbox.com-Default)$, workspace 2"
|
||||
"match:class ^(chrome-app.tuta.com__-Default)$, workspace 2"
|
||||
];
|
||||
|
||||
bind = [
|
||||
"$mainMod Control_L, b, exec, uwsm app -- $browser"
|
||||
"$mainMod Control_L, b, focuswindow, class:^(zen)$"
|
||||
"$mainMod Control_L, f, exec, uwsm app -- freetube"
|
||||
"$mainMod Control_L, f, focuswindow, class:^(freetube)$"
|
||||
"$mainMod Control_L, x, exec, uwsm app -- ~/.nix-profile/share/applications/x.desktop"
|
||||
"$mainMod Control_L, x, focuswindow, class:^(chrome-x.com__-Default)$"
|
||||
];
|
||||
};
|
||||
|
||||
extraConfig =
|
||||
#hyprlang
|
||||
''
|
||||
windowrule {
|
||||
name = picture-in-picture
|
||||
match:title = ^(Obraz w obrazie)$
|
||||
pseudo = 1
|
||||
no_initial_focus = 1
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = login-google-zen
|
||||
match:title = ^(Logowanie – Konta Google — Zen Browser)$
|
||||
float = 1
|
||||
center = 1
|
||||
}
|
||||
|
||||
'';
|
||||
};
|
||||
}
|
||||
36
modules/hypr/hyprland/apps/communicators.nix
Normal file
36
modules/hypr/hyprland/apps/communicators.nix
Normal file
@@ -0,0 +1,36 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
wayland.windowManager.hyprland = {
|
||||
settings = {
|
||||
|
||||
windowrule = [
|
||||
# general rules
|
||||
"match:class ^(signal)$, workspace 1"
|
||||
"match:class ^(vesktop)$, workspace 1 silent"
|
||||
];
|
||||
|
||||
bind = [
|
||||
"$mainMod Control_L, s, exec,[workspace 1] signal-desktop --password-store=\"kwallet6\""
|
||||
"$mainMod Control_L, s, focuswindow, class:^(signal)$"
|
||||
"$mainMod Control_L, s, focuswindow, title:^(signal)$"
|
||||
"$mainMod Control_L, v, sendshortcut, ctrl, k, class:^(vesktop)$"
|
||||
"$mainMod Control_L, v, exec, uwsm app -- vesktop"
|
||||
"$mainMod Control_L, v, focuswindow, class:^(vesktop)$"
|
||||
];
|
||||
|
||||
};
|
||||
extraConfig =
|
||||
#hyprlang
|
||||
''
|
||||
windowrule {
|
||||
name = vesktop-dont-focus-pls
|
||||
match:class = ^(vesktop)$
|
||||
no_initial_focus = 1
|
||||
focus_on_activate = 0
|
||||
render_unfocused = 1
|
||||
}
|
||||
|
||||
'';
|
||||
};
|
||||
}
|
||||
42
modules/hypr/hyprland/apps/games.nix
Normal file
42
modules/hypr/hyprland/apps/games.nix
Normal file
@@ -0,0 +1,42 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
wayland.windowManager.hyprland = {
|
||||
settings = {
|
||||
windowrule = [
|
||||
"match:class ^(steam)$, workspace 3 silent"
|
||||
"match:class ^(heroic)$, workspace 3"
|
||||
"match:class ^(net.lutris.Lutris)$, workspace 3"
|
||||
"match:class ^(rpcs3)$, workspace 3"
|
||||
];
|
||||
|
||||
bind = [
|
||||
"$mainMod Control_L, g, exec, uwsm app -- steam"
|
||||
"$mainMod Control_L, g, focuswindow, class:^(steam)$"
|
||||
];
|
||||
};
|
||||
extraConfig =
|
||||
#hyprlang
|
||||
''
|
||||
windowrule {
|
||||
name = steam-friends-list
|
||||
match:title = ^(Lista znajomych)$
|
||||
float = 1
|
||||
center = 1
|
||||
size = 40% 60%
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = prism-launcher
|
||||
match:class = ^(org.prismlauncher.PrismLauncher)$
|
||||
workspace = 3
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = gamescope
|
||||
match:class = ^(gamescope)$
|
||||
workspace = 3
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
61
modules/hypr/hyprland/apps/misc.nix
Normal file
61
modules/hypr/hyprland/apps/misc.nix
Normal file
@@ -0,0 +1,61 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
wayland.windowManager.hyprland = {
|
||||
settings = {
|
||||
|
||||
windowrule = [
|
||||
# general rules
|
||||
"match:class ^(winboat)$, workspace 5"
|
||||
"match:class ^(qemu)$, workspace 5"
|
||||
"match:class ^(obsidian)$, workspace 6"
|
||||
"match:class ^(gimp)$, workspace 8"
|
||||
"match:class .*potify, workspace 9 silent"
|
||||
"match:class ^(com.obsproject.Studio)$, workspace 10"
|
||||
];
|
||||
|
||||
bind = [
|
||||
"$mainMod, M, exec, [float] waypaper"
|
||||
"$mainMod, RETURN, exec, [workspace 4] $terminal"
|
||||
"$mainMod CONTROL_L, RETURN, exec, $terminal"
|
||||
"$mainMod, space , exec, $menu"
|
||||
"$mainMod ALT_L, c, exec, openrgb -c $openrgb_color"
|
||||
"$mainMod Control_L, n, exec, [workspace 6] uwsm app -- $notes"
|
||||
"$mainMod Control_L, n, focuswindow, class:^(obsidian)$"
|
||||
"$mainMod Control_L, m, exec, [workspace 9] uwsm app -- $music_player"
|
||||
"$mainMod CONTROL_L L_SHIFT, B, exec, killall ashell && uwsm app -- ashell"
|
||||
];
|
||||
};
|
||||
|
||||
extraConfig =
|
||||
#hyprlang
|
||||
''
|
||||
windowrule {
|
||||
name = pavucontrol-float
|
||||
match:class = ^(org.pulseaudio.pavucontrol)$
|
||||
float = 1
|
||||
size = 80% 60%
|
||||
stay_focused = 1
|
||||
center = 1
|
||||
pin = 1
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = share-picker-float
|
||||
match:class = ^(hyprland-share-picker)$
|
||||
float = 1
|
||||
center = 1
|
||||
pin = 1
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = xdg-desktop-portal-gtk
|
||||
match:class = ^(xdg-desktop-portal-gtk)$
|
||||
float = 1
|
||||
center = 1
|
||||
size = 55% 50%
|
||||
}
|
||||
|
||||
'';
|
||||
};
|
||||
}
|
||||
19
modules/hypr/hyprland/autostart.nix
Normal file
19
modules/hypr/hyprland/autostart.nix
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
userConfig,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
uwsm_run = "${pkgs.uwsm}/bin/uwsm app";
|
||||
in
|
||||
{
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
"exec-once" = [
|
||||
"wl-paste --type text --watch cliphist store"
|
||||
"wl-paste --type image --watch cliphist store"
|
||||
"${uwsm_run} -- ${userConfig.statusBar}"
|
||||
"awww-daemon"
|
||||
"openrgb -c $openrgb_color"
|
||||
];
|
||||
};
|
||||
}
|
||||
40
modules/hypr/hyprland/env.nix
Normal file
40
modules/hypr/hyprland/env.nix
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
userConfig,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
uwsm_run = "${pkgs.uwsm}/bin/uwsm app";
|
||||
in
|
||||
{
|
||||
wayland.windowManager.hyprland = {
|
||||
settings = {
|
||||
"$mainMod" = "SUPER";
|
||||
"$terminal" = "${uwsm_run} -- ${pkgs.kitty}/bin/kitty";
|
||||
"$menu" = "${pkgs.hyprlauncher}/bin/hyprlauncher";
|
||||
"$music_player" =
|
||||
if userConfig.isNixOS then "${pkgs.spotify}/bin/spotify" else "flatpak run com.spotify.Client";
|
||||
"$notes" = "${pkgs.obsidian}/bin/obsidian";
|
||||
"$browser" = if userConfig.isNixOS then "zen-beta" else "zen-browser"; # beta on nixos
|
||||
"$openrgb_color" = "09ce30";
|
||||
|
||||
env = [
|
||||
"XCURSOR_SIZE, 32"
|
||||
"HYPRCURSOR_SIZE, 32"
|
||||
"HYPRCURSOR_THEME, theme_phinger-cursors-light"
|
||||
"XDG_CURRENT_DESKTOP,Hyprland"
|
||||
];
|
||||
|
||||
general = {
|
||||
gaps_in = 4;
|
||||
gaps_out = 6;
|
||||
border_size = 4;
|
||||
"col.active_border" = "$blue $sky";
|
||||
"col.inactive_border" = "$overlay1";
|
||||
resize_on_border = false;
|
||||
allow_tearing = false;
|
||||
layout = "scrolling";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
110
modules/hypr/hyprland/general.nix
Normal file
110
modules/hypr/hyprland/general.nix
Normal file
@@ -0,0 +1,110 @@
|
||||
{
|
||||
userConfig,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
exe = pkg: bin: if userConfig.isNixOS then "${pkg}/bin/${bin}" else "/usr/bin/${bin}";
|
||||
jq = exe pkgs.jq "jq";
|
||||
grim = exe pkgs.grim "grim";
|
||||
satty = exe pkgs.satty "satty";
|
||||
wl_copy = exe pkgs.wl-clipboard "wl-copy";
|
||||
notify_send = exe pkgs.libnotify "notify-send";
|
||||
playerctl = exe pkgs.playerctl "playerctl";
|
||||
xdg-desktop-portal-hyprland =
|
||||
if userConfig.isNixOS then
|
||||
"${pkgs.xdg-desktop-portal-hyprland}/libexec/xdg-desktop-portal-hyprland"
|
||||
else
|
||||
"/usr/lib/xdg-desktop-portal-hyprland";
|
||||
in
|
||||
{
|
||||
wayland.windowManager.hyprland = {
|
||||
|
||||
enable = true;
|
||||
package =
|
||||
if userConfig.isNixOS then
|
||||
# inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland
|
||||
pkgs.hyprland
|
||||
else
|
||||
null;
|
||||
#portalPackage = lib.mkIf (userConfig.isNixOS
|
||||
#) inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
|
||||
|
||||
xwayland.enable = true;
|
||||
settings = {
|
||||
ecosystem = {
|
||||
enforce_permissions = true;
|
||||
};
|
||||
|
||||
permission = [
|
||||
"^${pkgs.grim}/bin/grim$, screencopy, allow"
|
||||
"^${pkgs.hyprlock}/bin/hyprlock$, screencopy, allow"
|
||||
"^${xdg-desktop-portal-hyprland}$, screencopy, allow"
|
||||
];
|
||||
|
||||
misc = {
|
||||
force_default_wallpaper = 0;
|
||||
disable_hyprland_logo = true;
|
||||
middle_click_paste = false;
|
||||
};
|
||||
|
||||
xwayland = {
|
||||
force_zero_scaling = 1;
|
||||
};
|
||||
|
||||
quirks = {
|
||||
prefer_hdr = 1;
|
||||
};
|
||||
|
||||
windowrule = [
|
||||
# smart gaps
|
||||
"border_size 0, match:float 0, match:workspace w[tv1]"
|
||||
"rounding 0, match:float 0, match:workspace w[tv1]"
|
||||
"border_size 0, match:float 0, match:workspace f[1]"
|
||||
"rounding 0, match:float 0, match:workspace f[1]"
|
||||
];
|
||||
|
||||
bind = [
|
||||
"$mainMod, V, exec, cliphist list | hyprlauncher -m | cliphist decode | wl-copy"
|
||||
"$mainMod ALT_L, V, exec, cliphist wipe && notify-send \"Clipboard\" \"Clipboard cleared!\""
|
||||
"$mainMod L_SHIFT ctrl, l, exec, hyprlock"
|
||||
"$mainMod L_SHIFT ctrl, r, exec, openrgb -c black && systemctl reboot"
|
||||
"$mainMod L_SHIFT ctrl, p, exec, openrgb -c black && systemctl poweroff"
|
||||
"$mainMod L_SHIFT ctrl, s, exec, openrgb -c black && pidof hyprlock || sleep 1 && systemctl sleep"
|
||||
"$mainMod L_SHIFT ctrl, m, exec, uwsm stop"
|
||||
];
|
||||
|
||||
bindt = [
|
||||
", PRINT, exec, ${pkgs.writeShellScript "screenshot-region" ''
|
||||
MONITOR=$(hyprctl monitors -j | ${jq} -r '.[] | select(.focused == true) | .name')
|
||||
${grim} -o "$MONITOR" - | ${satty} -f -
|
||||
''}"
|
||||
|
||||
"$mainMod, PRINT, exec, ${pkgs.writeShellScript "screenshot-fullscreen" ''
|
||||
target_path="$HOME/${userConfig.pathConfig.screenshot}/$(date +'%d-%m-%Y_%H-%M-%S').png"
|
||||
mkdir -p "$(dirname "$target_path")"
|
||||
|
||||
MONITOR=$(hyprctl monitors -j | ${jq} -r '.[] | select(.focused == true) | .name')
|
||||
|
||||
${grim} -o "$MONITOR" "$target_path"
|
||||
${wl_copy} < "$target_path"
|
||||
${notify_send} -i "$target_path" -u low -a "Screenshot" "Screenshot fullscreen" "Saved and copied"
|
||||
''}"
|
||||
|
||||
"alt_l, PRINT, exec, ${pkgs.writeShellScript "screenshot-window" ''
|
||||
target_path="$HOME/${userConfig.pathConfig.screenshot}/$(date +'%d-%m-%Y_%H-%M-%S').png"
|
||||
mkdir -p "$(dirname "$target_path")"
|
||||
|
||||
GEOMETRY=$(hyprctl activewindow -j | ${jq} -r '"\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"')
|
||||
|
||||
${grim} -g "$GEOMETRY" "$target_path"
|
||||
${wl_copy} < "$target_path"
|
||||
${notify_send} -i "$target_path" -u low -a "Screenshot" "Screenshot window" "Saved and copied"
|
||||
''}"
|
||||
|
||||
", PAUSE, exec, ${playerctl} play-pause"
|
||||
"$mainMod, PAUSE, exec, ${playerctl} play-pause --player spotify"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
88
modules/hypr/hyprland/hardware.nix
Normal file
88
modules/hypr/hyprland/hardware.nix
Normal file
@@ -0,0 +1,88 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
wayland.windowManager.hyprland = {
|
||||
settings = {
|
||||
input = {
|
||||
kb_layout = "pl";
|
||||
kb_variant = "";
|
||||
kb_model = "";
|
||||
kb_options = "caps:escape_shifted_capslock";
|
||||
kb_rules = "";
|
||||
follow_mouse = 1;
|
||||
left_handed = false;
|
||||
sensitivity = -0.5;
|
||||
touchpad = {
|
||||
natural_scroll = true;
|
||||
};
|
||||
};
|
||||
|
||||
device = {
|
||||
name = "msft0001:01-06cb:7f28-touchpad";
|
||||
sensitivity = 0;
|
||||
};
|
||||
|
||||
cursor = {
|
||||
no_hardware_cursors = true;
|
||||
inactive_timeout = 5;
|
||||
warp_on_change_workspace = 1;
|
||||
zoom_factor = 1.0;
|
||||
hide_on_key_press = 1;
|
||||
};
|
||||
|
||||
bindel = [
|
||||
",XF86MonBrightnessDown, exec, hyprctl hyprsunset gamma -10"
|
||||
",XF86MonBrightnessUp, exec, hyprctl hyprsunset gamma +10"
|
||||
", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ && ~/.local/bin/wp-vol.sh && paplay /usr/share/sounds/freedesktop/stereo/bell.oga"
|
||||
", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- && ~/.local/bin/wp-vol.sh && paplay /usr/share/sounds/freedesktop/stereo/bell.oga"
|
||||
", XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle"
|
||||
];
|
||||
};
|
||||
|
||||
extraConfig =
|
||||
#hyprlang
|
||||
''
|
||||
monitorv2 {
|
||||
output = DP-1
|
||||
mode = 2560x1440@180.06
|
||||
position = 0x0
|
||||
scale = 1
|
||||
vrr = 1
|
||||
supports_wide_color = 1
|
||||
bitdepth = 10
|
||||
sdr_min_luminance = 0.005
|
||||
sdr_max_luminance = 220
|
||||
cm = hdr
|
||||
supports_hdr = 1
|
||||
}
|
||||
|
||||
monitorv2 {
|
||||
output = DP-2
|
||||
mode = 1920x1080@144
|
||||
position = auto-left
|
||||
vrr = 1
|
||||
scale = 1.0
|
||||
}
|
||||
|
||||
monitorv2 {
|
||||
output = HDMI-A-2
|
||||
mode = highres
|
||||
position = auto-up
|
||||
scale = 1
|
||||
}
|
||||
# for laptop
|
||||
monitorv2 {
|
||||
output = eDP-1
|
||||
mode = highres
|
||||
position = 0x0
|
||||
scale = 1
|
||||
}
|
||||
|
||||
monitorv2 {
|
||||
output =
|
||||
position = auto-right
|
||||
scale = 1
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
78
modules/hypr/hyprland/layouts.nix
Normal file
78
modules/hypr/hyprland/layouts.nix
Normal file
@@ -0,0 +1,78 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
|
||||
dwindle = {
|
||||
preserve_split = true;
|
||||
};
|
||||
|
||||
master = {
|
||||
new_status = "slave";
|
||||
allow_small_split = true;
|
||||
orientation = "left";
|
||||
};
|
||||
|
||||
bind = [
|
||||
"$mainMod, h, movefocus, l"
|
||||
"$mainMod, l, movefocus, r"
|
||||
"$mainMod, k, movefocus, u"
|
||||
"$mainMod, j, movefocus, d"
|
||||
"$mainMod, mouse_down, workspace, e+1"
|
||||
"$mainMod, mouse_up, workspace, e-1"
|
||||
"$mainMod L_SHIFT, right, exec, hyprctl dispatch movecurrentworkspacetomonitor +1"
|
||||
"$mainMod L_SHIFT, left, exec, hyprctl dispatch movecurrentworkspacetomonitor -1"
|
||||
# workspace management
|
||||
"$mainMod, 1, workspace, 1"
|
||||
"$mainMod, 2, workspace, 2"
|
||||
"$mainMod, 3, workspace, 3"
|
||||
"$mainMod, 4, workspace, 4"
|
||||
"$mainMod, 5, workspace, 5"
|
||||
"$mainMod, 6, workspace, 6"
|
||||
"$mainMod, 7, workspace, 7"
|
||||
"$mainMod, 8, workspace, 8"
|
||||
"$mainMod, 9, workspace, 9"
|
||||
"$mainMod, 0, workspace, 10"
|
||||
# window management
|
||||
"$mainMod SHIFT, 1, movetoworkspace, 1"
|
||||
"$mainMod SHIFT, 2, movetoworkspace, 2"
|
||||
"$mainMod SHIFT, 3, movetoworkspace, 3"
|
||||
"$mainMod SHIFT, 4, movetoworkspace, 4"
|
||||
"$mainMod SHIFT, 5, movetoworkspace, 5"
|
||||
"$mainMod SHIFT, 6, movetoworkspace, 6"
|
||||
"$mainMod SHIFT, 7, movetoworkspace, 7"
|
||||
"$mainMod SHIFT, 8, movetoworkspace, 8"
|
||||
"$mainMod SHIFT, 9, movetoworkspace, 9"
|
||||
"$mainMod SHIFT, 0, movetoworkspace, 10"
|
||||
# special workspace
|
||||
"$mainMod, TAB, togglespecialworkspace, magic"
|
||||
"$mainMod SHIFT, TAB, movetoworkspace, special:magic"
|
||||
# layout
|
||||
"$mainMod, S, layoutmsg, swapwithmaster"
|
||||
"$mainMod, n, layoutmsg, swapnext"
|
||||
"$mainMod, p, layoutmsg, swapprev"
|
||||
];
|
||||
|
||||
binde = [
|
||||
"$mainMod alt, equal, exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor | awk '/^float.*/ {print $2 * 1.1}')"
|
||||
"$mainMod alt, minus, exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor | awk '/^float.*/ {print $2 * 0.9}')"
|
||||
"$mainMod alt, 0, exec, hyprctl -q keyword cursor:zoom_factor 1"
|
||||
"$mainMod L_SHIFT, l, resizeactive, 10 0"
|
||||
"$mainMod L_SHIFT, h, resizeactive, -10 0"
|
||||
"$mainMod L_SHIFT, k, resizeactive, 0 -10"
|
||||
"$mainMod L_SHIFT, j, resizeactive, 0 10"
|
||||
];
|
||||
|
||||
bindd = [
|
||||
"$mainMod, F, Make app fullscreen, fullscreen"
|
||||
"$mainMod, T, Toggle floating, togglefloating"
|
||||
"$mainMod, Q, Kill active window, killactive"
|
||||
];
|
||||
|
||||
bindm = [
|
||||
"$mainMod, mouse:272, movewindow"
|
||||
"$mainMod, mouse:273, resizewindow"
|
||||
];
|
||||
};
|
||||
}
|
||||
58
modules/hypr/hyprland/looks.nix
Normal file
58
modules/hypr/hyprland/looks.nix
Normal file
@@ -0,0 +1,58 @@
|
||||
{
|
||||
userConfig,
|
||||
...
|
||||
}:
|
||||
{
|
||||
wayland.windowManager.hyprland = {
|
||||
settings = {
|
||||
|
||||
animations = {
|
||||
enabled = userConfig.animations;
|
||||
bezier = [
|
||||
"easeOutQuint,0.23,1,0.32,1"
|
||||
"easeInOutCubic,0.65,0.05,0.36,1"
|
||||
"linear,0,0,1,1"
|
||||
"almostLinear,0.5,0.5,0.75,1.0"
|
||||
"quick,0.15,0,0.1,1"
|
||||
];
|
||||
animation = [
|
||||
"global, 1, 7, default"
|
||||
"border, 1, 3.39, easeOutQuint"
|
||||
"windows, 1, 2.79, easeOutQuint"
|
||||
"windowsIn, 1, 2.1, easeOutQuint, popin 87%"
|
||||
"windowsOut, 1, 1, linear, popin 87%"
|
||||
"fadeIn, 1, 1.4, almostLinear"
|
||||
"fadeOut, 1, 1.2, almostLinear"
|
||||
"fade, 1, 3.03, quick"
|
||||
"layers, 1, 2, easeOutQuint"
|
||||
"layersIn, 1, 2, easeOutQuint, fade"
|
||||
"layersOut, 1, 1, linear, fade"
|
||||
"fadeLayersIn, 1, 1.4, almostLinear"
|
||||
"fadeLayersOut, 1, 1.1, almostLinear"
|
||||
"workspaces, 1, 1.4, quick, slidevert"
|
||||
"workspacesIn, 1, 0.5, quick, slidevert"
|
||||
"workspacesOut, 1, 0.5, quick, slidevert"
|
||||
];
|
||||
};
|
||||
|
||||
decoration = {
|
||||
rounding = 1;
|
||||
rounding_power = 2;
|
||||
active_opacity = 1.0;
|
||||
inactive_opacity = 1.0;
|
||||
shadow = {
|
||||
enabled = true;
|
||||
range = 1;
|
||||
render_power = 1;
|
||||
color = "$overlay0";
|
||||
};
|
||||
blur = {
|
||||
enabled = true;
|
||||
size = 1;
|
||||
passes = 1;
|
||||
vibrancy = 0.1696;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
20
modules/hypr/hyprland/workspaces.nix
Normal file
20
modules/hypr/hyprland/workspaces.nix
Normal file
@@ -0,0 +1,20 @@
|
||||
{ ... }:
|
||||
{
|
||||
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
workspace = [
|
||||
"1, monitor:DP-2"
|
||||
"1, layout: dwindle"
|
||||
"2, monitor:DP-1"
|
||||
"3, monitor:DP-1"
|
||||
"4, monitor:DP-1"
|
||||
"5, monitor:DP-1"
|
||||
"6, monitor:DP-1"
|
||||
"7, monitor:HDMI-A-2"
|
||||
"9, monitor:DP-2"
|
||||
"10, monitor:DP-2"
|
||||
"w[tv1], gapsout:0, gapsin:0"
|
||||
"f[1], gapsout:0, gapsin:0"
|
||||
];
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user