hyprland: to lua
This commit is contained in:
Generated
+40
-63
@@ -60,11 +60,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1772460678,
|
"lastModified": 1784368054,
|
||||||
"narHash": "sha256-NYaWs8fYJ38IgFld0hGSdT2LEVhrgO8SiRReBjIH7YY=",
|
"narHash": "sha256-zF1iJkBQSDWmRO4/LEeHR1SpKY0lqZaxkoQJpPS9K9U=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "aquamarine",
|
"repo": "aquamarine",
|
||||||
"rev": "5d2cb726b16ee349df443f84b64cff53221b6983",
|
"rev": "9b5f14d9483445e766294eb8fbe0b8f370269ed0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -285,28 +285,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"gitignore": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"hyprland",
|
|
||||||
"pre-commit-hooks",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1709087332,
|
|
||||||
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "gitignore.nix",
|
|
||||||
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "gitignore.nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"gnome-shell": {
|
"gnome-shell": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
@@ -384,11 +362,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1772461003,
|
"lastModified": 1776511930,
|
||||||
"narHash": "sha256-pVICsV7FtcEeVwg5y/LFh3XFUkVJninm/P1j/JHzEbM=",
|
"narHash": "sha256-fCpwFiTW0rT7oKJqr3cqHMnkwypSwQKpbtUEtxdkgrM=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprcursor",
|
"repo": "hyprcursor",
|
||||||
"rev": "b62396457b9cfe2ebf24fe05404b09d2a40f8ed7",
|
"rev": "39435900785d0c560c6ae8777d29f28617d031ef",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -413,11 +391,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1772461523,
|
"lastModified": 1782566056,
|
||||||
"narHash": "sha256-mI6A51do+hEUzeJKk9YSWfVHdI/SEEIBi2tp5Whq5mI=",
|
"narHash": "sha256-haEZcHzYrePnjFOYSWTbxm/Nrla0aPslJfmvdCvqtVc=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprgraphics",
|
"repo": "hyprgraphics",
|
||||||
"rev": "7d63c04b4a2dd5e59ef943b4b143f46e713df804",
|
"rev": "c6e7b9f673f4360bc813d3dc75028f75ee88d3f8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -443,16 +421,16 @@
|
|||||||
"xdph": "xdph"
|
"xdph": "xdph"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1773149218,
|
"lastModified": 1785170029,
|
||||||
"narHash": "sha256-m5Ewi+rgn18qPP54Um4O2zwZ02oiomlZssHvXYEUv3U=",
|
"narHash": "sha256-8CKDx282HhxlD1pwXPnC4uK29Abn1Jsnh7LgPzeIXxI=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "Hyprland",
|
"repo": "Hyprland",
|
||||||
"rev": "59f9f2688ac508a0584d1462151195a6c4992f99",
|
"rev": "5c9377c15f85c50648f35ca5a213754f95b93ca0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"ref": "v0.54.2-b",
|
"ref": "v0.56.1",
|
||||||
"repo": "Hyprland",
|
"repo": "Hyprland",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
@@ -490,11 +468,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1772467975,
|
"lastModified": 1784196523,
|
||||||
"narHash": "sha256-kipyuDBxrZq+beYpZqWzGvFWm4QbayW9agAvi94vDXY=",
|
"narHash": "sha256-ahtKMGXFJdlQNhatQm1+BBU/pGfGYnAqQt3vWvq4p8s=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprland-guiutils",
|
"repo": "hyprland-guiutils",
|
||||||
"rev": "5e1c6b9025aaf4d578f3eff7c0eb1f0c197a9507",
|
"rev": "a6ccb6cb112ed5a244c0191fb972347ecfa893e0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -574,11 +552,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1772459629,
|
"lastModified": 1777320127,
|
||||||
"narHash": "sha256-/iwvNUYShmmnwmz/czEUh6+0eF5vCMv0xtDW0STPIuM=",
|
"narHash": "sha256-Qu+Wf2Bp5qUjyn2YpZNq8a7JyzTGowhT1knrwE38a9U=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprlang",
|
"repo": "hyprlang",
|
||||||
"rev": "7615ee388de18239a4ab1400946f3d0e498a8186",
|
"rev": "090117506ddc3d7f26e650ff344d378c2ec329cc",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -626,11 +604,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1772462885,
|
"lastModified": 1782554491,
|
||||||
"narHash": "sha256-5pHXrQK9zasMnIo6yME6EOXmWGFMSnCITcfKshhKJ9I=",
|
"narHash": "sha256-+p3MlyN/nqRefcf2IckPlGRUn9+hielqpS9XClbLleM=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprtoolkit",
|
"repo": "hyprtoolkit",
|
||||||
"rev": "9af245a69fa6b286b88ddfc340afd288e00a6998",
|
"rev": "bdba25ced39ea39ab004a8f31593ba0b0ff1ca35",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -651,11 +629,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1772459870,
|
"lastModified": 1784323413,
|
||||||
"narHash": "sha256-xxkK2Cvqxpf/4UGcJ/TyCwrvmiNWsKsJfFzHMp2bxis=",
|
"narHash": "sha256-XnAVV+H4f8Xdv0yZcSwJ5kCjLyE8fHxPeLX6a3HSrAU=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprutils",
|
"repo": "hyprutils",
|
||||||
"rev": "e63f3a79334dec49f8eb1691f66f18115df04085",
|
"rev": "5f03477ab3a005ff27c527486f551883535aea2f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -676,11 +654,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1772459835,
|
"lastModified": 1777159683,
|
||||||
"narHash": "sha256-978jRz/y/9TKmZb/qD4lEYHCQGHpEXGqy+8X2lFZsak=",
|
"narHash": "sha256-Jxixw6wZphUp+nHYxOKUYSckL17QMBx2d5Zp0rJHr1g=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprwayland-scanner",
|
"repo": "hyprwayland-scanner",
|
||||||
"rev": "0a692d4a645165eebd65f109146b8861e3a925e7",
|
"rev": "b8632713a6beaf28b56f2a7b0ab2fb7088dbb404",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -705,11 +683,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1772463520,
|
"lastModified": 1778410714,
|
||||||
"narHash": "sha256-GIjASzYnV4fK19HnyJKmHyqyxHxIpjusK9foEA4Yo+4=",
|
"narHash": "sha256-o6RzFj4nJXaPRY7EM01siuCQeT41RfwwmcmFQqwFJJg=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprwire",
|
"repo": "hyprwire",
|
||||||
"rev": "4e1933ae5602b350c5b6633f5c932549c9b8aca2",
|
"rev": "85148a8e612808cf5ddb25d0b3c5840f3498a7dc",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -784,11 +762,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"nixpkgs_3": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1772542754,
|
"lastModified": 1784356753,
|
||||||
"narHash": "sha256-WGV2hy+VIeQsYXpsLjdr4GvHv5eECMISX1zKLTedhdg=",
|
"narHash": "sha256-12KrbMiWLcf8m7pCvAtZh1ZrgF85ZXDXvfR/fWTKy84=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "8c809a146a140c5c8806f13399592dbcb1bb5dc4",
|
"rev": "61b7c44c4073f0b827768aff0049561b5110ea5a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -890,18 +868,17 @@
|
|||||||
"pre-commit-hooks": {
|
"pre-commit-hooks": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_2",
|
"flake-compat": "flake-compat_2",
|
||||||
"gitignore": "gitignore",
|
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"hyprland",
|
"hyprland",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1772024342,
|
"lastModified": 1784288435,
|
||||||
"narHash": "sha256-+eXlIc4/7dE6EcPs9a2DaSY3fTA9AE526hGqkNID3Wg=",
|
"narHash": "sha256-ReRHaLgr/uVqdD8afFSn+myXIfpHeOhP0yYe0TJqAA8=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "git-hooks.nix",
|
"repo": "git-hooks.nix",
|
||||||
"rev": "6e34e97ed9788b17796ee43ccdbaf871a5c2b476",
|
"rev": "43b3c1ab9d40fb1dbb008f451988a91e375825e9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -1178,11 +1155,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1772476586,
|
"lastModified": 1784371182,
|
||||||
"narHash": "sha256-N/ZwsRLULLpBP5ecvAUzNq8E/CgLRwPwSrHyY3xB5KM=",
|
"narHash": "sha256-S8A1lezEalltWcCp3gAic5lssS0xTSISK6fKODefhOk=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "xdg-desktop-portal-hyprland",
|
"repo": "xdg-desktop-portal-hyprland",
|
||||||
"rev": "eb6c02a2ead882f3474f3d7f2fbe966b64ed5110",
|
"rev": "08d99f727944dd15e4740090305e31c5fb92a50a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|||||||
@@ -42,7 +42,7 @@
|
|||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
hyprland.url = "github:hyprwm/Hyprland/v0.54.2-b";
|
hyprland.url = "github:hyprwm/Hyprland/v0.56.1";
|
||||||
hyprland-plugins = {
|
hyprland-plugins = {
|
||||||
url = "github:hyprwm/hyprland-plugins";
|
url = "github:hyprwm/hyprland-plugins";
|
||||||
inputs.hyprland.follows = "hyprland";
|
inputs.hyprland.follows = "hyprland";
|
||||||
|
|||||||
@@ -1,27 +1,40 @@
|
|||||||
{ pkgs, lib, ... }: {
|
{ pkgs, lib, ... }:
|
||||||
wayland.windowManager.hyprland = let
|
let
|
||||||
wallpaper = pkgs.fetchurl {
|
hyprLua = import ../../../modules/user/hyprland/lua.nix { inherit lib; };
|
||||||
name = "miku_wallpaper.jpg";
|
wallpaper = pkgs.fetchurl {
|
||||||
url = "https://c.lair.moe/pub/miku_wallpaper.jpeg?raw";
|
name = "miku_wallpaper.jpg";
|
||||||
hash = "sha256-inK4X5KzQk5FHwDw2DYy43nm7XtXlC6I0S1PkYUv+3w=";
|
url = "https://c.lair.moe/pub/miku_wallpaper.jpeg?raw";
|
||||||
};
|
hash = "sha256-inK4X5KzQk5FHwDw2DYy43nm7XtXlC6I0S1PkYUv+3w=";
|
||||||
in {
|
};
|
||||||
settings = {
|
in {
|
||||||
monitor = [
|
wayland.windowManager.hyprland.settings = {
|
||||||
"DP-3 , 1920x1080@165, 0x0 , 1"
|
monitor = [
|
||||||
"HDMI-A-1, preferred , -1080x0, 1, transform, 1"
|
{
|
||||||
];
|
output = "DP-3";
|
||||||
|
mode = "1920x1080@165";
|
||||||
|
position = "0x0";
|
||||||
|
scale = 1;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
output = "HDMI-A-1";
|
||||||
|
mode = "preferred";
|
||||||
|
position = "-1080x0";
|
||||||
|
scale = 1;
|
||||||
|
transform = 1;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
workspace = [
|
workspace_rule = [
|
||||||
"1, monitor:DP-3, default:true"
|
{ workspace = "1"; monitor = "DP-3"; default = true; }
|
||||||
"10, monitor:HDMI-A-1, default:true"
|
{ workspace = "10"; monitor = "HDMI-A-1"; default = true; }
|
||||||
];
|
];
|
||||||
|
|
||||||
exec-once = [
|
on = [
|
||||||
"hyprctl dispatch workspace 1"
|
(hyprLua.onStart [
|
||||||
|
"hyprctl dispatch 'hl.dsp.focus({ workspace = 1 })'"
|
||||||
"${lib.getExe pkgs.swww} img -o HDMI-A-1 ${wallpaper}"
|
"${lib.getExe pkgs.swww} img -o HDMI-A-1 ${wallpaper}"
|
||||||
"${lib.getExe pkgs.linux-wallpaperengine} ~/.local/share/wpe/wallpaper --assets-dir ~/.local/share/wpe/assets --screen-root DP-3 --noautomute"
|
"${lib.getExe pkgs.linux-wallpaperengine} ~/.local/share/wpe/wallpaper --assets-dir ~/.local/share/wpe/assets --screen-root DP-3 --noautomute"
|
||||||
];
|
])
|
||||||
};
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
{ pkgs, lib, ... }: {
|
{ pkgs, lib, ... }:
|
||||||
wayland.windowManager.hyprland = let
|
let
|
||||||
wallpaper = pkgs.fetchurl {
|
hyprLua = import ../../../modules/user/hyprland/lua.nix { inherit lib; };
|
||||||
name = "miku_wallpaper.jpg";
|
wallpaper = pkgs.fetchurl {
|
||||||
url = "https://c.lair.moe/pub/miku_wallpaper.jpeg?raw";
|
name = "miku_wallpaper.jpg";
|
||||||
hash = "sha256-inK4X5KzQk5FHwDw2DYy43nm7XtXlC6I0S1PkYUv+3w=";
|
url = "https://c.lair.moe/pub/miku_wallpaper.jpeg?raw";
|
||||||
};
|
hash = "sha256-inK4X5KzQk5FHwDw2DYy43nm7XtXlC6I0S1PkYUv+3w=";
|
||||||
in {
|
|
||||||
settings = {
|
|
||||||
exec-once = [
|
|
||||||
"${lib.getExe pkgs.swww} img -o eDP-1 ${wallpaper}"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
in {
|
||||||
|
wayland.windowManager.hyprland.settings.on = [
|
||||||
|
(hyprLua.onStart [
|
||||||
|
"${lib.getExe pkgs.swww} img -o eDP-1 ${wallpaper}"
|
||||||
|
])
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
{
|
{
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland.settings.monitor = [
|
||||||
settings = {
|
{
|
||||||
monitor = [
|
output = "eDP-1";
|
||||||
"eDP-1, 1920x1080@60, 0x0, 1"
|
mode = "1920x1080@60";
|
||||||
];
|
position = "0x0";
|
||||||
};
|
scale = 1;
|
||||||
};
|
}
|
||||||
}
|
];
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,44 +1,50 @@
|
|||||||
{ pkgs, lib, ...}: {
|
{ pkgs, lib, ... }:
|
||||||
wayland.windowManager.hyprland = let
|
let
|
||||||
monitor-switcher = pkgs.writers.writeBashBin "monitor_switcher" /*bash*/ ''
|
hyprLua = import ../../../modules/user/hyprland/lua.nix { inherit lib; };
|
||||||
MODE=$1
|
|
||||||
|
|
||||||
case $MODE in
|
monitor-switcher = pkgs.writers.writeBashBin "monitor_switcher" /*bash*/ ''
|
||||||
"tv")
|
MODE=$1
|
||||||
hyprctl keyword monitor "DP-3, 1920x1080@60, 3840x0, 1"
|
|
||||||
hyprctl keyword monitor "HDMI-A-1, 3840x2160@60, 0x0, 1"
|
|
||||||
notify-send "TV mode"
|
|
||||||
;;
|
|
||||||
|
|
||||||
"mirror")
|
case $MODE in
|
||||||
hyprctl keyword monitor "HDMI-A-1, 3840x2160@60, 0x0, 1"
|
"tv")
|
||||||
hyprctl keyword monitor "DP-3, preferred, auto, 1, mirror, HDMI-A-1"
|
hyprctl eval 'hl.monitor({ output = "DP-3", mode = "1920x1080@60", position = "3840x0", scale = 1 })'
|
||||||
notify-send "TV-only mode"
|
hyprctl eval 'hl.monitor({ output = "HDMI-A-1", mode = "3840x2160@60", position = "0x0", scale = 1 })'
|
||||||
;;
|
notify-send "TV mode"
|
||||||
|
;;
|
||||||
|
|
||||||
"display"|*)
|
"mirror")
|
||||||
hyprctl keyword monitor "HDMI-A-1, disable"
|
hyprctl eval 'hl.monitor({ output = "HDMI-A-1", mode = "3840x2160@60", position = "0x0", scale = 1 })'
|
||||||
hyprctl keyword monitor "DP-3, 3440x1440@165, 0x0, 1"
|
hyprctl eval 'hl.monitor({ output = "DP-3", mode = "preferred", position = "auto", scale = 1, mirror = "HDMI-A-1" })'
|
||||||
notify-send "Display mode"
|
notify-send "TV-only mode"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
esac
|
"display"|*)
|
||||||
'';
|
hyprctl eval 'hl.monitor({ output = "HDMI-A-1", disabled = true })'
|
||||||
in {
|
hyprctl eval 'hl.monitor({ output = "DP-3", mode = "3440x1440@165", position = "0x0", scale = 1 })'
|
||||||
settings = {
|
notify-send "Display mode"
|
||||||
monitor = [
|
;;
|
||||||
"DP-3, 3440x1440@165, auto-right, 1"
|
esac
|
||||||
# "HDMI-A-1, 3840x2160@60, auto-left, 2"
|
'';
|
||||||
"HDMI-A-1, disabled"
|
in {
|
||||||
];
|
wayland.windowManager.hyprland.settings = {
|
||||||
|
monitor = [
|
||||||
|
{
|
||||||
|
output = "DP-3";
|
||||||
|
mode = "3440x1440@165";
|
||||||
|
position = "auto-right";
|
||||||
|
scale = 1;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
output = "HDMI-A-1";
|
||||||
|
disabled = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
bind = [
|
bind = [
|
||||||
'', XF86Calculator, exec, ghostty --title=pulsemixer -e pulsemixer''
|
(hyprLua.bind "XF86Calculator" (hyprLua.exec "ghostty --title=pulsemixer -e pulsemixer"))
|
||||||
|
(hyprLua.bind "SUPER + F1" (hyprLua.exec "${lib.getExe monitor-switcher} tv"))
|
||||||
''$mainMod, F1, exec, ${lib.getExe monitor-switcher} tv''
|
(hyprLua.bind "SUPER + F2" (hyprLua.exec "${lib.getExe monitor-switcher} mirror"))
|
||||||
''$mainMod, F2, exec, ${lib.getExe monitor-switcher} mirror''
|
(hyprLua.bind "SUPER + F3" (hyprLua.exec "${lib.getExe monitor-switcher}"))
|
||||||
''$mainMod, F3, exec, ${lib.getExe monitor-switcher}''
|
];
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
{
|
{
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland.settings.monitor = [
|
||||||
settings = {
|
{
|
||||||
monitor = [
|
output = "eDP-1";
|
||||||
"eDP-1, 1920x1080@60, 0x0, 1"
|
mode = "1920x1080@60";
|
||||||
];
|
position = "0x0";
|
||||||
};
|
scale = 1;
|
||||||
};
|
}
|
||||||
}
|
];
|
||||||
|
}
|
||||||
|
|||||||
+150
-174
@@ -1,6 +1,26 @@
|
|||||||
{ pkgs, lib, config, osConfig, inputs, username, ... }: let
|
{ pkgs, lib, config, osConfig, inputs, username, ... }:
|
||||||
|
let
|
||||||
optImport = path: lib.optional (builtins.pathExists path) path;
|
optImport = path: lib.optional (builtins.pathExists path) path;
|
||||||
hostname = osConfig.networking.hostName;
|
hostname = osConfig.networking.hostName;
|
||||||
|
hyprLua = import ./hyprland/lua.nix { inherit lib; };
|
||||||
|
inherit (hyprLua) bind bindWithFlags exec onStart;
|
||||||
|
|
||||||
|
direction = {
|
||||||
|
left = "l";
|
||||||
|
right = "r";
|
||||||
|
up = "u";
|
||||||
|
down = "d";
|
||||||
|
};
|
||||||
|
|
||||||
|
workspaceBinds = lib.concatMap (workspace:
|
||||||
|
let
|
||||||
|
key = if workspace == 10 then "0" else toString workspace;
|
||||||
|
workspaceValue = toString workspace;
|
||||||
|
in [
|
||||||
|
(bind "SUPER + ${key}" "hl.dsp.focus({ workspace = ${workspaceValue} })")
|
||||||
|
(bind "SUPER + SHIFT + ${key}" "hl.dsp.window.move({ workspace = ${workspaceValue}, follow = false })")
|
||||||
|
]
|
||||||
|
) (lib.range 1 10);
|
||||||
in {
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
./hyprland/zoom.nix
|
./hyprland/zoom.nix
|
||||||
@@ -19,11 +39,9 @@ in {
|
|||||||
wifitui
|
wifitui
|
||||||
];
|
];
|
||||||
|
|
||||||
wayland.windowManager.hyprland = let
|
wayland.windowManager.hyprland = {
|
||||||
colors = config.lib.stylix.colors;
|
|
||||||
in {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
configType = "hyprlang";
|
configType = "lua";
|
||||||
xwayland.enable = true;
|
xwayland.enable = true;
|
||||||
|
|
||||||
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
||||||
@@ -32,200 +50,158 @@ in {
|
|||||||
];
|
];
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
"$mainMod" = "SUPER";
|
config = {
|
||||||
|
ecosystem = {
|
||||||
|
no_donation_nag = true;
|
||||||
|
no_update_news = true;
|
||||||
|
};
|
||||||
|
|
||||||
ecosystem = {
|
cursor.no_hardware_cursors = 1;
|
||||||
no_donation_nag = true;
|
|
||||||
no_update_news = true;
|
debug = {
|
||||||
|
disable_logs = false;
|
||||||
|
enable_stdout_logs = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
general."col.inactive_border" = lib.mkForce "rgba(00000000)";
|
||||||
|
|
||||||
|
decoration = {
|
||||||
|
inactive_opacity = lib.mkDefault 0.95;
|
||||||
|
border_part_of_window = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
misc.focus_on_activate = true;
|
||||||
|
|
||||||
|
input = {
|
||||||
|
kb_layout = "us,ru";
|
||||||
|
kb_options = "grp:caps_toggle";
|
||||||
|
numlock_by_default = true;
|
||||||
|
follow_mouse = 1;
|
||||||
|
touchpad.natural_scroll = false;
|
||||||
|
sensitivity = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
gestures = {
|
||||||
|
workspace_swipe_invert = true;
|
||||||
|
workspace_swipe_distance = 200;
|
||||||
|
workspace_swipe_forever = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
env = [
|
env = [
|
||||||
"XDG_SESSION_TYPE,wayland"
|
{ _args = [ "XDG_SESSION_TYPE" "wayland" ]; }
|
||||||
"QT_QPA_PLATFORM,wayland"
|
{ _args = [ "QT_QPA_PLATFORM" "wayland" ]; }
|
||||||
"QT_QPA_PLATFORMTHEME,xdgdesktopportal"
|
{ _args = [ "QT_QPA_PLATFORMTHEME" "xdgdesktopportal" ]; }
|
||||||
"GTK_USE_PORTAL,1"
|
{ _args = [ "GTK_USE_PORTAL" "1" ]; }
|
||||||
"TDESKTOP_USE_GTK_FILE_DIALOG,1"
|
{ _args = [ "TDESKTOP_USE_GTK_FILE_DIALOG" "1" ]; }
|
||||||
"NIXOS_OZONE_WL,1"
|
{ _args = [ "NIXOS_OZONE_WL" "1" ]; }
|
||||||
"ELECTRON_OZONE_PLATFORM_HINT,auto"
|
{ _args = [ "ELECTRON_OZONE_PLATFORM_HINT" "auto" ]; }
|
||||||
|
{ _args = [ "XDG_CURRENT_DESKTOP" "Hyprland" ]; }
|
||||||
"XDG_CURRENT_DESKTOP,Hyprland"
|
{ _args = [ "XDG_SESSION_DESKTOP" "Hyprland" ]; }
|
||||||
"XDG_SESSION_DESKTOP,Hyprland"
|
{ _args = [ "XCURSOR_SIZE" (toString config.stylix.cursor.size) ]; }
|
||||||
|
{ _args = [ "XCURSOR_THEME" config.stylix.cursor.name ]; }
|
||||||
"XCURSOR_SIZE, ${toString config.stylix.cursor.size}"
|
{ _args = [ "XDG_SCREENSHOTS_DIR" "~/screens" ]; }
|
||||||
"XCURSOR_THEME, ${config.stylix.cursor.name}"
|
|
||||||
|
|
||||||
"XDG_SCREENSHOTS_DIR,~/screens"
|
|
||||||
];
|
];
|
||||||
|
|
||||||
cursor.no_hardware_cursors = true;
|
|
||||||
|
|
||||||
debug = {
|
|
||||||
disable_logs = false;
|
|
||||||
enable_stdout_logs = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
general = {
|
|
||||||
"col.inactive_border" = lib.mkForce "rgba(00000000)";
|
|
||||||
};
|
|
||||||
|
|
||||||
decoration.inactive_opacity = lib.mkDefault .95;
|
|
||||||
decoration.border_part_of_window = false;
|
|
||||||
|
|
||||||
misc = {
|
|
||||||
focus_on_activate = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
input = {
|
|
||||||
kb_layout = "us,ru";
|
|
||||||
kb_options = "grp:caps_toggle";
|
|
||||||
numlock_by_default = true;
|
|
||||||
|
|
||||||
follow_mouse = 1;
|
|
||||||
|
|
||||||
touchpad = {
|
|
||||||
natural_scroll = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
sensitivity = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
gestures = {
|
|
||||||
workspace_swipe_invert = true;
|
|
||||||
workspace_swipe_distance = 200;
|
|
||||||
workspace_swipe_forever = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
gesture = [
|
gesture = [
|
||||||
"3, horizontal, workspace"
|
{
|
||||||
|
fingers = 3;
|
||||||
|
direction = "horizontal";
|
||||||
|
action = "workspace";
|
||||||
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
workspace = [
|
workspace_rule = [
|
||||||
"w[t1], gapsout:0"
|
{
|
||||||
|
workspace = "w[t1]";
|
||||||
|
gaps_out = 0;
|
||||||
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
windowrule = [
|
window_rule = [
|
||||||
"match:class imv, float 1"
|
{ match.class = "imv"; float = true; }
|
||||||
"match:class feh, float 1"
|
{ match.class = "feh"; float = true; }
|
||||||
"match:class mpv, float 1"
|
{ match.class = "mpv"; float = true; }
|
||||||
|
{ match.title = "Список друзей"; float = true; }
|
||||||
"match:title Список друзей, float 1"
|
{ match.title = "wifitui"; float = true; }
|
||||||
"match:title wifitui, float 1"
|
{ match.title = "pulsemixer"; float = true; }
|
||||||
"match:title pulsemixer, float 1"
|
{ match.title = "clipse"; float = true; }
|
||||||
|
{ match.title = "clipse"; size = [ 622 652 ]; }
|
||||||
"match:title clipse, float 1"
|
{ match.focus = true; rounding = 0; }
|
||||||
"match:title clipse, size 622 652"
|
{
|
||||||
|
match = {
|
||||||
"match:focus 1, rounding 0"
|
float = false;
|
||||||
"match:float 0, match:workspace w[t1], border_size 0"
|
workspace = "w[t1]";
|
||||||
|
};
|
||||||
|
border_size = 0;
|
||||||
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
exec-once = lib.mkBefore [
|
on = lib.mkBefore [
|
||||||
"systemctl --user start plasma-polkit-agent"
|
(onStart [
|
||||||
"${lib.getExe' pkgs.dbus "dbus-update-activation-environment"} --systemd --all"
|
"systemctl --user start plasma-polkit-agent"
|
||||||
"systemctl --user import-environment XDG_CURRENT_DESKTOP XDG_SESSION_DESKTOP XDG_SESSION_TYPE WAYLAND_DISPLAY DISPLAY GTK_USE_PORTAL QT_QPA_PLATFORMTHEME TDESKTOP_USE_GTK_FILE_DIALOG NIXOS_OZONE_WL ELECTRON_OZONE_PLATFORM_HINT"
|
"${lib.getExe' pkgs.dbus "dbus-update-activation-environment"} --systemd --all"
|
||||||
"awww-daemon"
|
"systemctl --user import-environment XDG_CURRENT_DESKTOP XDG_SESSION_DESKTOP XDG_SESSION_TYPE WAYLAND_DISPLAY DISPLAY GTK_USE_PORTAL QT_QPA_PLATFORMTHEME TDESKTOP_USE_GTK_FILE_DIALOG NIXOS_OZONE_WL ELECTRON_OZONE_PLATFORM_HINT"
|
||||||
"wl-clip-persist --clipboard both"
|
"awww-daemon"
|
||||||
"clipse -listen"
|
"wl-clip-persist --clipboard both"
|
||||||
"${lib.getExe' pkgs.udiskie "udiskie"}"
|
"clipse -listen"
|
||||||
|
"${lib.getExe' pkgs.udiskie "udiskie"}"
|
||||||
|
])
|
||||||
];
|
];
|
||||||
|
|
||||||
bind = [
|
bind = [
|
||||||
"$mainMod, V, exec, ghostty --title=clipse -e clipse"
|
(bind "SUPER + V" (exec "ghostty --title=clipse -e clipse"))
|
||||||
|
(bind "SUPER + RETURN" (exec "ghostty"))
|
||||||
|
(bind "SUPER + Q" "hl.dsp.window.close()")
|
||||||
|
(bind "SUPER + M" "hl.dsp.exit()")
|
||||||
|
(bind "SUPER + E" (exec "ghostty -e sh -c yazi"))
|
||||||
|
(bind "SUPER + F" "hl.dsp.window.float({ action = \"toggle\" })")
|
||||||
|
(bind "SUPER + P" "hl.dsp.window.pseudo({ action = \"toggle\" })")
|
||||||
|
(bind "SUPER + J" "hl.dsp.layout(\"togglesplit\")")
|
||||||
|
(bind "SUPER + K" "hl.dsp.layout(\"swapsplit\")")
|
||||||
|
|
||||||
"$mainMod, Return, exec, ghostty"
|
(bind "SUPER + LEFT" "hl.dsp.focus({ direction = \"${direction.left}\" })")
|
||||||
"$mainMod, Q, killactive,"
|
(bind "SUPER + RIGHT" "hl.dsp.focus({ direction = \"${direction.right}\" })")
|
||||||
"$mainMod, M, exit,"
|
(bind "SUPER + UP" "hl.dsp.focus({ direction = \"${direction.up}\" })")
|
||||||
"$mainMod, E, exec, ghostty -e sh -c yazi"
|
(bind "SUPER + DOWN" "hl.dsp.focus({ direction = \"${direction.down}\" })")
|
||||||
"$mainMod, F, togglefloating,"
|
|
||||||
"$mainMod, P, pseudo, # dwindle"
|
|
||||||
"$mainMod, J, layoutmsg, togglesplit"
|
|
||||||
"$mainMod, K, layoutmsg, swapsplit"
|
|
||||||
|
|
||||||
# Move focus with mainMod + arrow keys
|
(bind "SUPER + SHIFT + LEFT" "hl.dsp.window.swap({ direction = \"${direction.left}\" })")
|
||||||
"$mainMod, left, movefocus, l"
|
(bind "SUPER + SHIFT + RIGHT" "hl.dsp.window.swap({ direction = \"${direction.right}\" })")
|
||||||
"$mainMod, right, movefocus, r"
|
(bind "SUPER + SHIFT + UP" "hl.dsp.window.swap({ direction = \"${direction.up}\" })")
|
||||||
"$mainMod, up, movefocus, u"
|
(bind "SUPER + SHIFT + DOWN" "hl.dsp.window.swap({ direction = \"${direction.down}\" })")
|
||||||
"$mainMod, down, movefocus, d"
|
|
||||||
|
|
||||||
# Moving windows
|
(bind "SUPER + CTRL + LEFT" "hl.dsp.window.resize({ x = -60, y = 0, relative = true })")
|
||||||
"$mainMod SHIFT, left, swapwindow, l"
|
(bind "SUPER + CTRL + RIGHT" "hl.dsp.window.resize({ x = 60, y = 0, relative = true })")
|
||||||
"$mainMod SHIFT, right, swapwindow, r"
|
(bind "SUPER + CTRL + UP" "hl.dsp.window.resize({ x = 0, y = -60, relative = true })")
|
||||||
"$mainMod SHIFT, up, swapwindow, u"
|
(bind "SUPER + CTRL + DOWN" "hl.dsp.window.resize({ x = 0, y = 60, relative = true })")
|
||||||
"$mainMod SHIFT, down, swapwindow, d"
|
] ++ workspaceBinds ++ [
|
||||||
|
(bind "SUPER + SHIFT + F" "hl.dsp.window.fullscreen({ action = \"toggle\", mode = \"fullscreen\" })")
|
||||||
|
(bind "SUPER + mouse_down" "hl.dsp.focus({ workspace = \"e-1\" })")
|
||||||
|
(bind "SUPER + mouse_up" "hl.dsp.focus({ workspace = \"e+1\" })")
|
||||||
|
|
||||||
# Window resizing X Y
|
(bind "SUPER + F3" (exec "${lib.getExe pkgs.brightnessctl} -d *::kbd_backlight set +33%"))
|
||||||
"$mainMod CTRL, left, resizeactive, -60 0"
|
(bind "SUPER + F2" (exec "${lib.getExe pkgs.brightnessctl} -d *::kbd_backlight set 33%-"))
|
||||||
"$mainMod CTRL, right, resizeactive, 60 0"
|
|
||||||
"$mainMod CTRL, up, resizeactive, 0 -60"
|
|
||||||
"$mainMod CTRL, down, resizeactive, 0 60"
|
|
||||||
|
|
||||||
# Switch workspaces with mainMod + [0-9]
|
(bind "XF86AudioMute" (exec "pamixer -t"))
|
||||||
"$mainMod, 1, workspace, 1"
|
(bind "XF86AudioMicMute" (exec "pamixer --default-source -m"))
|
||||||
"$mainMod, 2, workspace, 2"
|
(bind "XF86AudioPlay" (exec "${lib.getExe pkgs.playerctl} play-pause"))
|
||||||
"$mainMod, 3, workspace, 3"
|
(bind "XF86Explorer" (exec "ghostty -e sh -c yazi"))
|
||||||
"$mainMod, 4, workspace, 4"
|
(bind "XF86Mail" (exec "thunderbird"))
|
||||||
"$mainMod, 5, workspace, 5"
|
(bind "XF86WWW" (exec "google-chrome-stable"))
|
||||||
"$mainMod, 6, workspace, 6"
|
|
||||||
"$mainMod, 7, workspace, 7"
|
|
||||||
"$mainMod, 8, workspace, 8"
|
|
||||||
"$mainMod, 9, workspace, 9"
|
|
||||||
"$mainMod, 0, workspace, 10"
|
|
||||||
|
|
||||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
(bind "XF86MonBrightnessDown" (exec "${lib.getExe pkgs.brightnessctl} set 5%-"))
|
||||||
"$mainMod SHIFT, 1, movetoworkspacesilent, 1"
|
(bind "XF86MonBrightnessUp" (exec "${lib.getExe pkgs.brightnessctl} set +5%"))
|
||||||
"$mainMod SHIFT, 2, movetoworkspacesilent, 2"
|
|
||||||
"$mainMod SHIFT, 3, movetoworkspacesilent, 3"
|
|
||||||
"$mainMod SHIFT, 4, movetoworkspacesilent, 4"
|
|
||||||
"$mainMod SHIFT, 5, movetoworkspacesilent, 5"
|
|
||||||
"$mainMod SHIFT, 6, movetoworkspacesilent, 6"
|
|
||||||
"$mainMod SHIFT, 7, movetoworkspacesilent, 7"
|
|
||||||
"$mainMod SHIFT, 8, movetoworkspacesilent, 8"
|
|
||||||
"$mainMod SHIFT, 9, movetoworkspacesilent, 9"
|
|
||||||
"$mainMod SHIFT, 0, movetoworkspacesilent, 10"
|
|
||||||
|
|
||||||
"$mainMod SHIFT, F, fullscreen"
|
(bindWithFlags "XF86AudioRaiseVolume" (exec "pamixer -i 5") { repeating = true; })
|
||||||
|
(bindWithFlags "XF86AudioLowerVolume" (exec "pamixer -d 5") { repeating = true; })
|
||||||
|
|
||||||
# Scroll through existing workspaces with mainMod + scroll
|
(bindWithFlags "XF86AudioPrev" (exec "${lib.getExe pkgs.playerctl} position 5-") { click = true; })
|
||||||
"$mainMod, mouse_down, workspace, e-1"
|
(bindWithFlags "XF86AudioNext" (exec "${lib.getExe pkgs.playerctl} position 5+") { click = true; })
|
||||||
"$mainMod, mouse_up, workspace, e+1"
|
(bindWithFlags "XF86AudioPrev" (exec "${lib.getExe pkgs.playerctl} previous") { long_press = true; })
|
||||||
|
(bindWithFlags "XF86AudioNext" (exec "${lib.getExe pkgs.playerctl} next") { long_press = true; })
|
||||||
|
|
||||||
# Keyboard backlight
|
(bindWithFlags "SUPER + mouse:272" "hl.dsp.window.drag()" { mouse = true; })
|
||||||
"$mainMod, F3, exec, ${lib.getExe pkgs.brightnessctl} -d *::kbd_backlight set +33%"
|
(bindWithFlags "SUPER + mouse:273" "hl.dsp.window.resize()" { mouse = true; })
|
||||||
"$mainMod, F2, exec, ${lib.getExe pkgs.brightnessctl} -d *::kbd_backlight set 33%-"
|
|
||||||
|
|
||||||
# Volume and Media Control
|
|
||||||
", XF86AudioMute, exec, pamixer -t"
|
|
||||||
", XF86AudioMicMute, exec, pamixer --default-source -m"
|
|
||||||
", XF86AudioPlay, exec, ${lib.getExe pkgs.playerctl} play-pause"
|
|
||||||
|
|
||||||
", XF86Explorer, exec, ghostty -e sh -c yazi"
|
|
||||||
", XF86Mail, exec, thunderbird"
|
|
||||||
", XF86WWW, exec, google-chrome-stable" # TODO: Replace hard-code to some variable
|
|
||||||
|
|
||||||
# Brightness control
|
|
||||||
", XF86MonBrightnessDown, exec, ${lib.getExe pkgs.brightnessctl} set 5%- "
|
|
||||||
", XF86MonBrightnessUp, exec, ${lib.getExe pkgs.brightnessctl} set +5% "
|
|
||||||
];
|
|
||||||
|
|
||||||
binde = [
|
|
||||||
", XF86AudioRaiseVolume, exec, pamixer -i 5 "
|
|
||||||
", XF86AudioLowerVolume, exec, pamixer -d 5 "
|
|
||||||
];
|
|
||||||
|
|
||||||
bindc = [
|
|
||||||
", XF86AudioPrev, exec, ${lib.getExe pkgs.playerctl} position 5-"
|
|
||||||
", XF86AudioNext, exec, ${lib.getExe pkgs.playerctl} position 5+"
|
|
||||||
];
|
|
||||||
|
|
||||||
bindo = [
|
|
||||||
", XF86AudioPrev, exec, ${lib.getExe pkgs.playerctl} previous"
|
|
||||||
", XF86AudioNext, exec, ${lib.getExe pkgs.playerctl} next"
|
|
||||||
];
|
|
||||||
|
|
||||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
|
||||||
bindm = [
|
|
||||||
"$mainMod, mouse:272, movewindow"
|
|
||||||
"$mainMod, mouse:273, resizewindow"
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -0,0 +1,35 @@
|
|||||||
|
{ lib }:
|
||||||
|
let
|
||||||
|
inline = lib.generators.mkLuaInline;
|
||||||
|
quote = builtins.toJSON;
|
||||||
|
in rec {
|
||||||
|
inherit inline;
|
||||||
|
|
||||||
|
exec = command: "hl.dsp.exec_cmd(${quote command})";
|
||||||
|
|
||||||
|
bind = keys: dispatcher: {
|
||||||
|
_args = [
|
||||||
|
keys
|
||||||
|
(inline dispatcher)
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
bindWithFlags = keys: dispatcher: flags: {
|
||||||
|
_args = [
|
||||||
|
keys
|
||||||
|
(inline dispatcher)
|
||||||
|
flags
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
onStart = commands: {
|
||||||
|
_args = [
|
||||||
|
"hyprland.start"
|
||||||
|
(inline (
|
||||||
|
"function()\n"
|
||||||
|
+ lib.concatMapStringsSep "\n" (command: " hl.exec_cmd(${quote command})") commands
|
||||||
|
+ "\nend"
|
||||||
|
))
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,21 +1,32 @@
|
|||||||
{
|
{ lib, ... }:
|
||||||
wayland.windowManager.hyprland.settings = {
|
let
|
||||||
bind = [
|
hyprLua = import ./lua.nix { inherit lib; };
|
||||||
# "$mainMod, mouse_down, exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor -j | jq '.float * 1.1')"
|
inherit (hyprLua) bind bindWithFlags;
|
||||||
# "$mainMod, mouse_up , exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor -j | jq '(.float * 0.9) | if . < 1 then 1 else . end')"
|
|
||||||
|
|
||||||
"$mainMod SHIFT, mouse_up , exec, hyprctl -q keyword cursor:zoom_factor 1"
|
resetZoom = ''function()
|
||||||
"$mainMod SHIFT, mouse_down , exec, hyprctl -q keyword cursor:zoom_factor 1"
|
hl.config({ cursor = { zoom_factor = 1 } })
|
||||||
"$mainMod SHIFT, minus , exec, hyprctl -q keyword cursor:zoom_factor 1"
|
end'';
|
||||||
"$mainMod SHIFT, KP_SUBTRACT, exec, hyprctl -q keyword cursor:zoom_factor 1"
|
|
||||||
"$mainMod SHIFT, 0 , exec, hyprctl -q keyword cursor:zoom_factor 1"
|
|
||||||
];
|
|
||||||
|
|
||||||
binde = [
|
zoomIn = ''function()
|
||||||
"$mainMod, equal , exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor -j | jq '.float * 1.1')"
|
local current = hl.get_config("cursor.zoom_factor")
|
||||||
"$mainMod, minus , exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor -j | jq '(.float * 0.9) | if . < 1 then 1 else . end')"
|
hl.config({ cursor = { zoom_factor = current * 1.1 } })
|
||||||
"$mainMod, KP_ADD , exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor -j | jq '.float * 1.1')"
|
end'';
|
||||||
"$mainMod, KP_SUBTRACT, exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor -j | jq '(.float * 0.9) | if . < 1 then 1 else . end')"
|
|
||||||
];
|
zoomOut = ''function()
|
||||||
};
|
local current = hl.get_config("cursor.zoom_factor")
|
||||||
}
|
hl.config({ cursor = { zoom_factor = math.max(1, current * 0.9) } })
|
||||||
|
end'';
|
||||||
|
in {
|
||||||
|
wayland.windowManager.hyprland.settings.bind = [
|
||||||
|
(bind "SUPER + SHIFT + mouse_up" resetZoom)
|
||||||
|
(bind "SUPER + SHIFT + mouse_down" resetZoom)
|
||||||
|
(bind "SUPER + SHIFT + minus" resetZoom)
|
||||||
|
(bind "SUPER + SHIFT + KP_SUBTRACT" resetZoom)
|
||||||
|
(bind "SUPER + SHIFT + 0" resetZoom)
|
||||||
|
|
||||||
|
(bindWithFlags "SUPER + equal" zoomIn { repeating = true; })
|
||||||
|
(bindWithFlags "SUPER + minus" zoomOut { repeating = true; })
|
||||||
|
(bindWithFlags "SUPER + KP_ADD" zoomIn { repeating = true; })
|
||||||
|
(bindWithFlags "SUPER + KP_SUBTRACT" zoomOut { repeating = true; })
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,7 +1,11 @@
|
|||||||
{ config, pkgs, lib, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
|
let
|
||||||
|
hyprLua = import ./hyprland/lua.nix { inherit lib; };
|
||||||
|
in
|
||||||
lib.mkIf config.programs.hyprlock.enable {
|
lib.mkIf config.programs.hyprlock.enable {
|
||||||
wayland.windowManager.hyprland.settings.exec-once = [ "hyprlock" ];
|
wayland.windowManager.hyprland.settings.on = [
|
||||||
|
(hyprLua.onStart [ "hyprlock" ])
|
||||||
|
];
|
||||||
|
|
||||||
programs.hyprlock = let
|
programs.hyprlock = let
|
||||||
image = pkgs.fetchurl {
|
image = pkgs.fetchurl {
|
||||||
|
|||||||
@@ -1,4 +1,7 @@
|
|||||||
{
|
{ lib, ... }:
|
||||||
|
let
|
||||||
|
hyprLua = import ./hyprland/lua.nix { inherit lib; };
|
||||||
|
in {
|
||||||
services = {
|
services = {
|
||||||
walker = {
|
walker = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -9,6 +12,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
wayland.windowManager.hyprland.settings.bind = [
|
wayland.windowManager.hyprland.settings.bind = [
|
||||||
"$mainMod, D, exec, walker"
|
(hyprLua.bind "SUPER + D" (hyprLua.exec "walker"))
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
+21
-12
@@ -18,6 +18,8 @@
|
|||||||
percent="$(${lib.getExe pkgs.brightnessctl} -m | ${lib.getExe' pkgs.coreutils "cut"} -d, -f4 | ${lib.getExe' pkgs.coreutils "tr"} -d '%')"
|
percent="$(${lib.getExe pkgs.brightnessctl} -m | ${lib.getExe' pkgs.coreutils "cut"} -d, -f4 | ${lib.getExe' pkgs.coreutils "tr"} -d '%')"
|
||||||
printf '%s brightness\n' "$percent" > ${wobSocket}
|
printf '%s brightness\n' "$percent" > ${wobSocket}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
hyprLua = import ./hyprland/lua.nix { inherit lib; };
|
||||||
in {
|
in {
|
||||||
systemd.user = {
|
systemd.user = {
|
||||||
services.wob.Install.WantedBy = lib.mkForce [ ];
|
services.wob.Install.WantedBy = lib.mkForce [ ];
|
||||||
@@ -53,16 +55,23 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
wayland.windowManager.hyprland.settings = {
|
wayland.windowManager.hyprland.settings.bind = [
|
||||||
bindel = [
|
(hyprLua.bindWithFlags "XF86AudioRaiseVolume" (hyprLua.exec "${lib.getExe volumeStep}") {
|
||||||
", XF86AudioRaiseVolume, exec, ${lib.getExe volumeStep}"
|
repeating = true;
|
||||||
", XF86AudioLowerVolume, exec, ${lib.getExe volumeStep}"
|
locked = true;
|
||||||
", XF86MonBrightnessUp, exec, ${lib.getExe brightnessStep}"
|
})
|
||||||
", XF86MonBrightnessDown, exec, ${lib.getExe brightnessStep}"
|
(hyprLua.bindWithFlags "XF86AudioLowerVolume" (hyprLua.exec "${lib.getExe volumeStep}") {
|
||||||
];
|
repeating = true;
|
||||||
|
locked = true;
|
||||||
bind = [
|
})
|
||||||
", XF86AudioMute, exec, ${lib.getExe volumeStep} mute"
|
(hyprLua.bindWithFlags "XF86MonBrightnessUp" (hyprLua.exec "${lib.getExe brightnessStep}") {
|
||||||
];
|
repeating = true;
|
||||||
};
|
locked = true;
|
||||||
|
})
|
||||||
|
(hyprLua.bindWithFlags "XF86MonBrightnessDown" (hyprLua.exec "${lib.getExe brightnessStep}") {
|
||||||
|
repeating = true;
|
||||||
|
locked = true;
|
||||||
|
})
|
||||||
|
(hyprLua.bind "XF86AudioMute" (hyprLua.exec "${lib.getExe volumeStep} mute"))
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
+16
-4
@@ -188,10 +188,22 @@ in {
|
|||||||
Exec=${lib.getExe fileManager1}
|
Exec=${lib.getExe fileManager1}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
wayland.windowManager.hyprland.settings.windowrule = [
|
wayland.windowManager.hyprland.settings.window_rule = [
|
||||||
"match:class dragon-drop, move cursor_x-window_w/2 cursor_y-window_h/2"
|
{
|
||||||
"match:title Yazi File Picker, float 1"
|
match.class = "dragon-drop";
|
||||||
"match:title Yazi File Picker, size 1200 800"
|
move = [
|
||||||
|
"(cursor_x-(window_w*0.5))"
|
||||||
|
"(cursor_y-(window_h*0.5))"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
match.title = "Yazi File Picker";
|
||||||
|
float = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
match.title = "Yazi File Picker";
|
||||||
|
size = [ 1200 800 ];
|
||||||
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.yazi = {
|
programs.yazi = {
|
||||||
|
|||||||
@@ -1,16 +1,22 @@
|
|||||||
{ pkgs, lib, config, inputs, ... }: {
|
{ pkgs, lib, config, ... }:
|
||||||
wayland.windowManager.hyprland = let
|
let
|
||||||
colors = config.lib.stylix.colors;
|
colors = config.lib.stylix.colors;
|
||||||
accent = colors.${config.stylix.accent};
|
accent = colors.${config.stylix.accent};
|
||||||
in {
|
hyprLua = import ../../../modules/user/hyprland/lua.nix { inherit lib; };
|
||||||
settings = {
|
in {
|
||||||
|
wayland.windowManager.hyprland.settings = {
|
||||||
|
config = {
|
||||||
general = {
|
general = {
|
||||||
gaps_in = 5;
|
gaps_in = 5;
|
||||||
gaps_out = 5;
|
gaps_out = 5;
|
||||||
border_size = 2;
|
border_size = 2;
|
||||||
"col.active_border" = "rgba(${accent}ee) rgba(${colors.base0C}ee) 45deg";
|
"col.active_border" = lib.mkForce {
|
||||||
"col.inactive_border" = "rgba(${colors.base05}aa)";
|
colors = [
|
||||||
|
"rgba(${accent}ee)"
|
||||||
|
"rgba(${colors.base0C}ee)"
|
||||||
|
];
|
||||||
|
angle = 45;
|
||||||
|
};
|
||||||
layout = "dwindle";
|
layout = "dwindle";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -32,25 +38,9 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
animations = {
|
animations.enabled = true;
|
||||||
enabled = true;
|
|
||||||
|
|
||||||
bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
|
|
||||||
|
|
||||||
animation = [
|
|
||||||
"windows, 1, 7, myBezier"
|
|
||||||
"windowsOut, 1, 7, default, popin 80%"
|
|
||||||
"border, 1, 10, default"
|
|
||||||
"borderangle, 1, 8, default"
|
|
||||||
"fade, 1, 7, default"
|
|
||||||
"workspaces, 1, 6, default"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
dwindle = {
|
|
||||||
smart_split = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
dwindle.smart_split = true;
|
||||||
master.new_status = "master";
|
master.new_status = "master";
|
||||||
|
|
||||||
misc = {
|
misc = {
|
||||||
@@ -58,10 +48,32 @@
|
|||||||
animate_mouse_windowdragging = true;
|
animate_mouse_windowdragging = true;
|
||||||
enable_swallow = true;
|
enable_swallow = true;
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
bind = [
|
curve = {
|
||||||
''$mainMod Shift, S, exec, ${lib.getExe pkgs.grim} -g "$(${lib.getExe pkgs.slurp})" - | ${lib.getExe pkgs.swappy} -f -''
|
_args = [
|
||||||
|
"myBezier"
|
||||||
|
{
|
||||||
|
type = "bezier";
|
||||||
|
points = [
|
||||||
|
[ 0.05 0.9 ]
|
||||||
|
[ 0.1 1.05 ]
|
||||||
|
];
|
||||||
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
animation = [
|
||||||
|
{ leaf = "windows"; enabled = true; speed = 7; bezier = "myBezier"; }
|
||||||
|
{ leaf = "windowsOut"; enabled = true; speed = 7; bezier = "default"; style = "popin 80%"; }
|
||||||
|
{ leaf = "border"; enabled = true; speed = 10; bezier = "default"; }
|
||||||
|
{ leaf = "borderangle"; enabled = true; speed = 8; bezier = "default"; }
|
||||||
|
{ leaf = "fade"; enabled = true; speed = 7; bezier = "default"; }
|
||||||
|
{ leaf = "workspaces"; enabled = true; speed = 6; bezier = "default"; }
|
||||||
|
];
|
||||||
|
|
||||||
|
bind = [
|
||||||
|
(hyprLua.bind "SUPER + SHIFT + S" (hyprLua.exec ''${lib.getExe pkgs.grim} -g "$(${lib.getExe pkgs.slurp})" - | ${lib.getExe pkgs.swappy} -f -''))
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
wayland.windowManager.hyprland = let
|
wayland.windowManager.hyprland = let
|
||||||
colors = config.lib.stylix.colors;
|
colors = config.lib.stylix.colors;
|
||||||
accent = colors.${config.stylix.accent};
|
accent = colors.${config.stylix.accent};
|
||||||
|
hyprLua = import ../../../modules/user/hyprland/lua.nix { inherit lib; };
|
||||||
|
|
||||||
wallpaper_changer = pkgs.writers.writePython3Bin "wallpaper_changer" {
|
wallpaper_changer = pkgs.writers.writePython3Bin "wallpaper_changer" {
|
||||||
libraries = [ pkgs.python3Packages.requests ];
|
libraries = [ pkgs.python3Packages.requests ];
|
||||||
@@ -126,69 +127,83 @@
|
|||||||
'';
|
'';
|
||||||
in {
|
in {
|
||||||
settings = {
|
settings = {
|
||||||
general = {
|
config = {
|
||||||
gaps_in = 2;
|
general = {
|
||||||
gaps_out = 10;
|
gaps_in = 2;
|
||||||
border_size = 3;
|
gaps_out = 10;
|
||||||
"col.active_border" = lib.mkForce "rgba(${colors.base0C}aa) rgba(${accent}aa) 45deg";
|
border_size = 3;
|
||||||
|
"col.active_border" = lib.mkForce {
|
||||||
layout = "dwindle";
|
colors = [
|
||||||
};
|
"rgba(${colors.base0C}aa)"
|
||||||
|
"rgba(${accent}aa)"
|
||||||
decoration = {
|
];
|
||||||
rounding = 10;
|
angle = 45;
|
||||||
|
};
|
||||||
blur = {
|
layout = "dwindle";
|
||||||
enabled = true;
|
|
||||||
size = 16;
|
|
||||||
passes = 2;
|
|
||||||
new_optimizations = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
shadow.enabled = false;
|
decoration = {
|
||||||
|
rounding = 10;
|
||||||
|
|
||||||
|
blur = {
|
||||||
|
enabled = true;
|
||||||
|
size = 16;
|
||||||
|
passes = 2;
|
||||||
|
new_optimizations = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
shadow.enabled = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
animations.enabled = true;
|
||||||
|
dwindle.smart_split = true;
|
||||||
|
master.new_status = "master";
|
||||||
|
|
||||||
|
misc = {
|
||||||
|
animate_manual_resizes = true;
|
||||||
|
animate_mouse_windowdragging = true;
|
||||||
|
enable_swallow = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
animations = {
|
curve = {
|
||||||
enabled = true;
|
_args = [
|
||||||
|
"myBezier"
|
||||||
bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
|
{
|
||||||
|
type = "bezier";
|
||||||
animation = [
|
points = [
|
||||||
"windows, 1, 7, myBezier"
|
[ 0.05 0.9 ]
|
||||||
"windowsOut, 1, 7, default, popin 80%"
|
[ 0.1 1.05 ]
|
||||||
"border, 1, 10, default"
|
];
|
||||||
"borderangle, 1, 8, default"
|
}
|
||||||
"fade, 1, 7, default"
|
|
||||||
"workspaces, 1, 6, default"
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
dwindle = {
|
animation = [
|
||||||
smart_split = true;
|
{ leaf = "windows"; enabled = true; speed = 7; bezier = "myBezier"; }
|
||||||
};
|
{ leaf = "windowsOut"; enabled = true; speed = 7; bezier = "default"; style = "popin 80%"; }
|
||||||
|
{ leaf = "border"; enabled = true; speed = 10; bezier = "default"; }
|
||||||
master.new_status = "master";
|
{ leaf = "borderangle"; enabled = true; speed = 8; bezier = "default"; }
|
||||||
|
{ leaf = "fade"; enabled = true; speed = 7; bezier = "default"; }
|
||||||
misc = {
|
{ leaf = "workspaces"; enabled = true; speed = 6; bezier = "default"; }
|
||||||
animate_manual_resizes = true;
|
|
||||||
animate_mouse_windowdragging = true;
|
|
||||||
enable_swallow = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
exec-once = [
|
|
||||||
"${lib.getExe wallpaper_changer}"
|
|
||||||
];
|
];
|
||||||
|
|
||||||
workspace = [
|
on = [
|
||||||
"2, layout:scrolling"
|
(hyprLua.onStart [ "${lib.getExe wallpaper_changer}" ])
|
||||||
|
];
|
||||||
|
|
||||||
|
workspace_rule = [
|
||||||
|
{
|
||||||
|
workspace = "2";
|
||||||
|
layout = "scrolling";
|
||||||
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
bind = [
|
bind = [
|
||||||
" , Print, exec, ${lib.getExe pkgs.hyprshot} -z -o ~/Screenshots -m active -m output"
|
(hyprLua.bind "Print" (hyprLua.exec "${lib.getExe pkgs.hyprshot} -z -o ~/Screenshots -m active -m output"))
|
||||||
"CTRL, Print, exec, ${lib.getExe pkgs.hyprshot} -z -o ~/Screenshots -m region"
|
(hyprLua.bind "CTRL + Print" (hyprLua.exec "${lib.getExe pkgs.hyprshot} -z -o ~/Screenshots -m region"))
|
||||||
"ALT , Print, exec, ${lib.getExe pkgs.hyprshot} -z -o ~/Screenshots -m active -m window"
|
(hyprLua.bind "ALT + Print" (hyprLua.exec "${lib.getExe pkgs.hyprshot} -z -o ~/Screenshots -m active -m window"))
|
||||||
|
(hyprLua.bind "SUPER + W" (hyprLua.exec "${lib.getExe wallpaper_changer}"))
|
||||||
"$mainMod, W, exec, ${lib.getExe wallpaper_changer}"
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -343,7 +343,10 @@
|
|||||||
in builtins.readFile cssFile;
|
in builtins.readFile cssFile;
|
||||||
};
|
};
|
||||||
|
|
||||||
wayland.windowManager.hyprland.settings.layerrule = [
|
wayland.windowManager.hyprland.settings.layer_rule = [
|
||||||
"blur on, match:namespace waybar"
|
{
|
||||||
|
match.namespace = "waybar";
|
||||||
|
blur = true;
|
||||||
|
}
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user