fixes
This commit is contained in:
@@ -48,7 +48,7 @@
|
|||||||
|
|
||||||
|
|
||||||
(defwindow bar
|
(defwindow bar
|
||||||
:monitor 1
|
:monitor 0
|
||||||
:geometry (geometry
|
:geometry (geometry
|
||||||
:x "0%"
|
:x "0%"
|
||||||
:y "0%"
|
:y "0%"
|
||||||
|
|||||||
@@ -5,8 +5,8 @@
|
|||||||
(eventbox
|
(eventbox
|
||||||
:onhover "${EWW_CMD} update date_rev=true"
|
:onhover "${EWW_CMD} update date_rev=true"
|
||||||
:onhoverlost "${EWW_CMD} update date_rev=false"
|
:onhoverlost "${EWW_CMD} update date_rev=false"
|
||||||
:onclick "(sleep 0.1 && ${EWW_CMD} open --toggle calendar)"
|
:onclick "(sleep 0.1 && eww-open-on-current-screen calendar --toggle)"
|
||||||
:onrightclick "(sleep 0.1 && ${EWW_CMD} open --toggle powermenu)"
|
:onrightclick "(sleep 0.1 && eww-open-on-current-screen powermenu --toggle)"
|
||||||
(box
|
(box
|
||||||
:class "datetime"
|
:class "datetime"
|
||||||
(overlay
|
(overlay
|
||||||
@@ -39,4 +39,4 @@
|
|||||||
(defpoll hour :interval "15s" "date '+%H'")
|
(defpoll hour :interval "15s" "date '+%H'")
|
||||||
(defpoll minute :interval "15s" "date '+%M'")
|
(defpoll minute :interval "15s" "date '+%M'")
|
||||||
(defpoll day :interval "15s" "date '+%d'")
|
(defpoll day :interval "15s" "date '+%d'")
|
||||||
(defpoll month :interval "15s" "date '+%m'")
|
(defpoll month :interval "15s" "date '+%m'")
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
(defwidget sys-mod []
|
(defwidget sys-mod []
|
||||||
(module
|
(module
|
||||||
(eventbox
|
(eventbox
|
||||||
:onclick "(sleep 0.1 && ${EWW_CMD} open --toggle sys)"
|
:onclick "(sleep 0.1 && eww-open-on-current-screen sys --toggle)"
|
||||||
(box
|
(box
|
||||||
:orientation "v"
|
:orientation "v"
|
||||||
(circular-progress
|
(circular-progress
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
(defwindow calendar
|
(defwindow calendar
|
||||||
:monitor 1
|
:monitor 0
|
||||||
:geometry (geometry
|
:geometry (geometry
|
||||||
:x "0%"
|
:x "0%"
|
||||||
:y "0%"
|
:y "0%"
|
||||||
:anchor "bottom right"
|
:anchor "bottom right"
|
||||||
:width "0px"
|
:width "0px"
|
||||||
:height "0px")
|
:height "0px")
|
||||||
(window (calendar)))
|
(window (calendar)))
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
)
|
)
|
||||||
|
|
||||||
(defwindow powermenu
|
(defwindow powermenu
|
||||||
:monitor 1
|
:monitor 0
|
||||||
:stacking "overlay"
|
:stacking "overlay"
|
||||||
:geometry (geometry
|
:geometry (geometry
|
||||||
:anchor "center"
|
:anchor "center"
|
||||||
@@ -42,4 +42,4 @@
|
|||||||
:height "120%")
|
:height "120%")
|
||||||
:namespace "eww-blur"
|
:namespace "eww-blur"
|
||||||
(powermenu)
|
(powermenu)
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
(defvar radio_rev false)
|
(defvar radio_rev false)
|
||||||
|
|
||||||
(defwindow radio
|
(defwindow radio
|
||||||
:monitor 1
|
:monitor 0
|
||||||
:geometry (geometry
|
:geometry (geometry
|
||||||
:x "0%"
|
:x "0%"
|
||||||
:y "0%"
|
:y "0%"
|
||||||
@@ -100,7 +100,7 @@
|
|||||||
(box
|
(box
|
||||||
:orientation "v"
|
:orientation "v"
|
||||||
(button
|
(button
|
||||||
:onclick "(sleep 0.1 && ${EWW_CMD} open --toggle --no-daemonize radio)"
|
:onclick "(sleep 0.1 && eww-open-on-current-screen radio --toggle --no-daemonize)"
|
||||||
(label
|
(label
|
||||||
:show-truncated false
|
:show-truncated false
|
||||||
:class "icon-text"
|
:class "icon-text"
|
||||||
@@ -108,4 +108,4 @@
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -129,7 +129,7 @@
|
|||||||
)
|
)
|
||||||
|
|
||||||
(defwindow sys
|
(defwindow sys
|
||||||
:monitor 1
|
:monitor 0
|
||||||
:stacking "overlay"
|
:stacking "overlay"
|
||||||
:geometry (geometry
|
:geometry (geometry
|
||||||
:x "0%"
|
:x "0%"
|
||||||
@@ -137,4 +137,4 @@
|
|||||||
:anchor "bottom right"
|
:anchor "bottom right"
|
||||||
:width "0px"
|
:width "0px"
|
||||||
:height "0px")
|
:height "0px")
|
||||||
(window (sys-win)))
|
(window (sys-win)))
|
||||||
|
|||||||
@@ -1,7 +1,21 @@
|
|||||||
{ lib, config, pkgs, ... }: {
|
{ lib, config, pkgs, ... }:
|
||||||
|
let
|
||||||
|
openOnCurrentScreen = pkgs.writeShellScriptBin "eww-open-on-current-screen" ''
|
||||||
|
window="$1"
|
||||||
|
shift
|
||||||
|
|
||||||
|
screen="$(hyprctl monitors -j | ${lib.getExe pkgs.jq} -r '.[] | select(.focused == true) | .name' | head -n1)"
|
||||||
|
|
||||||
|
if [ -n "$screen" ]; then
|
||||||
|
exec ${lib.getExe pkgs.eww} open "$window" --screen "$screen" "$@"
|
||||||
|
fi
|
||||||
|
|
||||||
|
exec ${lib.getExe pkgs.eww} open "$window" "$@"
|
||||||
|
'';
|
||||||
|
in {
|
||||||
|
|
||||||
config = lib.mkIf (config.usercfg.wm == "Wayland") {
|
config = lib.mkIf (config.usercfg.wm == "Wayland") {
|
||||||
home.packages = with pkgs; [ eww jq jaq custom.amdgpu_top ];
|
home.packages = with pkgs; [ eww jq jaq custom.amdgpu_top openOnCurrentScreen ];
|
||||||
|
|
||||||
xdg.configFile."eww" = {
|
xdg.configFile."eww" = {
|
||||||
source = lib.cleanSourceWith {
|
source = lib.cleanSourceWith {
|
||||||
|
|||||||
@@ -1,4 +1,12 @@
|
|||||||
{ config, lib, ... }: {
|
{ config, lib, pkgs, ... }:
|
||||||
|
let
|
||||||
|
restartEwwBar = monitor: pkgs.writeShellScript "restart-eww-bar-after-kanshi-${toString monitor}" ''
|
||||||
|
|
||||||
|
sleep 1
|
||||||
|
${lib.getExe pkgs.eww} close bar || true
|
||||||
|
${lib.getExe pkgs.eww} open bar --screen ${toString monitor}
|
||||||
|
'';
|
||||||
|
in {
|
||||||
|
|
||||||
config = lib.mkIf (config.usercfg.wm == "Wayland") {
|
config = lib.mkIf (config.usercfg.wm == "Wayland") {
|
||||||
services.kanshi = {
|
services.kanshi = {
|
||||||
@@ -7,6 +15,7 @@
|
|||||||
settings = [
|
settings = [
|
||||||
{
|
{
|
||||||
profile.name = "tower_0";
|
profile.name = "tower_0";
|
||||||
|
profile.exec = [ "${restartEwwBar 1}" ];
|
||||||
profile.outputs = [
|
profile.outputs = [
|
||||||
{
|
{
|
||||||
criteria = "AOC 24E1W1 GNSKCHA086899";
|
criteria = "AOC 24E1W1 GNSKCHA086899";
|
||||||
@@ -28,6 +37,7 @@
|
|||||||
}
|
}
|
||||||
{
|
{
|
||||||
profile.name = "tower_1";
|
profile.name = "tower_1";
|
||||||
|
profile.exec = [ "${restartEwwBar 1}" ];
|
||||||
profile.outputs = [
|
profile.outputs = [
|
||||||
{
|
{
|
||||||
criteria = "AOC 24E1W1 GNSKCHA086899";
|
criteria = "AOC 24E1W1 GNSKCHA086899";
|
||||||
@@ -57,6 +67,7 @@
|
|||||||
}
|
}
|
||||||
{
|
{
|
||||||
profile.name = "laptop_0";
|
profile.name = "laptop_0";
|
||||||
|
profile.exec = [ "${restartEwwBar 0}" ];
|
||||||
profile.outputs = [{
|
profile.outputs = [{
|
||||||
criteria = "LG Display 0x060A Unknown";
|
criteria = "LG Display 0x060A Unknown";
|
||||||
mode = "1920x1080@60.020";
|
mode = "1920x1080@60.020";
|
||||||
@@ -67,6 +78,7 @@
|
|||||||
}
|
}
|
||||||
{
|
{
|
||||||
profile.name = "laptop_1";
|
profile.name = "laptop_1";
|
||||||
|
profile.exec = [ "${restartEwwBar 1}" ];
|
||||||
profile.outputs = [
|
profile.outputs = [
|
||||||
{
|
{
|
||||||
criteria = "CEX CX133 0x00000001";
|
criteria = "CEX CX133 0x00000001";
|
||||||
@@ -86,6 +98,7 @@
|
|||||||
}
|
}
|
||||||
{
|
{
|
||||||
profile.name = "laptop_2";
|
profile.name = "laptop_2";
|
||||||
|
profile.exec = [ "${restartEwwBar 1}" ];
|
||||||
profile.outputs = [
|
profile.outputs = [
|
||||||
{
|
{
|
||||||
criteria = "AOC 16G3 1DDP7HA000348";
|
criteria = "AOC 16G3 1DDP7HA000348";
|
||||||
|
|||||||
@@ -232,7 +232,7 @@ in {
|
|||||||
"custom/powermenu" = {
|
"custom/powermenu" = {
|
||||||
"format" = "{icon}";
|
"format" = "{icon}";
|
||||||
"format-icons" = [ "" ];
|
"format-icons" = [ "" ];
|
||||||
"on-click" = "eww open powermenu";
|
"on-click" = "eww-open-on-current-screen powermenu";
|
||||||
"tooltip" = false;
|
"tooltip" = false;
|
||||||
};
|
};
|
||||||
"tray" = {
|
"tray" = {
|
||||||
|
|||||||
524
modules/home/wayland/hyprland/config.nix
Executable file → Normal file
524
modules/home/wayland/hyprland/config.nix
Executable file → Normal file
@@ -1,231 +1,333 @@
|
|||||||
{ lib, config, pkgs, ... }: {
|
{ lib, config, pkgs, ... }: let
|
||||||
config = lib.mkIf (config.usercfg.wm == "Wayland") {
|
lua = lib.generators.mkLuaInline;
|
||||||
|
|
||||||
|
bind = keys: dispatcher: { _args = [ keys dispatcher ]; };
|
||||||
|
bindOpts = keys: dispatcher: opts: { _args = [ keys dispatcher opts ]; };
|
||||||
|
|
||||||
|
dsp = {
|
||||||
|
exec = cmd: lua ''hl.dsp.exec_cmd("${cmd}")'';
|
||||||
|
close = lua "hl.dsp.window.close()";
|
||||||
|
exit = lua "hl.dsp.exit()";
|
||||||
|
float = lua ''hl.dsp.window.float({ action = "toggle" })'';
|
||||||
|
fullscreen = lua "hl.dsp.window.fullscreen()";
|
||||||
|
pseudo = lua "hl.dsp.window.pseudo()";
|
||||||
|
layout = msg: lua ''hl.dsp.layout("${msg}")'';
|
||||||
|
focus = dir: lua ''hl.dsp.focus({ direction = "${dir}" })'';
|
||||||
|
swap = dir: lua ''hl.dsp.window.swap({ direction = "${dir}" })'';
|
||||||
|
toggleSpecial = name: lua ''hl.dsp.workspace.toggle_special("${name}")'';
|
||||||
|
moveToSpecial = name: lua ''hl.dsp.window.move({ workspace = "special:${name}" })'';
|
||||||
|
focusWorkspace = ws: lua ''hl.dsp.focus({ workspace = "${toString ws}" })'';
|
||||||
|
moveToWorkspace = ws: lua ''hl.dsp.window.move({ workspace = "${toString ws}", follow = false})'';
|
||||||
|
drag = lua "hl.dsp.window.drag()";
|
||||||
|
resize = lua "hl.dsp.window.resize()";
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
startupScript = pkgs.writeShellScriptBin "hyprland-start" ''
|
||||||
|
eww-open-on-bar-screen bar &
|
||||||
|
dunst &
|
||||||
|
awww-daemon &
|
||||||
|
|
||||||
|
sleep 2
|
||||||
|
keepassxc &
|
||||||
|
firefox &
|
||||||
|
jellyfin-mpv-shim &
|
||||||
|
easyeffects --gapplication-service &
|
||||||
|
|
||||||
|
sleep 2
|
||||||
|
nextcloud &
|
||||||
|
# telegram-desktop &
|
||||||
|
# discord &
|
||||||
|
'';
|
||||||
|
in {
|
||||||
|
config = lib.mkIf (config.usercfg.wm == "Wayland") {
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
xwayland.enable = true;
|
xwayland.enable = true;
|
||||||
extraConfig = ''
|
configType = "lua";
|
||||||
monitor=,preferred,auto,auto
|
settings = {
|
||||||
env=bitdepth,10
|
on = {
|
||||||
input {
|
_args = [
|
||||||
kb_layout = us, ru
|
"hyprland.start"
|
||||||
kb_variant = intl, phonetic
|
(lua ''
|
||||||
kb_options = grp:ctrls_toggle
|
function()
|
||||||
|
hl.exec_cmd("dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP")
|
||||||
|
hl.exec_cmd("${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1")
|
||||||
|
hl.exec_cmd("wl-paste --type text --watch cliphist store")
|
||||||
|
hl.exec_cmd("wl-paste --type image --watch cliphist store")
|
||||||
|
hl.exec_cmd("swayidle -w timeout 600 'swaylock' before-sleep 'swaylock'")
|
||||||
|
hl.exec_cmd("${startupScript}/bin/start")
|
||||||
|
hl.exec_cmd("[workspace special:magic silent] kitty --title flying_kitty")
|
||||||
|
end'')
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
follow_mouse = 1
|
monitor = [{
|
||||||
|
output = "";
|
||||||
|
mode = "preferred";
|
||||||
|
position = "auto";
|
||||||
|
scale = "auto";
|
||||||
|
bitdepth = 10;
|
||||||
|
}];
|
||||||
|
#Fullscreen HDR is possible without the hdr cm setting if "render:cm_auto_hdr" is enabled.
|
||||||
|
|
||||||
sensitivity = 0
|
config = {
|
||||||
|
input = {
|
||||||
touchpad {
|
kb_layout = "us";
|
||||||
natural_scroll=no
|
kb_variant = "intl";#, phonetic";
|
||||||
disable_while_typing=true
|
kb_options = "grp:alt_shift_toggle";
|
||||||
scroll_factor=1
|
follow_mouse = 1;
|
||||||
disable_while_typing=0
|
sensitivity = 0;
|
||||||
tap-to-click=0
|
|
||||||
|
touchpad = {
|
||||||
|
natural_scroll = false;
|
||||||
|
scroll_factor = 1;
|
||||||
|
disable_while_typing = false;
|
||||||
|
tap_to_click = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
misc = {
|
||||||
|
force_default_wallpaper = -1;
|
||||||
|
disable_hyprland_logo = true;
|
||||||
|
animate_mouse_windowdragging = false;
|
||||||
|
animate_manual_resizes = false;
|
||||||
|
vrr = 1;
|
||||||
|
};
|
||||||
|
general = {
|
||||||
|
gaps_in = config.colorScheme.palette.gaps-window;
|
||||||
|
gaps_out = config.colorScheme.palette.gaps-screen;
|
||||||
|
border_size = lib.toInt config.colorScheme.palette.border-width;
|
||||||
|
col = {
|
||||||
|
active_border = "rgb(${config.colorScheme.palette.base04})";
|
||||||
|
inactive_border = "rgb(${config.colorScheme.palette.base03})";
|
||||||
|
};
|
||||||
|
layout = "dwindle";
|
||||||
|
};
|
||||||
|
|
||||||
|
decoration = {
|
||||||
|
rounding = lib.toInt config.colorScheme.palette.border-radius;
|
||||||
|
inactive_opacity = 1.0;
|
||||||
|
active_opacity = 1.0;
|
||||||
|
fullscreen_opacity = 1.0;
|
||||||
|
|
||||||
|
blur = {
|
||||||
|
enabled = true;
|
||||||
|
size = 2;
|
||||||
|
passes = 1;
|
||||||
|
new_optimizations = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
dwindle = {
|
||||||
|
#pseudotile = true;
|
||||||
|
preserve_split = true;
|
||||||
|
};
|
||||||
|
animations = {
|
||||||
|
enabled = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
master = {
|
||||||
|
new_status = "master";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
curve = [{
|
||||||
|
_args = [
|
||||||
|
"customcurve"
|
||||||
|
{
|
||||||
|
type = "bezier";
|
||||||
|
points = lua "{ {0.0, 0.9}, {0.1, 1.0} }";
|
||||||
}
|
}
|
||||||
}
|
];
|
||||||
|
}];
|
||||||
misc {
|
|
||||||
disable_hyprland_logo=true
|
animation = [
|
||||||
animate_mouse_windowdragging=false
|
{ leaf = "windows"; enabled = true; speed = 4; bezier = "customcurve"; }
|
||||||
animate_manual_resizes=false
|
{ leaf = "windowsOut"; enabled = true; speed = 4; bezier = "customcurve"; style = "popin 80%"; }
|
||||||
|
{ leaf = "border"; enabled = true; speed = 10; bezier = "customcurve"; }
|
||||||
vrr=1
|
{ leaf = "borderangle"; enabled = true; speed = 1; bezier = "customcurve"; }
|
||||||
}
|
{ leaf = "fade"; enabled = true; speed = 4; bezier = "customcurve"; }
|
||||||
|
{ leaf = "workspaces"; enabled = true; speed = 4; bezier = "customcurve"; }
|
||||||
general {
|
];
|
||||||
gaps_in = ${config.colorScheme.palette.gaps-window}
|
|
||||||
gaps_out = ${config.colorScheme.palette.gaps-screen}
|
|
||||||
border_size = ${config.colorScheme.palette.border-width}
|
gesture = {
|
||||||
|
fingers = 3;
|
||||||
col.active_border = rgb(${config.colorScheme.palette.base04})
|
direction = "vertical";
|
||||||
col.inactive_border = rgb(${config.colorScheme.palette.base03})
|
action = "workspace";
|
||||||
|
};
|
||||||
layout = dwindle
|
|
||||||
}
|
window_rule = [
|
||||||
|
{ match.title = "noshadow"; float= false;}
|
||||||
decoration {
|
{
|
||||||
rounding = ${config.colorScheme.palette.border-radius}
|
match.title = "^(flying_kitty)$";
|
||||||
|
float = true;
|
||||||
blur {
|
center = true;
|
||||||
enabled = true
|
size = "1100 600";
|
||||||
size = 2
|
move = "{0 600}";
|
||||||
passes = 1
|
animation = "slide";
|
||||||
new_optimizations = true
|
}
|
||||||
|
{ match.title = "^(Volume Control)$"; float = true; }
|
||||||
|
{ match.title = "^(Picture-in-Picture)$"; float = true; }
|
||||||
|
{ match.title = "^(Steam)$"; float = true; }
|
||||||
|
# --- Chat & Workspace Assignments ---
|
||||||
|
{ match.class = "^(org.telegram.desktop)$"; workspace = "2 silent"; }
|
||||||
|
{ match.class = "^(discord)$"; workspace = "2 silent"; }
|
||||||
|
{ match.class = "^(org.keepassxc.KeePassXC)$"; workspace = "8 silent"; }
|
||||||
|
{ match.title = "^(Nextcloud)$"; workspace = "8 silent"; }
|
||||||
|
{ match.class = "^(org.telegram.desktop)$"; match.title = "^(Media viewer)$"; float = true; center = true; }
|
||||||
|
{
|
||||||
|
match.class = "^(Tk)$";
|
||||||
|
match.title = "^(Server Configuration)$";
|
||||||
|
workspace = "8 silent";
|
||||||
}
|
}
|
||||||
#multisample_edges = true
|
# --- KeePassXC Dialogs ---
|
||||||
|
{
|
||||||
|
match.class = "^(org.keepassxc.KeePassXC)$";
|
||||||
|
match.title = "^(KeePassXC - Access Request)$";
|
||||||
|
float = true;
|
||||||
|
pin = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
match.class = "^(org.keepassxc.KeePassXC)$";
|
||||||
|
match.title = "^(Unlock Database - KeePassXC)$";
|
||||||
|
float = true;
|
||||||
|
pin = true;
|
||||||
|
}
|
||||||
|
# --- Generic System / File Dialogs ---
|
||||||
|
{ match.title = "^(Open)$"; float = true; }
|
||||||
|
{ match.title = "^(Choose Files)$"; float = true; }
|
||||||
|
{ match.title = "^(Save As)$"; float = true; }
|
||||||
|
{ match.title = "^(Confirm to replace files)$"; float = true; }
|
||||||
|
{ match.title = "^(File Operation Progress)$"; float = true; }
|
||||||
|
|
||||||
#opactity
|
# --- Firefox Window Rules ---
|
||||||
inactive_opacity = 1.0
|
{
|
||||||
active_opacity = 1.0
|
match.class = "^(firefox)$";
|
||||||
fullscreen_opacity = 1.0
|
match.title = "^(Picture-in-Picture)$";
|
||||||
|
float = true;
|
||||||
# shadow
|
pin = true;
|
||||||
# drop_shadow = no
|
suppress_event = "fullscreen";
|
||||||
# shadow_range = 60
|
}
|
||||||
# shadow_offset = 0 5
|
{
|
||||||
# shadow_render_power = 4
|
match.class = "^(firefox)$";
|
||||||
#col.shadow = rgba(00000099)
|
match.title = "^(Firefox — Sharing Indicator)$";
|
||||||
}
|
float = true;
|
||||||
|
suppress_event = "fullscreen";
|
||||||
animations {
|
}
|
||||||
enabled = true
|
{
|
||||||
bezier = customcurve, 0.0, 0.9, 0.1, 1.0
|
match.class = "^(firefox)$";
|
||||||
|
match.title = "^(Extension:.* Mozilla Firefox)$";
|
||||||
|
float = true;
|
||||||
|
suppress_event = "fullscreen";
|
||||||
|
}
|
||||||
|
|
||||||
animation = windows, 1, 4, customcurve
|
# --- Telegram Media Viewer ---
|
||||||
animation = windowsOut, 1, 4, customcurve, popin 50%
|
{
|
||||||
animation = border, 1, 10, customcurve
|
match.class = "^(org.telegram.desktop)$";
|
||||||
animation = borderangle, 0, 1, customcurve
|
match.title = "^(Media viewer)$";
|
||||||
animation = fade, 1, 4, customcurve
|
float = true;
|
||||||
animation = workspaces, 1, 4, customcurve
|
center = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
dwindle {
|
|
||||||
pseudotile = yes
|
|
||||||
preserve_split = yes
|
|
||||||
}
|
|
||||||
|
|
||||||
master {
|
# --- Idle Inhibition ---
|
||||||
new_status = master
|
{ match.class = "^(.*)$"; idle_inhibit = "fullscreen"; }
|
||||||
}
|
{ match.class = "^(steam_app_.*)$"; idle_inhibit = "focus"; }
|
||||||
|
{ match.class = "^(mpv)$"; idle_inhibit = "focus"; }
|
||||||
|
|
||||||
gesture = 3, vertical, workspace
|
];
|
||||||
|
|
||||||
exec-once = eww open bar
|
|
||||||
#exec-once = waybar
|
|
||||||
exec-once = dunst
|
|
||||||
|
|
||||||
exec-once = swww init
|
# windowrule = [ "noshadow, floating:0" ];
|
||||||
|
|
||||||
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
|
# windowrulev2 = [
|
||||||
exec-once = /nix/store/$(ls -la /nix/store | grep 'polkit-gnome' | grep '4096' | awk '{print $9}' | sed -n '$p')/libexec/polkit-gnome-authentication-agent-1 &
|
# "workspace 2 silent, class:^(org.telegram.desktop)$"
|
||||||
|
# "workspace 2 silent, class:^(discord)$"
|
||||||
|
# "workspace 8 silent, class:^(org.keepassxc.KeePassXC)$"
|
||||||
|
# "workspace 8 silent, title:^(Nextcloud)$"
|
||||||
|
# "workspace 8 silent, class:^(Tk)$,title:^(Server Configuration)$"
|
||||||
|
# "float,class:^(org.keepassxc.KeePassXC)$,title:^(KeePassXC - Access Request)$"
|
||||||
|
# "pin,class:^(org.keepassxc.KeePassXC)$,title:^(KeePassXC - Access Request)$"
|
||||||
|
# "float,class:^(org.keepassxc.KeePassXC)$,title:^(Unlock Database - KeePassXC)$"
|
||||||
|
# "pin,class:^(org.keepassxc.KeePassXC)$,title:^(Unlock Database - KeePassXC)$"
|
||||||
|
# "float,title:^(Open)$"
|
||||||
|
# "float,title:^(Choose Files)$"
|
||||||
|
# "float,title:^(Save As)$"
|
||||||
|
# "float,title:^(Confirm to replace files)$"
|
||||||
|
# "float,title:^(File Operation Progress)$"
|
||||||
|
# "float,class:^(firefox)$,title:^(Picture-in-Picture)$"
|
||||||
|
# "pin,class:^(firefox)$,title:^(Picture-in-Picture)$"
|
||||||
|
# "suppressevent fullscreen,class:^(firefox)$,title:^(Picture-in-Picture)$"
|
||||||
|
# "float,class:^(firefox)$,title:^(Firefox — Sharing Indicator)$"
|
||||||
|
# "suppressevent fullscreen,class:^(firefox)$,title:^(Firefox — Sharing Indicator)$"
|
||||||
|
# "float,class:^(firefox)$,title:^(Extension:.* Mozilla Firefox)$"
|
||||||
|
# "suppressevent fullscreen,class:^(firefox)$,title:^(Extension:.* Mozilla Firefox)$"
|
||||||
|
# "float,class:^(org.telegram.desktop)$,title:^(Media viewer)$"
|
||||||
|
# "center,class:^(org.telegram.desktop)$,title:^(Media viewer)$"
|
||||||
|
# "idleinhibit fullscreen, class:^(.*)"
|
||||||
|
# "idleinhibit focus, class:^(steam_app_.*)$"
|
||||||
|
# "idleinhibit focus, class:^(mpv)$"
|
||||||
|
# ];
|
||||||
|
|
||||||
exec-once = wl-paste --type text --watch cliphist store #Stores only text data
|
layer_rule = [ {
|
||||||
exec-once = wl-paste --type image --watch cliphist store #Stores only image data
|
match.namespace = "^eww%-blur$";
|
||||||
|
blur = true;
|
||||||
|
ignore_alpha = 0.5;
|
||||||
|
}];
|
||||||
|
|
||||||
exec-once = swayidle -w timeout 600 'swaylock' before-sleep 'swaylock'
|
bind = [
|
||||||
|
(bind "SUPER + RETURN" (dsp.exec "kitty"))
|
||||||
|
(bind "SUPER + SHIFT + RETURN" (dsp.toggleSpecial "magic"))
|
||||||
|
(bind "SUPER + SHIFT + S" (dsp.moveToSpecial "magic"))
|
||||||
|
(bind "SUPER + Q" dsp.close)
|
||||||
|
(bind "SUPER + T" dsp.float)
|
||||||
|
(bind "SUPER + F" dsp.fullscreen)
|
||||||
|
(bind "SUPER + P" dsp.pseudo)
|
||||||
|
(bind "SUPER + J" (dsp.layout "togglesplit"))
|
||||||
|
(bind "SUPER + D" (dsp.exec "wofi -modi --show drun"))
|
||||||
|
(bind "SUPER + SHIFT + D" (dsp.exec "~/.config/hypr/themes/apatheia/eww/launch_bar"))
|
||||||
|
(bind "SUPER + V" (dsp.exec "cliphist list | wofi -dmenu | cliphist decode | wl-copy"))
|
||||||
|
(bind "PRINT" (dsp.exec "hyprshot -m region --raw | satty --filename - --early-exit --action-on-enter save-to-clipboard --copy-command 'wl-copy'"))
|
||||||
|
(bind "SUPER + L" (dsp.exec "swaylock"))
|
||||||
|
(bind "SUPER + left" (dsp.focus "left"))
|
||||||
|
(bind "SUPER + right" (dsp.focus "right"))
|
||||||
|
(bind "SUPER + up" (dsp.focus "up"))
|
||||||
|
(bind "SUPER + down" (dsp.focus "down"))
|
||||||
|
(bind "SUPER + mouse_down" (dsp.focusWorkspace "e+1"))
|
||||||
|
(bind "SUPER + mouse_up" (dsp.focusWorkspace "e-1"))
|
||||||
|
|
||||||
|
(bind "SUPER + 1" (dsp.focusWorkspace 1))
|
||||||
#windowrules
|
(bind "SUPER + SHIFT + 1" (dsp.moveToWorkspace 1))
|
||||||
windowrule = noshadow, floating:0
|
(bind "SUPER + 2" (dsp.focusWorkspace 2))
|
||||||
|
(bind "SUPER + SHIFT + 2" (dsp.moveToWorkspace 2))
|
||||||
windowrule = float, title:^(flying_kitty)$
|
(bind "SUPER + 3" (dsp.focusWorkspace 3))
|
||||||
windowrule = size 1100 600, title:^(flying_kitty)$
|
(bind "SUPER + SHIFT + 3" (dsp.moveToWorkspace 3))
|
||||||
windowrule = move center, title:^(flying_kitty)$
|
(bind "SUPER + 4" (dsp.focusWorkspace 4))
|
||||||
windowrule = animation slide, title:^(flying_kitty)$
|
(bind "SUPER + SHIFT + 4" (dsp.moveToWorkspace 4))
|
||||||
windowrule = float, title:^(Volume Control)$
|
(bind "SUPER + 5" (dsp.focusWorkspace 5))
|
||||||
windowrule = float, title:^(Picture-in-Picture)$
|
(bind "SUPER + SHIFT + 5" (dsp.moveToWorkspace 5))
|
||||||
windowrule = float, title:^(Steam)$
|
(bind "SUPER + 6" (dsp.focusWorkspace 6))
|
||||||
|
(bind "SUPER + SHIFT + 6" (dsp.moveToWorkspace 6))
|
||||||
windowrulev2 = workspace 2 silent, class:^(org.telegram.desktop)$
|
(bind "SUPER + 7" (dsp.focusWorkspace 7))
|
||||||
windowrulev2 = workspace 2 silent, class:^(discord)$
|
(bind "SUPER + SHIFT + 7" (dsp.moveToWorkspace 7))
|
||||||
|
(bind "SUPER + 8" (dsp.focusWorkspace 8))
|
||||||
windowrulev2 = workspace 8 silent, class:^(org.keepassxc.KeePassXC)$
|
(bind "SUPER + SHIFT + 8" (dsp.moveToWorkspace 8))
|
||||||
windowrulev2 = workspace 8 silent, title:^(Nextcloud)$
|
(bind "SUPER + 9" (dsp.focusWorkspace 9))
|
||||||
windowrulev2 = workspace 8 silent, class:^(Tk)$,title:^(Server Configuration)$
|
(bind "SUPER + SHIFT + 9" (dsp.moveToWorkspace 9))
|
||||||
|
(bind "SUPER + 0" (dsp.focusWorkspace 0))
|
||||||
#SPECIAL FLOATERS
|
(bind "SUPER + SHIFT + 0" (dsp.moveToWorkspace 0))
|
||||||
windowrulev2 = float,class:^(org.keepassxc.KeePassXC)$,title:^(KeePassXC - Access Request)$
|
(bind "XF86AudioPlay" (dsp.exec "playerctl play-pause"))
|
||||||
windowrulev2 = pin,class:^(org.keepassxc.KeePassXC)$,title:^(KeePassXC - Access Request)$
|
(bind "XF86AudioPrev" (dsp.exec "playerctl previous"))
|
||||||
windowrulev2 = float,class:^(org.keepassxc.KeePassXC)$,title:^(Unlock Database - KeePassXC)$
|
(bind "XF86AudioNext" (dsp.exec "playerctl next"))
|
||||||
windowrulev2 = pin,class:^(org.keepassxc.KeePassXC)$,title:^(Unlock Database - KeePassXC)$
|
(bindOpts "XF86AudioRaiseVolume" (dsp.exec "amixer -q sset 'Master' 5%+") { locked = true; repeating = true; })
|
||||||
windowrulev2 = float,title:^(Open)$
|
(bindOpts "XF86AudioLowerVolume" (dsp.exec "amixer -q sset 'Master' 5%-") { locked = true; repeating = true; })
|
||||||
windowrulev2 = float,title:^(Choose Files)$
|
(bindOpts "XF86AudioMute" (dsp.exec "amixer -q sset 'Master' toggle") { locked = true; })
|
||||||
windowrulev2 = float,title:^(Save As)$
|
(bindOpts "XF86MonBrightnessUp" (dsp.exec "brightnessctl s 5%+") { locked = true; repeating = true; })
|
||||||
windowrulev2 = float,title:^(Confirm to replace files)$
|
(bindOpts "XF86MonBrightnessDown" (dsp.exec "brightnessctl s 5%-") { locked = true; repeating = true; })
|
||||||
windowrulev2 = float,title:^(File Operation Progress)$
|
(bindOpts "SUPER + mouse:272" dsp.drag { mouse = true; })
|
||||||
windowrulev2 = float,class:^(firefox)$,title:^(Picture-in-Picture)$
|
(bindOpts "SUPER + mouse:273" dsp.resize { mouse = true; })
|
||||||
windowrulev2 = pin,class:^(firefox)$,title:^(Picture-in-Picture)$
|
];
|
||||||
windowrulev2 = suppressevent fullscreen,class:^(firefox)$,title:^(Picture-in-Picture)$
|
};
|
||||||
windowrulev2 = float,class:^(firefox)$,title:^(Firefox — Sharing Indicator)$
|
|
||||||
windowrulev2 = suppressevent fullscreen,class:^(firefox)$,title:^(Firefox — Sharing Indicator)$
|
|
||||||
windowrulev2 = float,class:^(firefox)$,title:^(Extension:.* Mozilla Firefox)$
|
|
||||||
windowrulev2 = suppressevent fullscreen,class:^(firefox)$,title:^(Extension:.* Mozilla Firefox)$
|
|
||||||
windowrulev2 = float,class:^(org.telegram.desktop)$,title:^(Media viewer)$
|
|
||||||
windowrulev2 = center,class:^(org.telegram.desktop)$,title:^(Media viewer)$
|
|
||||||
|
|
||||||
#SPECIAL NO SLEEP
|
|
||||||
windowrulev2 = idleinhibit fullscreen, class:^(.*)
|
|
||||||
windowrulev2 = idleinhibit focus, class:^(steam_app_.*)$
|
|
||||||
windowrulev2 = idleinhibit focus, class:^(mpv)$
|
|
||||||
|
|
||||||
layerrule = blur,^(eww-blur)
|
|
||||||
|
|
||||||
#binds
|
|
||||||
bind = SUPER, RETURN, exec, kitty
|
|
||||||
|
|
||||||
bind = SUPER_SHIFT, RETURN,togglespecialworkspace,
|
|
||||||
# bind = SUPER_SHIFT, RETURN, exec, kitty --title flying_kitty --single-instance
|
|
||||||
bind = SUPER, Q, killactive,
|
|
||||||
bind = SUPER, T, togglefloating,
|
|
||||||
bind = SUPER, F, fullscreen,
|
|
||||||
|
|
||||||
bind = SUPER, D, exec, wofi -modi --show drun
|
|
||||||
bind = SUPER SHIFT,D,exec, ~/.config/hypr/themes/apatheia/eww/launch_bar
|
|
||||||
|
|
||||||
bind = SUPER, V, exec, cliphist list | wofi -dmenu | cliphist decode | wl-copy
|
|
||||||
bind = , PRINT, exec, hyprshot -m region --raw | satty --filename - --early-exit --action-on-enter save-to-clipboard --copy-command 'wl-copy'
|
|
||||||
|
|
||||||
bind = SUPER, L, exec, swaylock
|
|
||||||
|
|
||||||
bind = SUPER, left, movefocus, l
|
|
||||||
bind = SUPER, right, movefocus, r
|
|
||||||
bind = SUPER, up, movefocus, u
|
|
||||||
bind = SUPER, down, movefocus, d
|
|
||||||
|
|
||||||
bind = SUPER, 1, workspace, 1
|
|
||||||
bind = SUPER, 2, workspace, 2
|
|
||||||
bind = SUPER, 3, workspace, 3
|
|
||||||
bind = SUPER, 4, workspace, 4
|
|
||||||
bind = SUPER, 5, workspace, 5
|
|
||||||
bind = SUPER, 6, workspace, 6
|
|
||||||
bind = SUPER, 7, workspace, 7
|
|
||||||
bind = SUPER, 8, workspace, 8
|
|
||||||
bind = SUPER, 9, workspace, 9
|
|
||||||
bind = SUPER, 0, workspace, 10
|
|
||||||
|
|
||||||
bind = SUPER SHIFT, 1, movetoworkspacesilent, 1
|
|
||||||
bind = SUPER SHIFT, 2, movetoworkspacesilent, 2
|
|
||||||
bind = SUPER SHIFT, 3, movetoworkspacesilent, 3
|
|
||||||
bind = SUPER SHIFT, 4, movetoworkspacesilent, 4
|
|
||||||
bind = SUPER SHIFT, 5, movetoworkspacesilent, 5
|
|
||||||
bind = SUPER SHIFT, 6, movetoworkspacesilent, 6
|
|
||||||
bind = SUPER SHIFT, 7, movetoworkspacesilent, 7
|
|
||||||
bind = SUPER SHIFT, 8, movetoworkspacesilent, 8
|
|
||||||
bind = SUPER SHIFT, 9, movetoworkspacesilent, 9
|
|
||||||
bind = SUPER SHIFT, 0, movetoworkspacesilent, 10
|
|
||||||
|
|
||||||
bind = SUPER, mouse_down, workspace, e+1
|
|
||||||
bind = SUPER, mouse_up, workspace, e-1
|
|
||||||
|
|
||||||
bindm = SUPER, mouse:272, movewindow
|
|
||||||
bindm = SUPER, mouse:273, resizewindow
|
|
||||||
bind = , XF86AudioPlay, exec, playerctl play-pause
|
|
||||||
bind = , XF86AudioPrev, exec, playerctl previous
|
|
||||||
bind = , XF86AudioNext, exec, playerctl next
|
|
||||||
bind = , XF86AudioRaiseVolume, exec, amixer -q sset 'Master' 5%+
|
|
||||||
bind = , XF86AudioLowerVolume, exec, amixer -q sset 'Master' 5%-
|
|
||||||
bind = , XF86AudioMute, exec, amixer -q sset 'Master' toggle
|
|
||||||
bind = , XF86MonBrightnessUp, exec, brightnessctl s 5%+
|
|
||||||
bind = , XF86MonBrightnessDown, exec, brightnessctl s 5%-
|
|
||||||
|
|
||||||
exec-once = [workspace special silent] kitty --title flying_kitty
|
|
||||||
exec-once = sh ~/.config/startup.sh
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
|
|
||||||
xdg.configFile."startup.sh".text = ''
|
|
||||||
#!/bin/sh
|
|
||||||
sleep 2
|
|
||||||
keepassxc &
|
|
||||||
firefox &
|
|
||||||
jellyfin-mpv-shim &
|
|
||||||
easyeffects --gapplication-service &
|
|
||||||
|
|
||||||
sleep 2
|
|
||||||
nextcloud &
|
|
||||||
#telegram-desktop&
|
|
||||||
#discord&
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
settings = rec {
|
settings = rec {
|
||||||
initial_session = {
|
initial_session = {
|
||||||
command = "zsh";
|
command = "start-hyprland";
|
||||||
user = "${config.syscfg.defaultUser}";
|
user = "${config.syscfg.defaultUser}";
|
||||||
};
|
};
|
||||||
default_session = initial_session;
|
default_session = initial_session;
|
||||||
|
|||||||
Reference in New Issue
Block a user