Compare commits

..

19 Commits

Author SHA1 Message Date
c853222bde fixed weird option behaviour with corne specific mouse drags 2026-08-16 11:27:21 +01:00
b4426becc4 replaced waybar with quickshell finally :pog: 2026-08-10 20:45:52 +01:00
b947debd8a added corne binds for workplaces 2026-08-04 18:12:38 +01:00
e1b62ec15c made corne binds for other machines 2026-08-04 16:19:06 +01:00
b8677a83f0 added files output to flake and updated 2026-07-28 19:21:01 +01:00
782cd6884b added custom stuff for weylus 2026-07-19 15:26:45 +01:00
84edd88834 fixed modules_root misassignment and added fallback, made overridable in flake 2026-07-13 12:44:55 +01:00
e561e6d3be removed useless runtimeinputs parameter 2026-07-11 14:50:57 +01:00
78ad02d6c1 Revert "changed and updated flake"
This reverts commit cf02ac09a2.
2026-07-11 13:04:19 +01:00
cf02ac09a2 changed and updated flake 2026-07-11 13:00:29 +01:00
45818e9395 maybe fixed the package settings thing 2026-07-11 12:40:11 +01:00
9f0f7846c0 removed thing that didnt work 2026-07-11 10:43:11 +01:00
25fcd16d4d testing testing frrr 2026-07-10 21:51:13 +01:00
fe1df78f2a im stupid asf bro i actually cant read im too tired for ts 2026-07-10 21:39:24 +01:00
0d946dd26f added some nonsense to see if this works 2026-07-10 21:33:07 +01:00
b4ab35f063 Revert "added minimal option"
This reverts commit 0194becfaa.
2026-07-10 21:21:05 +01:00
0194becfaa added minimal option 2026-07-10 21:11:40 +01:00
bdd6ec3efa fixed weird path nonsense 2026-07-04 16:43:04 +01:00
a9b2d46580 fixed woomer error 2026-07-04 15:01:31 +01:00
7 changed files with 149 additions and 99 deletions

View File

@@ -1,7 +1,13 @@
-- ~/.config/hypr/autoload.lua -- ~/.config/hypr/autoload.lua
-- Path to search -- Path to search
local modules = os.getenv("HOME") .. "/.config/hypr/modules" local modules
if os.getenv("MODULES_ROOT") then
modules = os.getenv("MODULES_ROOT")
else
modules = os.getenv("HOME") .. "/.config/hypr/modules"
end
-- Get all files in modules dir -- Get all files in modules dir
local p = io.popen('find -L "' .. modules .. '" -name "*.lua" -type f | sort') local p = io.popen('find -L "' .. modules .. '" -name "*.lua" -type f | sort')

137
flake.lock generated
View File

@@ -20,11 +20,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1782073106, "lastModified": 1784368054,
"narHash": "sha256-dnS5SaZlPqR1E0dPXaPc+lFkBwLUbAgbwsVMk7uA6dY=", "narHash": "sha256-zF1iJkBQSDWmRO4/LEeHR1SpKY0lqZaxkoQJpPS9K9U=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "aquamarine", "repo": "aquamarine",
"rev": "6d6e2384f381def4ea4ea81543cba4bbdac72457", "rev": "9b5f14d9483445e766294eb8fbe0b8f370269ed0",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -83,24 +83,6 @@
} }
}, },
"flake-utils": { "flake-utils": {
"inputs": {
"systems": "systems_3"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_2": {
"inputs": { "inputs": {
"systems": "systems_4" "systems": "systems_4"
}, },
@@ -118,28 +100,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"
}
},
"home-manager": { "home-manager": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -236,11 +196,11 @@
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
"lastModified": 1783110106, "lastModified": 1785237127,
"narHash": "sha256-PRnnFkTfQ+sQHSrcWw0512zEMNp5/1WHJeVuDf6FmxI=", "narHash": "sha256-sMSWRj9zZ3O4Q1Bk8mKkdXsTb3zpXRESlrzWmQXmW54=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "Hyprland", "repo": "Hyprland",
"rev": "14fa1fd0273973b7a40966b4fa9e081d6bf67dae", "rev": "ff24e1755fd308ee70367d63168a12feb05d1fc2",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -282,11 +242,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1782563850, "lastModified": 1784196523,
"narHash": "sha256-rs/EzgrgPHbCtJjFZN4aR1HYldH/0NtGAempWVpWQTs=", "narHash": "sha256-ahtKMGXFJdlQNhatQm1+BBU/pGfGYnAqQt3vWvq4p8s=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprland-guiutils", "repo": "hyprland-guiutils",
"rev": "5ba080ee036c30cb2485f2647ff8a61f7aa08178", "rev": "a6ccb6cb112ed5a244c0191fb972347ecfa893e0",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -413,11 +373,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1783002634, "lastModified": 1784323413,
"narHash": "sha256-xGqHIUK0wIZoW7SiMalwvO6uGOO/VrlQwoRobpE7dDI=", "narHash": "sha256-XnAVV+H4f8Xdv0yZcSwJ5kCjLyE8fHxPeLX6a3HSrAU=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprutils", "repo": "hyprutils",
"rev": "41fb809557abd29a57151b6e1aaeabd05f9437e1", "rev": "5f03477ab3a005ff27c527486f551883535aea2f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -482,11 +442,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1782467914, "lastModified": 1784356753,
"narHash": "sha256-pGvFkM8N0xEkIIXDe5YYfbEAvHrk4IxBrjB/x8OomhE=", "narHash": "sha256-12KrbMiWLcf8m7pCvAtZh1ZrgF85ZXDXvfR/fWTKy84=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "e73de5be04e0eff4190a1432b946d469c794e7b4", "rev": "61b7c44c4073f0b827768aff0049561b5110ea5a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -513,11 +473,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1782959384, "lastModified": 1785090369,
"narHash": "sha256-xnJJk+ct+D2+wdRxj1wk36w5zV9RVESwRqcklPdt3fM=", "narHash": "sha256-m0pDuRJG7EDo9ri+4Ksu83VsI+PlxNC9lNBfydejce4=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "65179426c83bb3f6bc14898b42ea1c6f01d374b0", "rev": "624af665418d3c65d544145b4d34ad696439570e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -528,6 +488,22 @@
} }
}, },
"nixpkgs_3": { "nixpkgs_3": {
"locked": {
"lastModified": 1782175435,
"narHash": "sha256-EMzXKmnOtBQ2MnvpiNOm7E+kOMvdPrIKaeg52Tip2Uk=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "89570f24e97e614aa34aa9ab1c927b6578a43775",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_4": {
"locked": { "locked": {
"lastModified": 1773734432, "lastModified": 1773734432,
"narHash": "sha256-IF5ppUWh6gHGHYDbtVUyhwy/i7D261P7fWD1bPefOsw=", "narHash": "sha256-IF5ppUWh6gHGHYDbtVUyhwy/i7D261P7fWD1bPefOsw=",
@@ -553,11 +529,11 @@
"systems": "systems_2" "systems": "systems_2"
}, },
"locked": { "locked": {
"lastModified": 1783145565, "lastModified": 1783875707,
"narHash": "sha256-czL1P2nQV3JrbV6J2b3jXnWcz+Kbz+xhaXKk3+wdnF0=", "narHash": "sha256-Ryg3PqFcGydelQpgPF0j8GMaXaGDrNTSesEy6fDw/eg=",
"owner": "kuokuo123", "owner": "kuokuo123",
"repo": "otter-launcher", "repo": "otter-launcher",
"rev": "2e35ce8c7ba6f5e4d98bf4c9073f5fa91143744d", "rev": "242e5da4f0acc0b4301be7b4546f5afb3e4b23d6",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -569,18 +545,17 @@
"pre-commit-hooks": { "pre-commit-hooks": {
"inputs": { "inputs": {
"flake-compat": "flake-compat", "flake-compat": "flake-compat",
"gitignore": "gitignore",
"nixpkgs": [ "nixpkgs": [
"hyprland", "hyprland",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1781733627, "lastModified": 1784288435,
"narHash": "sha256-U3yTuGBnmXvXoQI3qkpfEDsn9RovQPAjN7ndRco+3u0=", "narHash": "sha256-ReRHaLgr/uVqdD8afFSn+myXIfpHeOhP0yYe0TJqAA8=",
"owner": "cachix", "owner": "cachix",
"repo": "git-hooks.nix", "repo": "git-hooks.nix",
"rev": "3bbec39bc90eadfa031e6f3b77272f3f60803e39", "rev": "43b3c1ab9d40fb1dbb008f451988a91e375825e9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -662,35 +637,33 @@
"woomer": { "woomer": {
"inputs": { "inputs": {
"crane": "crane", "crane": "crane",
"flake-utils": "flake-utils", "nixpkgs": "nixpkgs_3",
"nixpkgs": [ "systems": "systems_3"
"nixpkgs"
]
}, },
"locked": { "locked": {
"lastModified": 1782684443, "lastModified": 1782685056,
"narHash": "sha256-a5RnNQoBJ8YEKiwfafWYncSzB7GI6jO5dNiDtRP6tgk=", "narHash": "sha256-WJasTKjf1hcxdCc+jKL3dU5RIL2zdYJ/OBFTmIUbuXc=",
"owner": "voidarclabs", "owner": "coffeeispower",
"repo": "woomer", "repo": "woomer",
"rev": "42a60c179e539fe5b4ac8ebdcebbe4056ded9ccd", "rev": "a7a0b288f70b98d168eaa0e8714816d3583c33b1",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "voidarclabs", "owner": "coffeeispower",
"repo": "woomer", "repo": "woomer",
"type": "github" "type": "github"
} }
}, },
"wrappers": { "wrappers": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_3" "nixpkgs": "nixpkgs_4"
}, },
"locked": { "locked": {
"lastModified": 1782375095, "lastModified": 1785177581,
"narHash": "sha256-bRepNpAluz2i0IIk7Tmzw/4BkyOrwABvc66NEgXPEhA=", "narHash": "sha256-9Z4l080DSrHMxoQTZTpVsML2h6JDuB9lDwHPsLd9BrQ=",
"owner": "lassulus", "owner": "lassulus",
"repo": "wrappers", "repo": "wrappers",
"rev": "cd780e92c0fa66c2e721e1d91894f3db13b9f2b4", "rev": "f57bc81aa9669871343341b13aa175c8927b6a74",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -701,7 +674,7 @@
}, },
"wshowkeys": { "wshowkeys": {
"inputs": { "inputs": {
"flake-utils": "flake-utils_2", "flake-utils": "flake-utils",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
] ]
@@ -748,11 +721,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1782311043, "lastModified": 1784371182,
"narHash": "sha256-07zLc2M3/ax+JsjxGTft17/Joua41LHE9/9AC/F9zeU=", "narHash": "sha256-S8A1lezEalltWcCp3gAic5lssS0xTSISK6fKODefhOk=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland", "repo": "xdg-desktop-portal-hyprland",
"rev": "882ad01e195ce201b07c618bbee44a0cad8b9e5a", "rev": "08d99f727944dd15e4740090305e31c5fb92a50a",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -13,10 +13,7 @@
url = "github:voidarclabs/wshowkeys"; url = "github:voidarclabs/wshowkeys";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
woomer = { woomer.url = "github:coffeeispower/woomer";
url = "github:voidarclabs/woomer";
inputs.nixpkgs.follows = "nixpkgs";
};
}; };
outputs = { outputs = {
@@ -62,22 +59,42 @@
runtimePackages, runtimePackages,
exePath, exePath,
flags, flags,
env,
}: }:
(wrappers.lib.wrapPackage { (wrappers.lib.wrapPackage {
inherit pkgs package exePath flags; inherit env pkgs package exePath flags;
runtimeInputs = builtins.attrValues runtimePackages;
}).overrideAttrs (old: { }).overrideAttrs (old: {
passthru = (old.passthru or {}) // {inherit runtimePackages;}; passthru = (old.passthru or {}) // {inherit runtimePackages;};
}); });
repoSrc = pkgs.lib.cleanSourceWith {
src = ./.;
filter = path: type: let
name = baseNameOf path;
in
!(name == ".git" || name == ".gitignore" || name == "result" || name == ".direnv");
};
in { in {
lib.defaultRuntimePkgs.${system} = defaultRuntimePkgs; lib.defaultRuntimePkgs.${system} = defaultRuntimePkgs;
packages.${system}.default = pkgs.lib.makeOverridable mkWrapped { packages.${system} = {
inherit pkgs; default = pkgs.lib.makeOverridable mkWrapped {
package = hypr; inherit pkgs;
runtimePackages = defaultRuntimePkgs; package = hypr;
exePath = pkgs.lib.getExe hypr; runtimePackages = defaultRuntimePkgs;
flags."--config" = ./hyprland.lua; exePath = pkgs.lib.getExe hypr;
env."MODULES_ROOT" = ./modules;
flags."--config" = ./hyprland.lua;
};
repo-files = pkgs.stdenvNoCC.mkDerivation {
pname = "hyprland-repo-files";
version = "1.0";
src = repoSrc;
dontBuild = true;
installPhase = ''
mkdir -p $out
cp -r . $out/
'';
};
}; };
}; };
} }

View File

@@ -1,3 +1,4 @@
hl.env("PATH", "/run/hypr-runtime-env/bin:" .. os.getenv("PATH"))
-- Get hostname from envvars or something -- Get hostname from envvars or something
local handle = io.popen("hostname") local handle = io.popen("hostname")
Hostname = "unknown" -- Default fallback Hostname = "unknown" -- Default fallback

View File

@@ -26,10 +26,12 @@ local function notif(text, timeout, icon)
}) })
end end
local corneKeyboardString = "qwertyuiop"
-- Set modifier keys -- Set modifier keys
local mainMod = "SUPER + " local mainMod = "SUPER + "
local subMod = mainMod local subMod = mainMod
local keyboardString = "qwertyuiop" local keyboardString = corneKeyboardString
local keybindIndex = 1 local keybindIndex = 1
local recordingMode = 0 local recordingMode = 0
@@ -162,24 +164,45 @@ local globalAppBinds = {
{ mod = subMod, key = { "SHIFT + mouse:272" }, dispatch = hl.dsp.window.resize(), opts = { mouse = true } }, { mod = subMod, key = { "SHIFT + mouse:272" }, dispatch = hl.dsp.window.resize(), opts = { mouse = true } },
} }
-- function to merge lists
local function merge_into(first, second)
for index, item in pairs(second) do
first[index] = item
end
return first
end
-- Workspace switch keys -- Workspace switch keys
for _, bind in ipairs(globalAppBinds) do for _, bind in ipairs(globalAppBinds) do
-- Mod specified or default modifier
local modBind = bind.mod or mainMod local modBind = bind.mod or mainMod
local command local command
-- If the dispatcher isnt a string evaluate
-- it as a command
if type(bind.dispatch) ~= "string" then if type(bind.dispatch) ~= "string" then
command = bind.dispatch command = bind.dispatch
else else
command = hl.dsp.exec_cmd(bind.dispatch) command = hl.dsp.exec_cmd(bind.dispatch)
end end
-- If there are options then apply them
local opts = {} local opts = {}
if bind.opts then if bind.opts then
opts = bind.opts opts = bind.opts
end end
-- If there is a specific key for that device then
-- bind it, else bind the default key
if bind.key[keybindIndex] then if bind.key[keybindIndex] then
hl.bind(modBind .. bind.key[keybindIndex], command, opts) hl.bind(modBind .. bind.key[keybindIndex], command, opts)
else else
hl.bind(modBind .. bind.key[1], command) hl.bind(modBind .. bind.key[1], command)
end end
-- If corne keys not being bound by default, then bind them just in case
if keybindIndex ~= 1 then
local deviceSpecifier = { device = { inclusive = true, list = { "zmk-project-corne-keyboard" } } }
-- Apply options so that dragging windows and stuff works
local corneOptions = merge_into(opts, deviceSpecifier)
hl.bind("SUPER + " .. bind.key[1], command, corneOptions)
end
end end
-- Workspace functions -- Workspace functions
@@ -193,3 +216,25 @@ for index, bind in ipairs(keyboardSplit) do
hl.bind(mainMod .. bind, hl.dsp.focus({ workspace = index })) hl.bind(mainMod .. bind, hl.dsp.focus({ workspace = index }))
hl.bind(mainMod .. "SHIFT + " .. bind, hl.dsp.window.move({ workspace = index, follow = false })) hl.bind(mainMod .. "SHIFT + " .. bind, hl.dsp.window.move({ workspace = index, follow = false }))
end end
-- If corne keys not being bound
if keybindIndex ~= 1 then
local corneKeyboardSplit = {}
for char in corneKeyboardString:gmatch(".") do
table.insert(corneKeyboardSplit, char)
end
for index, bind in ipairs(corneKeyboardSplit) do
hl.bind(
"SUPER +" .. bind,
hl.dsp.focus({ workspace = index }),
{ inclusive = true, list = { "zmk-project-corne-keyboard" } }
)
hl.bind(
"SUPER +" .. "SHIFT + " .. bind,
hl.dsp.window.move({ workspace = index, follow = false }),
{ inclusive = true, list = { "zmk-project-corne-keyboard" } }
)
end
end

View File

@@ -3,6 +3,7 @@ local appList = {
"syncthing -home=/home/user01/.config/syncthing -no-browser", "syncthing -home=/home/user01/.config/syncthing -no-browser",
"gotify-desktop", "gotify-desktop",
'sleep 5 && curl -X POST -H "Content-Type: application/json" -d "{\\"ref\\":\\"$(git -C ~/.dotfiles rev-parse HEAD)\\", \\"status\\":\\"$(git -C ~/.dotfiles diff --quiet && echo "clean" || echo "dirty")\\"}" http://192.168.1.180:5678/webhook/config-checker', 'sleep 5 && curl -X POST -H "Content-Type: application/json" -d "{\\"ref\\":\\"$(git -C ~/.dotfiles rev-parse HEAD)\\", \\"status\\":\\"$(git -C ~/.dotfiles diff --quiet && echo "clean" || echo "dirty")\\"}" http://192.168.1.180:5678/webhook/config-checker',
"quickshell",
} }
local localAppList local localAppList
@@ -10,14 +11,11 @@ if Hostname == "HACKSTATION" then
-- If on desktop do desktop things -- If on desktop do desktop things
localAppList = { localAppList = {
"wayvnc 0.0.0.0 --output=DP-1", "wayvnc 0.0.0.0 --output=DP-1",
"quickshell",
} }
elseif Hostname == "mobile02" then elseif Hostname == "mobile02" then
-- If on laptop, do laptop things -- If on laptop, do laptop things
localAppList = { localAppList = {
"way-edges", "way-edges",
"waybar",
"dunst",
} }
end end

View File

@@ -30,4 +30,14 @@ if Hostname == "mobile02" then
kb_options = "caps:escape_shifted_capslock", kb_options = "caps:escape_shifted_capslock",
}, },
}) })
elseif Hostname == "HACKSTATION" then
hl.device({
name = "weylus-stylus",
left_handed = false,
output = "DP-1"
})
hl.device({
name = "weylus-touch",
output = "DP-1"
})
end end