restructure + add vr

This commit is contained in:
2026-08-12 21:29:15 +02:00
parent 9100fc93ef
commit 03ec04d6b3
17 changed files with 95 additions and 69 deletions
+8
View File
@@ -0,0 +1,8 @@
{
imports = [
./general.nix
./rules.nix
./keybinds.nix
./execs.nix
];
}
+62
View File
@@ -0,0 +1,62 @@
{
wayland.windowManager.hyprland = {
extraConfig = ''
hl.env("HYPRCURSOR_THEME", "Adwaita")
hl.env("HYPRCURSOR_SIZE", "22")
hl.env("XCURSOR_SIZE", "22")
hl.env("GDK_SCALE", "1")
hl.env("GDK_BACKEND", "wayland,x11,*")
hl.env("XDG_CURRENT_DESKTOP", "Hyprland")
hl.env("XDG_SESSION_TYPE", "wayland")
hl.env("XDG_SESSION_DESKTOP", "Hyprland")
hl.env("QT_QPA_PLATFORM", "wayland")
-- hl.env("QT_QPA_PLATFORMTHEME", "kvantum")
-- hl.env("QT_QPA_PLATFORMTHEME", "hyprqt6engine")
hl.env("QT_QPA_PLATFORMTHEME", "qt6ct")
hl.env("ELECTRON_OZONE_PLATFORM_HINT", "wayland")
hl.env("DOTNET_CLI_TELEMETRY_OPTOUT", "1")
-- hl.env("QT_SCALE_FACTOR", "0.9")
hl.env("LIBVA_DRIVER_NAME", "radeonsi")
-- hl.env("__GLX_VENDOR_LIBRARY_NAME", "nvidia")
-- hl.env("NVD_BACKEND", "direct")
local TERM = "kitty"
-- local BAR = "~/.config/waybar/waybar.sh"
local BAR = "noctalia-shell"
local DMENU = "rofi -show drun"
local CLIPBOARD =
"cliphist list | rofi -dmenu -display-columns 2 -config ~/.config/rofi/clipboard.rasi | cliphist decode | wl-copy"
-- local POWER_MENU = "rofi -show powermenu -modi powermenu:~/.scripts/rofi-powermenu -config ~/.config/rofi/powermenu.rasi"
local WMENU = "rofi -show window"
local CALC = "rofi -show calc -modi calc -no-show-match -no-sort"
local FILE_MAN = "xdg-open ~" -- GUI File Manager
local RANDOM_WALL = "~/.scripts/random-wall" -- set a random wall
local AUTH_AGENT = "/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1"
hl.on("hyprland.start", function()
hl.exec_cmd("kdeconnectd")
hl.exec_cmd("equibop")
-- hl.exec_cmd("sleep 5; discord")
hl.exec_cmd("~/.scripts/walld") -- start wallpaper daemon
hl.exec_cmd(BAR) -- status bar
hl.exec_cmd("udiskie --appindicator &") -- udiskie for automount
hl.exec_cmd("hypridle &") -- start hypridle service
hl.exec_cmd(AUTH_AGENT) -- start authentication agent
hl.exec_cmd("jamesdsp --tray &")
-- hl.exec_cmd("dunst")
-- hl.exec_cmd("opendeck --hide")
hl.exec_cmd("goxlr-daemon")
hl.exec_cmd("qpwgraph -m")
-- hl.exec_cmd("mullvad-vpn --disable-gpu")
hl.exec_cmd("sleep 20; QT_STYLE_OVERRIDE=Fusion musicpresence")
hl.exec_cmd("gsr-ui")
-- Clipboard: history
hl.exec_cmd("wl-paste --type text --watch cliphist store")
hl.exec_cmd("wl-paste --type image --watch cliphist store")
hl.exec_cmd("dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP")
end)
'';
};
}
+165
View File
@@ -0,0 +1,165 @@
{ hyprsplit, ... }:
let
# wal = {
# color11 = "#...";
# color14 = "#...";
# };
in
{
wayland.windowManager.hyprland = {
enable = false;
xwayland.enable = true;
settings = {
device = [
{
name = "glorious-model-o-wireless";
sensitivity = -1.0;
}
{
name = "glorious-model-o";
sensitivity = -0.9;
}
];
config = {
input = {
kb_layout = "de";
follow_mouse = 1;
repeat_delay = 300;
repeat_rate = 35;
scroll_factor = 1.3;
sensitivity = -1.0;
};
general = {
gaps_in = 4;
gaps_out = 12;
border_size = 2;
# "col.active_border" = "rgb(${wal.color11}) rgb(${wal.color14}) 45deg";
# "col.active_border" = "rgba(80808077) rgba(80808077) 45deg";
# "col.inactive_border" = "rgba(80808077) rgba(80808077) 45deg";
resize_on_border = false;
allow_tearing = false;
layout = "dwindle";
};
decoration = {
rounding = 2;
active_opacity = 0.65;
inactive_opacity = 0.65;
shadow = {
enabled = true;
range = 50;
render_power = 4;
color = "0xaf1a1a1a";
};
blur = {
enabled = true;
size = 3;
passes = 4;
brightness = 0.473;
contrast = 1.0;
vibrancy = 0.1696;
vibrancy_darkness = 0.2;
ignore_opacity = true;
popups = true;
};
};
master = {
new_status = "master";
new_on_top = true;
mfact = 0.5;
orientation = "center";
};
misc = {
force_default_wallpaper = 0;
disable_hyprland_logo = true;
enable_anr_dialog = false;
};
xwayland = {
force_zero_scaling = true;
};
};
# animations = {
# enabled = false;
# };
# bezier = [
# "md3_standard,0.2,0,0,1"
# "md3_decel,0.05,0.7,0.1,1"
# "md3_accel,0.3,0,0.8,0.15"
# "overshot,0.05,0.9,0.1,1.02"
#
# # Hyprland supports spring curves as strings.
# "spring_snappy,1,80,16"
#
# "weighted_decel,0.05,0.9,0.1,1"
# "snap_curve,0.1,1,0,1"
# "winIn,0.1,1,0.1,1"
# "winOut,0.1,1,0.1,1"
# ];
#
# animation = [
# "windows,1,4,spring_snappy"
# "windowsIn,1,3,md3_decel,popin 70%"
# "windowsOut,1,4,md3_accel,popin 70%"
# "windowsMove,1,4,overshot"
#
# "fade,1,3,md3_decel"
#
# "layers,1,4.5,md3_standard,fade"
# "layersIn,1,4.5,winIn,slide"
# "layersOut,1,5,winOut,slide"
#
# "workspaces,1,5,md3_decel,slide"
# "workspacesIn,1,7,winIn,slide"
# "workspacesOut,1,7,winOut,slide"
#
# "specialWorkspace,1,4,winIn,slidevert"
# ];
};
extraLuaFiles = {
# create a symlink to `.config/hypr/hyprsplit/init.lua`.
"hyprsplit/init" = {
autoLoad = false;
content = builtins.readFile "${hyprsplit}/init.lua";
};
# Finally, use it directly in Lua.
"hyprload" = {
autoLoad = true;
content = ''
local hs = require("hyprsplit")
hs.config({ num_workspaces = 10 })
local mod = "SUPER"
for i = 1, 10 do
local key = (i == 10) and "0" or tostring(i)
hl.bind(mod .. " + " .. key, hs.dsp.focus({ workspace = i }))
hl.bind(mod .. " + " .. key, hs.dsp.window.move({ workspace = i }))
hl.bind("SUPER + " .. key, hs.dsp.focus({ workspace = i }))
hl.bind("SUPER + SHIFT + " .. key, hs.dsp.window.move({ workspace = i, follow = true }))
end
'';
};
};
extraConfig = ''
hl.monitor({ output = "DP-1", mode = "1920x1080@60", position = "3840x0", scale = "auto" })
hl.monitor({ output = "DP-2", mode = "1920x1080@144", position = "1920x0", scale = "auto", bitdepth = 10 })
hl.monitor({ output = "HDMI-A-1", mode = "1920x1080@60", position = "0x0", scale = "auto" })
'';
};
}
+177
View File
@@ -0,0 +1,177 @@
{
wayland.windowManager.hyprland = {
extraConfig = ''
-- ####################
-- ### KEYBINDINGS ###
-- ####################
local mod = "SUPER"
hl.bind(mod .. " + L", function() hl.dispatch(hl.dsp.exec_cmd(TERM)) end)
hl.bind(mod .. " + SPACE", function() hl.dispatch(hl.dsp.exec_cmd(DMENU)) end)
hl.bind(mod .. " + CTRL + B", function() hl.dispatch(hl.dsp.exec_cmd(RANDOM_WALL)) end)
hl.bind("CTRL + SHIFT + B", hl.dsp.exec_cmd("~/.config/rofi/wallpaper-picker.sh"))
-- hl.bind("CTRL + SHIFT + B", hl.dsp.exec_cmd("dms ipc dankdash wallpaper"))
hl.bind(mod .. " + V", function() hl.dispatch(hl.dsp.exec_cmd(CLIPBOARD)) end)
hl.bind(mod .. " + E", function() hl.dispatch(hl.dsp.exec_cmd(FILE_MAN)) end)
hl.bind(mod .. " + N", hl.dsp.exec_cmd("dunstctl history-pop"))
hl.bind(mod .. " + SHIFT + N", hl.dsp.exec_cmd("dunstctl close-all"))
hl.bind(mod .. " + Q", hl.dsp.window.close())
hl.bind(mod .. " + SHIFT + Q", hl.dsp.window.kill())
hl.bind(mod .. " + C", function() hl.dispatch(hl.dsp.exec_cmd(CALC)) end)
hl.bind(mod .. " + SHIFT + B", function() hl.dispatch(hl.dsp.exec_cmd(BAR)) end)
hl.bind(mod .. " + SHIFT + F", hl.dsp.window.float())
hl.bind(mod .. " + SHIFT + P", hl.dsp.exec_cmd("hyprpicker -a"))
hl.bind(mod .. " + SHIFT + W", function() hl.dispatch(hl.dsp.exec_cmd(WMENU)) end)
hl.bind(mod .. " + B", hl.dsp.exec_cmd("zen-beta"))
-- hl.bind(
-- mod .. " + SHIFT + E",
-- hl.dsp.exec_cmd(
-- "pkill -9 linux-wallpaper; awww img --transition-step 100 /home/user/Pictures/Wallpapers/syntaxerror_wallpaper.png"
-- )
-- )
hl.bind(
mod .. " + SHIFT + E",
hl.dsp.exec_cmd("noctalia-shell ipc call wallpaper set /home/user/Pictures/Wallpapers/syntaxerror_wallpaper.png")
)
hl.bind("ALT + Q", hl.dsp.exec_cmd("pkill -9 python; pkill -9 aria2c"))
hl.bind(mod .. " + P", hl.dsp.exec_cmd("prismlauncher"))
-- hl.bind(mod .. " + W", hl.dsp.exec_cmd("waypaper"))
-- ################
-- ## MEDIA KEYS ##
-- ################
hl.bind("XF86AudioMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"))
hl.bind("XF86AudioPlay", hl.dsp.exec_cmd("playerctl -p mpd play-pause"))
hl.bind("XF86AudioNext", hl.dsp.exec_cmd("playerctl -p mpd next"))
hl.bind("XF86AudioPrev", hl.dsp.exec_cmd("playerctl -p mpd previous"))
hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("pactl set-sink-volume @DEFAULT_SINK@ +5%"))
hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("pactl set-sink-volume @DEFAULT_SINK@ -5%"))
hl.bind(mod .. " + A", hl.dsp.exec_cmd("~/.scripts/play-previous"))
hl.bind(mod .. " + S", hl.dsp.exec_cmd("~/.scripts/play-next"))
hl.bind(mod .. " + D", hl.dsp.exec_cmd("~/.scripts/play-pause"))
hl.bind(mod .. " + SHIFT + D", hl.dsp.exec_cmd("playerctl play-pause"))
hl.bind(mod .. " + PLUS", hl.dsp.exec_cmd("~/.scripts/mpd-volume up"))
hl.bind(mod .. " + MINUS", hl.dsp.exec_cmd("~/.scripts/mpd-volume down"))
-- hl.bind(mod .. " + SHIFT + R", hl.dsp.exec_cmd("~/.scripts/skip30s"))
-- ################
-- ## FULLSCREEN ##
-- ################
hl.bind(mod .. " + F", hl.dsp.window.fullscreen())
-- ################
-- ## SCREENSHOT ##
-- ################
hl.bind(mod .. " + CTRL + S", hl.dsp.exec_cmd("grimblast --freeze --notify copysave active"))
hl.bind(mod .. " + SHIFT + S", hl.dsp.exec_cmd("grimblast --freeze --notify copysave area"))
hl.bind(mod .. " + ALT + S", hl.dsp.exec_cmd("wl-paste | satty -f -"))
-- ##########################
-- ## CENTER FLOAT WINDOW ##
-- ##########################
hl.bind(mod .. " + SHIFT + C", hl.dsp.window.center())
-- ##################
-- ## MOVE FOCUS ##
-- ##################
hl.bind(mod .. " + LEFT", hl.dsp.focus({ direction = "left" }))
hl.bind(mod .. " + RIGHT", hl.dsp.focus({ direction = "right" }))
hl.bind(mod .. " + UP", hl.dsp.focus({ direction = "up" }))
hl.bind(mod .. " + DOWN", hl.dsp.focus({ direction = "down" }))
-- #################
-- ## MOVE WINDOW ##
-- #################
hl.bind(mod .. " + SHIFT + LEFT", hl.dsp.window.move({ direction = "left" }))
hl.bind(mod .. " + SHIFT + RIGHT", hl.dsp.window.move({ direction = "right" }))
hl.bind(mod .. " + SHIFT + UP", hl.dsp.window.move({ direction = "up" }))
hl.bind(mod .. " + SHIFT + DOWN", hl.dsp.window.move({ direction = "down" }))
-- ###################
-- ## RESIZE WINDOW ##
-- ###################
-- hl.bind(mod .. " + CTRL + L", hl.dsp.window.resize(20, 0))
-- hl.bind(mod .. " + CTRL + H", hl.dsp.window.resize(-20, 0))
-- hl.bind(mod .. " + CTRL + K", hl.dsp.window.resize(0, -20))
-- hl.bind(mod .. " + CTRL + J", hl.dsp.window.resize(0, 20))
-- ################
-- ## WORKSPACES ##
-- ################
-- hl.bind(mod .. " + 1", hl.dsp.focus({ workspace = 1}))
-- hl.bind(mod .. " + 2", hl.dsp.focus({ workspace = 2}))
-- hl.bind(mod .. " + 3", hl.dsp.focus({ workspace = 3}))
-- hl.bind(mod .. " + 4", hl.dsp.focus({ workspace = 4}))
-- hl.bind(mod .. " + 5", hl.dsp.focus({ workspace = 5}))
-- hl.bind(mod .. " + 6", hl.dsp.focus({ workspace = 6}))
-- hl.bind(mod .. " + 7", hl.dsp.focus({ workspace = 7}))
-- hl.bind(mod .. " + 8", hl.dsp.focus({ workspace = 8}))
-- hl.bind(mod .. " + 9", hl.dsp.focus({ workspace = 9}))
-- hl.bind(mod .. " + 0", hl.dsp.focus({ workspace = 10}))
-- #################################
-- ## MOVE WINDOW TO WORKSPACES ##
-- #################################
-- hl.bind(mod .. " + SHIFT + 1", hl.dsp.window.move({ workspace = 1 }))
-- hl.bind(mod .. " + SHIFT + 2", hl.dsp.window.move({ workspace = 2 }))
-- hl.bind(mod .. " + SHIFT + 3", hl.dsp.window.move({ workspace = 3 }))
-- hl.bind(mod .. " + SHIFT + 4", hl.dsp.window.move({ workspace = 4 }))
-- hl.bind(mod .. " + SHIFT + 5", hl.dsp.window.move({ workspace = 5 }))
-- hl.bind(mod .. " + SHIFT + 6", hl.dsp.window.move({ workspace = 6 }))
-- hl.bind(mod .. " + SHIFT + 7", hl.dsp.window.move({ workspace = 7 }))
-- hl.bind(mod .. " + SHIFT + 8", hl.dsp.window.move({ workspace = 8 }))
-- hl.bind(mod .. " + SHIFT + 9", hl.dsp.window.move({ workspace = 9 }))
-- hl.bind(mod .. " + SHIFT + 0", hl.dsp.window.move({ workspace = 10 }))
-- ##################
-- ## SCRATCHPADS ##
-- ##################
hl.bind(mod .. " + SHIFT + G", hl.dsp.window.move({ workspace = "special:magic" }))
hl.bind(mod .. " + G", hl.dsp.workspace.toggle_special("magic"))
-- ##########################################
-- ## SCROLL THROUGH EXISTING WORKSPACES ##
-- ##########################################
-- hl.bind(mod .. " + MOUSEDOWN", hl.wm.workspace_relative(1))
-- hl.bind(mod .. " + MOUSEUP", hl.wm.workspace_relative(-1))
-- ###################
-- ## MOUSE ACTIONS ##
-- ###################
hl.bind(mod .. " + mouse:272", hl.dsp.window.drag(), { mouse = true })
hl.bind(mod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true })
-- ###########
-- ## MISC ##
-- ###########
-- hl.bind(mod .. " + MOUSEDOWN", hl.wm.layout_msg("move +col"))
-- hl.bind(mod .. " + MOUSEUP", hl.wm.layout_msg("move -col"))
-- hl.bind(mod .. " + T", hl.wm.toggle_group())
-- hl.bind(mod .. " + SHIFT + X", hl.dsp.exec_cmd("$POWER_MENU"))
hl.bind("CTRL + ALT + F", hl.dsp.exec_cmd("kando -m kandomain"))
-- hl.bind(mod .. " + W", hl.dsp.exec_cmd("$WIFI_MENU"))
-- hl.bind(mod .. " + X", hl.dsp.exec_cmd("hyprlock"))
'';
};
}
+130
View File
@@ -0,0 +1,130 @@
{
wayland.windowManager.hyprland.settings = {
window_rule = [
# -----------------
# Workspace
# -----------------
"workspace 24,title:^(rmpc)$"
"workspace 10,class:^(equibop)$"
"monitor DP-1,title:^(rmpc)$"
"monitor DP-1,class:^(equibop)$"
# -----------------
# Windows
# -----------------
"opacity 1 0.999999,class:^(mpv)$"
"opacity 0.99 override 0.99 override,class:^(obsidian)$"
# -----------------
# Floating
# -----------------
"float,class:^(imv)$"
"float,class:^(nemo)$"
"float,class:.*,title:^(Open File.*)$"
"float,title:^(Picture-in-Picture)$"
"float,class:^(rofi)$"
"float,class:^(xdg-desktop-portal-gtk)$"
"float,title:^(Steam Settings)$"
"float,title:^(Friends List)$"
"float,title:^(nvim)$"
"float,class:^(org.gnome.FileRoller)$"
"float,class:^(org.gnome.Decibels)$"
"float,class:^(neovide)$"
"float,class:^(org.prismlauncher.PrismLauncher)$"
"float,class:^(feh)$"
"float,class:^(com.github.aliencoweatcake.imageviewer)$"
"float,class:^(waypaper)$"
# -----------------
# Scrolling
# -----------------
"scrollmouse 1.0,class:^(Minecraft.*)$"
"scrollmouse 1.0,class:^(Lunar.*)$"
"scrollmouse 1.0,class:^(LiquidBounce.*)$"
"scrollmouse 1.0,class:^(Nomifactory.*)$"
"scrollmouse 1.0,class:^(GT.*)$"
# -----------------
# Center
# -----------------
"center,class:^(imv)$"
"center,class:^(nemo)$"
"center,class:^(org.prismlauncher.PrismLauncher)$"
# -----------------
# Size
# -----------------
"size 1200 700,class:^(imv)$"
"size 1200 700,class:^(nemo)$"
"size 1200 700,title:^(nvim)$"
"size 1200 700,class:^(org.gnome.Decibels)$"
"size 1200 700,class:^(neovide)$"
"size 1200 700,class:^(org.prismlauncher.PrismLauncher)$"
"size 1200 700,class:^(waypaper)$"
"suppressevent maximize,class:.*"
# -----------------
# Opaque
# -----------------
"opaque,class:^(kitty)$"
"opaque,class:^(nemo)$"
"opaque,class:^(virt-manager)$"
"opaque,class:^(rofi)$"
"opaque,class:^(looking-glass-client)$"
"opaque,class:^(steam)$"
"opaque,class:^(equibop)$"
"opaque,initialtitle:^(Zen Browser)$"
"opaque,class:^(org.qutebrowser.qutebrowser)$"
"opaque,class:^(gimp)$"
"opaque,class:^(discord)$"
"opaque,class:^(librewolf)$"
"opaque,class:^(imv)$"
"opaque,class:^(org.gnome.Decibels)$"
"opaque,class:^(neovide)$"
"opaque,class:^(Tor Browser)$"
"opaque,class:^(com.ayugram.desktop)$"
"opaque,title:^(Software Manager)$"
"opaque,class:^(waypaper)$"
"opaque,class:^(mpv)$"
"opaque,class:^(helium)$"
"opaque,class:^(Spotify)$"
# -----------------
# Kando
# -----------------
"noblur,class:^(kando)$"
"opaque,class:^(kando)$"
"size 100% 100%,class:^(kando)$"
"bordersize 0,class:^(kando)$"
"noanim,class:^(kando)$"
"float,class:^(kando)$"
"pin,class:^(kando)$"
];
layer_rule = [
"blur,rofi"
"noanim,hyprpicker"
"noanim,selection"
"noscreenshare,notifications"
"blur,notifications"
"ignorealpha 1,notifications"
"blur,wofi"
"dimaround,rofi"
"noanim,^dms$"
"noscreenshare,dms:notification-popup"
"noanim,noctalia-background-.*$"
"ignorealpha 0.5,noctalia-background-.*$"
"blur,noctalia-background-.*$"
"blurpopups,noctalia-background-.*$"
"noscreenshare,noctalia-notifications-.*$"
];
};
}