feat: updates to make it work

This commit is contained in:
2026-06-14 20:42:49 +02:00
parent dce3c77a29
commit fab293438e
26 changed files with 163 additions and 101 deletions
+1
View File
@@ -6,3 +6,4 @@ grub_os_prober = {"desktop": True, "laptop": False}
kernel_args_all = {"desktop": "", "laptop": ""}
kernel_args_debug_only = {"desktop": "", "laptop": ""}
kernel_args_normal_only = {"desktop": "", "laptop": ""}
user = "janis"
+2 -2
View File
@@ -16,7 +16,7 @@ if read_docked then
end
-- Core
require("colors")
require("hyprland.colors")
require("hyprland.core.general")
require("hyprland.core.input")(laptop_config)
require("hyprland.core.group")
@@ -24,10 +24,10 @@ require("hyprland.core.misc")
require("hyprland.core.style")
-- Binds
require("hyprland.binds.main")
require("hyprland.binds.device")
require("hyprland.binds.groups")
require("hyprland.binds.launch")
require("hyprland.binds.main")
require("hyprland.binds.notifications")
require("hyprland.binds.screenshot")
require("hyprland.binds.window")
+1 -1
View File
@@ -9,7 +9,7 @@ hl.define_submap("device", function()
end)
-- Touchpad
hl.bind("Shift + T", function()
hl.bind("SHIFT + T", function()
hl.device({
name = "pnp0c50:00-093a:0255-touchpad",
enabled = false,
+3 -5
View File
@@ -2,8 +2,6 @@ local function exit_submap()
hl.dispatch(hl.dsp.submap("reset"))
end
hl.bind("Super + Q", hl.dsp.exit())
hl.define_submap("groups", function()
hl.bind("c", function()
hl.dispatch(hl.dsp.group.toggle())
@@ -20,18 +18,18 @@ hl.define_submap("groups", function()
exit_submap()
end)
hl.bind("Ctrl + L", function()
hl.bind("CTRL + L", function()
hl.dispatch(hl.dsp.exec_cmd("notify-send 'Group locking toggled' --app-name='Hyprtclt'"))
hl.dispatch(hl.dsp.group.lock_active())
exit_submap()
end)
hl.bind("Shift + L", function()
hl.bind("SHIFT + L", function()
hl.dispatch(hl.dsp.window.move({ into_or_create_group = "r" }))
exit_submap()
end)
hl.bind("Shift + H", function()
hl.bind("SHIFT + H", function()
hl.dispatch(hl.dsp.window.move({ into_or_create_group = "l" }))
exit_submap()
end)
+3 -1
View File
@@ -9,6 +9,8 @@ local function launcher(program)
end
end
hl.bind("SUPER + Return", launcher("kitty"))
hl.define_submap("launch", function()
-- Librewolf
hl.bind("l", launcher("librewolf"))
@@ -33,7 +35,7 @@ hl.define_submap("launch", function()
hl.bind("z", launcher("zathura"))
-- Brave
hl.bind("Shift + B", launcher("brave"))
hl.bind("SHIFT + B", launcher("brave"))
-- bsmanager
hl.bind("b", launcher("/opt/bs-manager/bs-manager"))
+12 -11
View File
@@ -1,12 +1,13 @@
hl.bind("Super + X", hl.dsp.submap("launch"))
hl.bind("Super + D", hl.dsp.submap("device"))
hl.bind("Super + C", hl.dsp.submap("notifications"))
hl.bind("Super + G", hl.dsp.submap("groups"))
hl.bind("Super + S", hl.dsp.submap("screenshot"))
hl.bind("Super + W", hl.dsp.submap("window"))
hl.bind("Super + A", hl.dsp.submap("workspace"))
hl.bind("SUPER + X", hl.dsp.submap("launch"))
hl.bind("SUPER + D", hl.dsp.submap("device"))
hl.bind("SUPER + C", hl.dsp.submap("notifications"))
hl.bind("SUPER + G", hl.dsp.submap("groups"))
hl.bind("SUPER + S", hl.dsp.submap("screenshot"))
hl.bind("SUPER + W", hl.dsp.submap("window"))
hl.bind("SUPER + A", hl.dsp.submap("workspace"))
hl.bind("SUPER + Q", hl.dsp.window.close())
hl.bind("Super + Space", hl.dsp.exec_cmd("dms ipc call spotlight toggle"))
hl.bind("Super + Escape", hl.dsp.exec_cmd("dms ipc call powermenu open"))
hl.bind("Super + I", hl.dsp.exec_cmd("dms ipc call control-center open"))
hl.bind("Super + ?", hl.dsp.exec_cmd("dms ipc call keybinds toggle hyprland"))
hl.bind("SUPER + Space", hl.dsp.exec_cmd("dms ipc call spotlight toggle"))
hl.bind("SUPER + Escape", hl.dsp.exec_cmd("dms ipc call powermenu open"))
hl.bind("SUPER + I", hl.dsp.exec_cmd("dms ipc call control-center open"))
hl.bind("SUPER + CTRL + H", hl.dsp.exec_cmd("dms ipc call keybinds toggle hyprland"))
+3 -3
View File
@@ -18,17 +18,17 @@ hl.define_submap("screenshot", function()
exit_submap()
end)
hl.bind("Shift + y", function()
hl.bind("SHIFT + y", function()
hl.dispatch(hl.dsp.exec_cmd("dms screenshot full --no-file"))
exit_submap()
end)
hl.bind("Shift + c", function()
hl.bind("SHIFT + c", function()
hl.dispatch(hl.dsp.exec_cmd("dms screenshot full"))
exit_submap()
end)
hl.bind("Shift + s", function()
hl.bind("SHIFT + s", function()
hl.dispatch(hl.dsp.exec_cmd("dms screenshot full --no-copy"))
exit_submap()
end)
+2 -2
View File
@@ -2,7 +2,7 @@ local function exit_submap()
hl.dispatch(hl.dsp.submap("reset"))
end
hl.bind("Super + Q", hl.dsp.exit())
hl.bind("SUPER + Q", hl.dsp.exit())
hl.define_submap("window", function()
hl.bind("x", function()
@@ -30,7 +30,7 @@ hl.define_submap("window", function()
exit_submap()
end)
hl.bind("Shift + K", function()
hl.bind("SHIFT + K", function()
hl.dispatch(hl.dsp.exec_cmd("notify-send 'Insta-Kill activated' --app-name='Hyprtclt'"))
hl.dispatch(hl.dsp.exec_cmd("hyprctl kill"))
exit_submap()
+12 -12
View File
@@ -3,22 +3,22 @@ local function exit_submap()
end
for i = 1, 10, 1 do
hl.bind("Super + " .. tostring(i % 10), hl.dsp.focus({ workspace = tostring(i) }))
hl.bind("Super + Shift + " .. tostring(i % 10), hl.dsp.window.move({ workspace = tostring(i), follow = 1 }))
hl.bind("SUPER + " .. tostring(i % 10), hl.dsp.focus({ workspace = tostring(i) }))
hl.bind("SUPER + SHIFT + " .. tostring(i % 10), hl.dsp.window.move({ workspace = tostring(i), follow = 1 }))
end
hl.bind("Super + h", hl.dsp.focus({ direction = "l" }))
hl.bind("Super + l", hl.dsp.focus({ direction = "r" }))
hl.bind("Super + j", hl.dsp.focus({ direction = "d" }))
hl.bind("Super + k", hl.dsp.focus({ direction = "u" }))
hl.bind("SUPER + h", hl.dsp.focus({ direction = "l" }))
hl.bind("SUPER + l", hl.dsp.focus({ direction = "r" }))
hl.bind("SUPER + j", hl.dsp.focus({ direction = "d" }))
hl.bind("SUPER + k", hl.dsp.focus({ direction = "u" }))
hl.bind("Super + M", hl.dsp.workspace.toggle_special("main"))
hl.bind("Super + Shift + M", hl.dsp.window.move({ workspace = "special:main" }))
hl.bind("SUPER + M", hl.dsp.workspace.toggle_special("main"))
hl.bind("SUPER + SHIFT + M", hl.dsp.window.move({ workspace = "special:main" }))
hl.define_submap("notifications", function()
for i = 1, 10, 1 do
hl.bind(tostring(i % 10), hl.dsp.focus({ workspace = tostring(i) }))
hl.bind("Shift + " .. tostring(i % 10), hl.dsp.window.move({ workspace = tostring(i), follow = 1 }))
hl.bind("SHIFT + " .. tostring(i % 10), hl.dsp.window.move({ workspace = tostring(i), follow = 1 }))
end
hl.bind("h", hl.dsp.focus({ direction = "l" }))
@@ -26,11 +26,11 @@ hl.define_submap("notifications", function()
hl.bind("j", hl.dsp.focus({ direction = "d" }))
hl.bind("k", hl.dsp.focus({ direction = "u" }))
hl.bind("Shift + l", hl.dsp.window.move({ workspace = "+1", follow = 1 }))
hl.bind("Shift + h", hl.dsp.window.move({ workspace = "-1", follow = 1 }))
hl.bind("SHIFT + l", hl.dsp.window.move({ workspace = "+1", follow = 1 }))
hl.bind("SHIFT + h", hl.dsp.window.move({ workspace = "-1", follow = 1 }))
hl.bind("M", hl.dsp.workspace.toggle_special("main"))
hl.bind("Shift + M", hl.dsp.window.move({ workspace = "special:main" }))
hl.bind("SHIFT + M", hl.dsp.window.move({ workspace = "special:main" }))
hl.bind("Escape", function()
exit_submap()
+24
View File
@@ -0,0 +1,24 @@
hl.config({
general = {
col = {
active_border = "rgba(ffaabbcc) rgba(ffaabbcc) rgba(ffaabbcc) 45deg",
inactive_border = "rgba(ffaabb33)",
},
},
group = {
col = {
active_border = "rgba(ffaabb77)",
inactive_border = "rgba(ffaabb33)",
},
},
decoration = {
shadow = {
color = "rgba(ffffff20)",
}
}
})
hl.window_rule({
match = { pin = 1 },
border_color = "rgba(ffffffaa) rgba(ffffff77)",
})
+3 -3
View File
@@ -1,11 +1,11 @@
--- @param swap_escape boolean
return function(swap_escape)
hl.config({
inputs = {
kb_options = swap_escape and "caps:swapescape" or "",
input = {
-- kb_options = swap_escape and "caps:swapescape" or "",
kb_layout = "us",
kb_variant = "altgr-intl",
natural_scroll = "true",
natural_scroll = true,
numlock_by_default = true,
repeat_delay = 400,
-1
View File
@@ -9,7 +9,6 @@ hl.config({
allow_session_lock_restore = true,
},
dwindle = {
pseudotile = true,
force_split = 2,
preserve_split = true,
},
+5 -1
View File
@@ -48,23 +48,27 @@ hl.animation({
hl.animation({
leaf = "border",
enabled = true,
bezier = "default",
speed = 8,
})
hl.animation({
leaf = "fade",
enabled = true,
bezier = "default",
speed = 3,
})
hl.animation({
leaf = "workspace",
leaf = "workspaces",
enabled = true,
bezier = "default",
speed = 1,
})
hl.animation({
leaf = "specialWorkspace",
enabled = true,
bezier = "default",
speed = 1,
})
-4
View File
@@ -4,7 +4,3 @@ version_check = false
[templates.hyprland]
input_path = '~/.config/matugen/templates/hyprland/colors.lua'
output_path = '~/.config/hypr/hyprland/colors.lua'
[templates.hyprlock]
input_path = '~/.config/matugen/templates/hyprland/hyprlock-colors.conf'
output_path = '~/.config/hypr/hyprlock/colors.conf'
+2 -3
View File
@@ -11,7 +11,6 @@ if decman.aur:
if decman.pacman:
decman.pacman.ignored_packages |= {"yay"}
user = "janis"
decman.modules += [
base.BasePackages(),
pipewire.Pipewire(),
@@ -24,7 +23,7 @@ decman.modules += [
login.LoginManager("desktop"),
shell.DesktopShell(),
neovim.Neovim(),
latex.Latex(user),
latex.Latex(),
utilities.UtilPackages(),
virtual_machines.VirtualMachines(user),
virtual_machines.VirtualMachines(),
]
+9 -15
View File
@@ -1,11 +1,12 @@
import decman
from decman.plugins import pacman
import config
class Latex(decman.Module):
def __init__(self, user: str):
def __init__(self):
"""Base packages that should never be uninstalled"""
self._user = user
super().__init__("latex")
@pacman.packages
@@ -29,7 +30,7 @@ class Latex(decman.Module):
"texlive-latex",
"texlive-latexextra",
"texlive-latexrecommended",
"texlive-lualatex",
"texlive-luatex",
"texlive-mathscience",
"texlive-metapost",
"texlive-music",
@@ -41,16 +42,9 @@ class Latex(decman.Module):
"texlive-langgerman",
}
def on_enable(self, store: decman.Store):
out = decman.prg(["cd ~/projects/latex/"], user=self._user)
if out == "":
decman.prg(
[
"cd",
"~/projects/",
"git",
"clone",
"https://git.janishutz.com/janishutz/latex",
],
user=self._user,
def files(self) -> dict[str, decman.File]:
return {
f"/home/{config.user}.indentconfig.yaml": decman.File(
source_file="./linters/indentconfig.yaml"
)
}
+1 -3
View File
@@ -15,7 +15,6 @@ class Neovim(decman.Module):
"lua-language-server",
"tree-sitter",
"tree-sitter-cli",
"shell-color-scripts-git",
"stylua",
}
@@ -24,5 +23,4 @@ class Neovim(decman.Module):
@aur.packages
def aurpkgs(self) -> set[str]:
# Consider switching to WiVRN
return {"bs-manager-bin", "alvr-bin"}
return {"shell-color-scripts-git", "nvimpager"}
+10 -6
View File
@@ -1,4 +1,5 @@
import decman
import config
from decman.plugins import pacman
@@ -13,23 +14,29 @@ class DevTools(decman.Module):
"act",
"cronie",
"cloc",
"cmake",
"dart-sass",
"docker",
"docker-buildx",
"docker-compose",
"filezilla",
"git-lfs",
"hugo",
"helm",
"kitty",
"kubectl",
"lazygit",
"meld",
"meson",
"minisign",
"python-argcomplete",
"python-black",
"python-build",
"python-colorama",
"python-install",
"python-installer",
"python-jsonschema",
"python-pip",
"python-pyaml",
"python-numpy",
"python-scipy",
"python-sympy",
@@ -39,9 +46,6 @@ class DevTools(decman.Module):
def directories(self) -> dict[str, decman.Directory]:
return {
"~/.config/lazygit": decman.Directory("./config/lazygit"),
"~/.config/kitty": decman.Directory("./config/kitty"),
f"/home/{config.user}/.config/lazygit": decman.Directory("./config/lazygit", owner=config.user, group=config.user),
f"/home/{config.user}/.config/kitty": decman.Directory("./config/kitty", owner=config.user, group=config.user),
}
def files(self) -> dict[str, decman.File]:
return {"~/.indentconfig.yaml": decman.File("./linters/indentconfig.yaml")}
-1
View File
@@ -15,7 +15,6 @@ class Games(decman.Module):
"gamemode",
"gamescope",
# "lib32-vulkan-radeon",
"lovr",
"obs-studio",
"obs-studio-plugin-browser",
"prismlauncher",
@@ -1,23 +1,27 @@
import decman
from decman.plugins import pacman
import config
class VirtualMachines(decman.Module):
def __init__(self, user: str):
def __init__(self):
"""Set up virtual machines"""
self._user = user
super().__init__("virtualmachines")
@pacman.packages
def pkgs(self) -> set[str]:
return {
"dnsmasq",
"ebtables",
"libayatana-appindicator",
"libvirt-python",
"lvm2",
"qemu-base",
"vde2" "virt-manager",
"vde2",
"virt-manager",
"virt-viewer",
}
def on_enable(self, store: decman.Store):
# TODO: Everywhere, make user configurable
decman.prg(["usermod", "-G", "libvirt", "-a", self._user])
decman.prg(["usermod", "-G", "libvirt", "-a", config.user])
+15 -2
View File
@@ -12,20 +12,33 @@ class BasePackages(decman.Module):
return {
"base",
"base-devel",
"cifs",
"cifs-utils",
"cups",
"dosfstools",
"efibootmgr",
"exfatprogs",
"git",
"grub",
"gsl",
"libisoburn",
"libguestfs",
"libmicrohttpd",
"linux",
"linux-firmware",
"linux-headers",
"lzop",
"mesa",
"mesa-utils",
"mtools",
"ntfs-3g",
"ntfsprogs",
"networkmanager",
"paccache",
"pacman-contrib",
"plymouth",
"reflector",
"samba",
"sdl12-compat",
"sdl2-compat",
"sudo",
"systemd-resolvconf",
"trash-cli",
+2 -1
View File
@@ -10,10 +10,11 @@ class Pipewire(decman.Module):
@pacman.packages
def pkgs(self) -> set[str]:
return {
"gst-plugin-pipewire",
"pavucontrol",
"pipewire",
"pipewire-alsa",
"pipewire-pulse",
"pipewire-jack",
"wireplumber",
"pavucontrol",
}
+10 -5
View File
@@ -1,6 +1,8 @@
import decman
from decman.plugins import pacman, aur
import config
class FileManager(decman.Module):
def __init__(self):
@@ -12,7 +14,10 @@ class FileManager(decman.Module):
return {
"ifuse",
"libimobiledevice",
"fuse2",
"movit",
"ouch",
"resvg",
"yazi",
}
@@ -22,11 +27,11 @@ class FileManager(decman.Module):
def directories(self) -> dict[str, decman.Directory]:
return {
"~/.config/xdg-desktop-portal": decman.Directory(
"./config/xdg-desktop-portal"
f"/home/{config.user}/.config/xdg-desktop-portal": decman.Directory(
"./config/xdg-desktop-portal", owner=config.user, group=config.user
),
"~/.config/xdg-desktop-portal-termfilechooser": decman.Directory(
"./config/xdg-desktop-portal-termfilechooser"
f"/home/{config.user}/.config/xdg-desktop-portal-termfilechooser": decman.Directory(
"./config/xdg-desktop-portal-termfilechooser", owner=config.user, group=config.user
),
"~/.config/yazi": decman.Directory("./config/yazi"),
f"/home/{config.user}/.config/yazi": decman.Directory("./config/yazi", owner=config.user, group=config.user),
}
+16 -7
View File
@@ -1,6 +1,8 @@
import decman
from decman.plugins import pacman
import config
class Hyprland(decman.Module):
def __init__(self):
@@ -10,22 +12,29 @@ class Hyprland(decman.Module):
@pacman.packages
def pkgs(self) -> set[str]:
return {
"cliphist",
# "grimblast",
"hyprland",
"hyprlock",
"hypridle",
"hyprshutdown",
"grimblast",
"xdg-desktop-portal-hyprland",
"hyprpolkitagent",
"hyprpaper",
"wl-clipboard",
"cliphist",
"hyprpwcenter",
"hyprtoolkit",
"hyprpolkitagent",
"hyprpaper",
"libappindicator",
"rtkit",
"wl-clipboard",
"wev",
"xdg-desktop-portal-hyprland",
}
def directories(self) -> dict[str, decman.Directory]:
return {"~/.config/hypr": decman.Directory("./config/hypr")}
return {
f"/home/{config.user}/.config/hypr": decman.Directory(
"./config/hypr", owner=config.user, group=config.user
)
}
def on_change(self, store: decman.Store):
return super().on_change(store)
+6 -2
View File
@@ -2,6 +2,8 @@
import decman
from decman.plugins import pacman
import config
class DesktopShell(decman.Module):
def __init__(self):
@@ -10,8 +12,10 @@ class DesktopShell(decman.Module):
@pacman.packages
def pkgs(self) -> set[str]:
return {"dms-shell", "cava", "matugen", "papirus-icon-theme", "adw-gtk-theme"}
return {"dms-shell", "cava", "matugen", "papirus-icon-theme", "adw-gtk-theme", "power-profiles-daemon", "qt6ct"}
# TODO: Copy the config of dms, once done
def directories(self) -> dict[str, decman.Directory]:
return { "~/.config/matugen": decman.Directory("./config/matugen") }
return {
f"/home/{config.user}/.config/matugen": decman.Directory("./config/matugen", owner=config.user, group=config.user)
}
+12 -5
View File
@@ -1,6 +1,8 @@
import decman
from decman.plugins import pacman, aur
import config
class UtilPackages(decman.Module):
def __init__(self):
@@ -11,9 +13,9 @@ class UtilPackages(decman.Module):
def pkgs(self) -> set[str]:
return {
"bashtop",
"bind",
"bluez",
"clamav",
"dig",
"evince",
"fastfetch",
"fd",
@@ -23,9 +25,12 @@ class UtilPackages(decman.Module):
"fzf",
"gdu",
"gimp",
"go",
"gnome-disk-utility",
"gwenview",
"handbrake",
"iptables",
"libdvdcss",
"man-pages",
"man-db",
"mpv",
@@ -59,12 +64,14 @@ class UtilPackages(decman.Module):
"uxplay",
"git-credential-manager-bin",
"gradia",
"parabolic"
"parabolic",
}
def directories(self) -> dict[str, decman.Directory]:
return {
"~/.config/fish": decman.Directory("./config/fish"),
"~/.config/fastfetch": decman.Directory("./config/fastfetch"),
"~/.config/mpv": decman.Directory("./config/mpv"),
f"/home/{config.user}/.config/fish": decman.Directory("./config/fish", owner=config.user, group=config.user),
f"/home/{config.user}/.config/fastfetch": decman.Directory(
"./config/fastfetch", owner=config.user, group=config.user
),
f"/home/{config.user}/.config/mpv": decman.Directory("./config/mpv", owner=config.user, group=config.user),
}