dotfiles
My PC Dotfiles & Websitegit clone https://github.com/maydayv7/dotfiles
commit 55f83d6814707782c7db74d6f17ba2f812cd6d13 parent 1b4a68f4f2e646425fdd3b89b0a5f300b63f3893 Author: maydayv7 <maydayv7@gmail.com> Date: Wed, 14 May 2025 15:51:27 +0530 feat: Update Hyprland Also add Minecraft
Diffstat:
23 files changed, 344 insertions(+), 262 deletions(-)
diff --git a/README.md b/README.md @@ -511,7 +511,7 @@ _Thanks a lot! ;)_ ### v25.5 - Remove package `channels` -- Update Hyprland to v0.48.0 +- Update Hyprland to v0.49 - Use `hyprshell` to switch between windows - Use `pcmanfm-qt` to render desktop icons - Use animations from [end4](https://github.com/end-4/dots-hyprland) diff --git a/devices/valkyrie/default.nix b/devices/valkyrie/default.nix @@ -22,7 +22,6 @@ cores = 8; mode = "performance"; }; - support = [ "laptop" "mobile" @@ -42,7 +41,6 @@ apps = { wine.utilities = true; - games = [ "osu" ]; list = [ "discord" "firefox" @@ -55,6 +53,10 @@ "vscode" "wine" ]; + games = [ + "minecraft" + "osu" + ]; }; shell = { diff --git a/devices/vortex.nix b/devices/vortex.nix @@ -21,7 +21,6 @@ cores = 8; mode = "performance"; }; - support = [ "laptop" "mobile" diff --git a/files/flake.nix b/files/flake.nix @@ -92,12 +92,6 @@ # Greeter Configuration greeter = readFile ./hyprland/greeter.conf; - - # Launcher - hyprshell = { - config = readFile ./hyprland/hyprshell/config.ron; - style = readFile ./hyprland/hyprshell/style.css; - }; } // map.files { directory = ./hyprland/theme; diff --git a/files/hyprland/hyprshell/config.ron b/files/hyprland/hyprshell/config.ron @@ -1,48 +0,0 @@ -( - layerrules: false, - launcher: ( - default_terminal: "kitty", - width: 650, - max_items: 10, - plugins: [ - Applications( - run_cache_weeks: 4, - show_execs: true, - ), - Terminal(), - Shell(), - ], - ), - windows: ( - size_factor: 7, - workspaces_per_row: 3, - strip_html_from_workspace_title: true, - overview: ( - open: ( - modifier: super, - key: "tab", - ), - navigate: ( - forward: "tab", - reverse: Mod(shift), - ), - other: ( - hide_filtered: false, - filter_by: [], - ), - ), - switch: ( - open: ( - modifier: alt, - ), - navigate: ( - forward: "tab", - reverse: Mod(shift), - ), - other: ( - hide_filtered: true, - filter_by: [current_workspace], - ), - ), - ), -) diff --git a/files/hyprland/hyprshell/style.css b/files/hyprland/hyprshell/style.css @@ -1,91 +0,0 @@ -:root { - --text-color: #@white; - --bg-color: alpha(#@base00, 0.5); - --bg-color-active: rgba(255, 255, 255, 0.2); - --bg-color-hover: rgba(255, 255, 255, 0.4); - --border-radius: 10px; - --border-color: #@base04; - --border-color-active: #@base05; - --border-style: solid; - --border-style-secondary: dashed; - --launcher-animation-speed: 0.3s; -} - -/* Overview */ - -.monitor { - background: var(--bg-color); - border-color: var(--border-color-active); -} - -.monitor:hover { - background: var(--bg-color); -} - -.workspace { - background: var(--bg-color); - border-color: var(--bg-color); -} - -.workspace.active { - border-color: var(--border-color-active); -} - -.client:hover { - background-color: var(--bg-color-hover); -} - -.client.active { - background: var(--bg-color-active); - border-color: var(--border-color-active); -} - -/* Launcher */ - -.launcher { - padding: 2px; - border: 2px var(--border-style) var(--border-color-active); -} - -.launcher-input { - color: var(--text-color); - margin: 6px; - padding: 4px 12px; -} - -.launcher-results { - font-size: 1.5rem; - margin: 0; -} - -.launcher-item { - color: var(--text-color); - padding-left: 6px; - padding-right: 6px; -} - -.launcher-exec { - font-size: 0.8rem; - color: var(--border-color); - font-family: @monospace; -} - -.launcher-key { - font-size: 0.8em; - font-weight: bold; - font-family: @monospace; -} - -.launcher-plugins { - padding: 2px; -} - -.launcher-plugin { - padding: 4px; -} - -.launcher-plugin-key { - font-size: 0.8em; - font-weight: bold; - font-family: @monospace; -} diff --git a/files/hyprland/kebihelp.json b/files/hyprland/kebihelp.json @@ -151,8 +151,8 @@ "label": "Application Launcher and Overview" }, { - "value": "$mod ` (4F Swipe Up)", - "label": "Show workspace overview" + "value": "$mod [SHIFT] `", + "label": "Show workspace overview for monitor[s]" }, { "value": "ALT [SHIFT] Tab", @@ -237,6 +237,10 @@ "label": "Toggle Compositor Shader" }, { + "value": "$mod I", + "label": "Invert active window color" + }, + { "value": "$mod SHIFT S", "label": "Toggle window swallowing" }, @@ -250,7 +254,7 @@ "_hidden": false, "keybindings": [ { - "value": "$mod ?", + "value": "$mod /", "label": "Show this page" }, { diff --git a/files/hyprland/theme/hyprshell.css b/files/hyprland/theme/hyprshell.css @@ -0,0 +1,44 @@ +:root { + --text-color: #@white; + --bg-color: alpha(#@base00, 0.5); + --bg-color-active: rgba(255, 255, 255, 0.2); + --bg-color-hover: rgba(255, 255, 255, 0.4); + --border-radius: 10px; + --border-size: 2px; + --border-color: #@base04; + --border-color-active: #@base05; + --border-style: solid; + --border-style-secondary: dashed; + --window-padding: 2px; +} + +.workspace.active { + border-color: var(--border-color-active); +} + +.client.active { + background: var(--bg-color-active); + border-color: var(--border-color-active); +} + +.launch { + animation: pulse 0.7s normal infinite; +} + +@keyframes pulse { + 0% { + background: var(--bg-color); + } + 5% { + background: alpha(var(--border-color-active), 0.4); + } + 15% { + background: alpha(var(--border-color-active), 0.6); + } + 60% { + background: alpha(var(--border-color-active), 0.9); + } + 100% { + background: var(--bg-color); + } +} diff --git a/files/hyprland/waycorner.toml b/files/hyprland/waycorner.toml @@ -1,5 +1,5 @@ [overview] -command = [ "hyprctl", "dispatch", "hyprexpo:expo" ] +command = [ "hyprctl", "dispatch", "overview:toggle" ] locations = [ "top_left" ] size = 10 timeout_ms = 200 diff --git a/flake.lock b/flake.lock @@ -20,11 +20,11 @@ ] }, "locked": { - "lastModified": 1743265529, - "narHash": "sha256-QbjP15/2N+VJl0b5jxrrTc+VOt39aU4XrDvtP0Lz5ik=", + "lastModified": 1745357003, + "narHash": "sha256-jYwzQkv1r7HN/4qrAuKp+NR4YYNp2xDrOX5O9YVqkWo=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "1d2dbd72c2bbaceab031c592d4810f744741d203", + "rev": "a19cf76ee1a15c1c12083fa372747ce46387289f", "type": "github" }, "original": { @@ -556,11 +556,11 @@ ] }, "locked": { - "lastModified": 1742215578, - "narHash": "sha256-zfs71PXVVPEe56WEyNi2TJQPs0wabU4WAlq0XV7GcdE=", + "lastModified": 1745948457, + "narHash": "sha256-lzTV10FJTCGNtMdgW5YAhCAqezeAzKOd/97HbQK8GTU=", "owner": "hyprwm", "repo": "hyprcursor", - "rev": "2fd36421c21aa87e2fe3bee11067540ae612f719", + "rev": "ac903e80b33ba6a88df83d02232483d99f327573", "type": "github" }, "original": { @@ -579,11 +579,11 @@ ] }, "locked": { - "lastModified": 1743585507, - "narHash": "sha256-289lmhoXl+LjM2nZe0e/k+/5D7VMYzVajr7FWAs4DVw=", + "lastModified": 1746728918, + "narHash": "sha256-KophdgmuoPO4adpgXxhDBAMQoRRoHjngiFWQxLoGgWY=", "owner": "VirtCode", "repo": "hypr-dynamic-cursors", - "rev": "b2f6819475970ff1b13e23cdb01416181b5f80b0", + "rev": "1aabd346eb7ad12a614fd18d095d13422d8b95b4", "type": "github" }, "original": { @@ -592,6 +592,29 @@ "type": "github" } }, + "hyprdark": { + "inputs": { + "hyprland": [ + "hyprland" + ], + "nix-filter": [ + "filters" + ] + }, + "locked": { + "lastModified": 1746772087, + "narHash": "sha256-IFfMnkQZeWuRrMxbIDfVAcbAhWmLqMSno64+NnXMIAE=", + "owner": "micha4w", + "repo": "Hypr-DarkWindow", + "rev": "9d541dbd1e96d1dab887d9b6f10cbefd6476d104", + "type": "github" + }, + "original": { + "owner": "micha4w", + "repo": "Hypr-DarkWindow", + "type": "github" + } + }, "hyprgraphics": { "inputs": { "hyprutils": [ @@ -608,11 +631,11 @@ ] }, "locked": { - "lastModified": 1739049071, - "narHash": "sha256-3+7TpXMrbsUXSwgr5VAKAnmkzMb6JO+Rvc9XRb5NMg4=", + "lastModified": 1745015490, + "narHash": "sha256-apEJ9zoSzmslhJ2vOKFcXTMZLUFYzh1ghfB6Rbw3Low=", "owner": "hyprwm", "repo": "hyprgraphics", - "rev": "175c6b29b6ff82100539e7c4363a35a02c74dd73", + "rev": "60754910946b4e2dc1377b967b7156cb989c5873", "type": "github" }, "original": { @@ -641,11 +664,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1743809433, - "narHash": "sha256-tCOlE2zMXfd+KNG5ETr2VxhbniDMD7jBbD0JQhYBrlc=", + "lastModified": 1747176389, + "narHash": "sha256-/1LO70LYdlECRCX5NuBWZxi7isllo4uJd6QI9vt9PQA=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "8ba20fcae124591718bddadd94c5e8c381d02097", + "rev": "59b23406804d0c6aa37dc40c271852e697759663", "type": "github" }, "original": { @@ -666,11 +689,11 @@ ] }, "locked": { - "lastModified": 1743549251, - "narHash": "sha256-yf+AXt0RkAkCyF6iSnJt6EJAnNG/l6qv70CVzhRP6Bg=", + "lastModified": 1743714874, + "narHash": "sha256-yt8F7NhMFCFHUHy/lNjH/pjZyIDFNk52Q4tivQ31WFo=", "owner": "hyprwm", "repo": "hyprland-protocols", - "rev": "4ab17ccac08456cb5e00e8bd323de2efd30612be", + "rev": "3a5c2bda1c1a4e55cc1330c782547695a93f05b2", "type": "github" }, "original": { @@ -734,11 +757,11 @@ ] }, "locked": { - "lastModified": 1739048983, - "narHash": "sha256-REhTcXq4qs3B3cCDtLlYDz0GZvmsBSh947Ub6pQWGTQ=", + "lastModified": 1745951494, + "narHash": "sha256-2dModE32doiyQMmd6EDAQeZnz+5LOs6KXyE0qX76WIg=", "owner": "hyprwm", "repo": "hyprland-qtutils", - "rev": "3504a293c8f8db4127cb0f7cfc1a318ffb4316f8", + "rev": "4be1d324faf8d6e82c2be9f8510d299984dfdd2e", "type": "github" }, "original": { @@ -763,11 +786,11 @@ ] }, "locked": { - "lastModified": 1741191527, - "narHash": "sha256-kM+11Nch47Xwfgtw2EpRitJuORy4miwoMuRi5tyMBDY=", + "lastModified": 1746655412, + "narHash": "sha256-kVQ0bHVtX6baYxRWWIh4u3LNJZb9Zcm2xBeDPOGz5BY=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "72df3861f1197e41b078faa3e38eedd60e00018d", + "rev": "557241780c179cf7ef224df392f8e67dab6cef83", "type": "github" }, "original": { @@ -793,11 +816,11 @@ ] }, "locked": { - "lastModified": 1743950622, - "narHash": "sha256-8qjDapcQeDqxQUIm5gA0x6XZtowV/14bOs3K0tCSMoU=", + "lastModified": 1746806942, + "narHash": "sha256-fziL5ORI599D6Wp+BKlspxOqZ1HhCCLkq4C4FBwIwJo=", "owner": "hyprwm", "repo": "hyprland-plugins", - "rev": "be6b9875dd5c586fb401d294bb98c31973849651", + "rev": "c491d2831448645f24a1597a17f564aa52691ac6", "type": "github" }, "original": { @@ -813,17 +836,39 @@ ] }, "locked": { - "lastModified": 1746122011, - "narHash": "sha256-jIZD8k6pbsr5eer0BwFCTuUyso11cnQldYwLF9oMp3w=", + "lastModified": 1747211694, + "narHash": "sha256-te5QuIKrR3BA/7hmdH4L6W3qc8jU8r+UU1M7bT/0j0Y=", "owner": "H3rmt", - "repo": "hyprswitch", - "rev": "02bd2c400616cb96cd21ccc6b2f530143fcb511b", + "repo": "hyprshell-test", + "rev": "01758a6d6384c5ad73a841c3f2e8b90ee9912393", "type": "github" }, "original": { "owner": "H3rmt", - "ref": "hyprshell", - "repo": "hyprswitch", + "repo": "hyprshell-test", + "type": "github" + } + }, + "hyprspace": { + "inputs": { + "hyprland": [ + "hyprland" + ], + "systems": [ + "systems" + ] + }, + "locked": { + "lastModified": 1746741073, + "narHash": "sha256-qs8I5gBib+RLNGYa9om36VivHVrrisJDlZ4EnXNA6OQ=", + "owner": "KZDKM", + "repo": "Hyprspace", + "rev": "82bdb6720ef6163f0b10b49ba49702f0bde815d8", + "type": "github" + }, + "original": { + "owner": "KZDKM", + "repo": "Hyprspace", "type": "github" } }, @@ -834,11 +879,11 @@ ] }, "locked": { - "lastModified": 1742760110, - "narHash": "sha256-FTp5mkrrgo/plCFHuFnx+EtDnQQoChq0mdKpb2a4LrQ=", + "lastModified": 1746992858, + "narHash": "sha256-0jrsiUoQi/VXM2Ji7YTOEYDYYlBI2C3ZbgQpYoAEVKI=", "owner": "shezdy", "repo": "hyprsplit", - "rev": "a451db4f300031b137af4064a22c80516467abb2", + "rev": "bfe9bd397ca4f7d85aa70e13eaf1d82c26f2ffb4", "type": "github" }, "original": { @@ -859,11 +904,11 @@ ] }, "locked": { - "lastModified": 1742984269, - "narHash": "sha256-uz9FaCIbga/gQ5ZG1Hb4HVVjTWT1qjjCAFlCXiaefxg=", + "lastModified": 1746635225, + "narHash": "sha256-W9G9bb0zRYDBRseHbVez0J8qVpD5QbizX67H/vsudhM=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "7248194a2ce0106ae647b70d0526a96dc9d6ad60", + "rev": "674ea57373f08b7609ce93baff131117a0dfe70d", "type": "github" }, "original": { @@ -997,11 +1042,11 @@ ] }, "locked": { - "lastModified": 1742649964, - "narHash": "sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco=", + "lastModified": 1746537231, + "narHash": "sha256-Wb2xeSyOsCoTCTj7LOoD6cdKLEROyFAArnYoS+noCWo=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82", + "rev": "fa466640195d38ec97cf0493d6d6882bc4d14969", "type": "github" }, "original": { @@ -1071,9 +1116,11 @@ "hardware": "hardware", "home": "home", "hyprcursors": "hyprcursors", + "hyprdark": "hyprdark", "hyprland": "hyprland", "hyprplugins": "hyprplugins", "hyprshell": "hyprshell", + "hyprspace": "hyprspace", "hyprsplit": "hyprsplit", "impermanence": "impermanence", "index": "index", @@ -1477,11 +1524,11 @@ ] }, "locked": { - "lastModified": 1741934139, - "narHash": "sha256-ZhTcTH9FoeAtbPfWGrhkH7RjLJZ7GeF18nygLAMR+WE=", + "lastModified": 1745871725, + "narHash": "sha256-M24SNc2flblWGXFkGQfqSlEOzAGZnMc9QG3GH4K/KbE=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "150b0b6f52bb422a1b232a53698606fe0320dde0", + "rev": "76bbf1a6b1378e4ab5230bad00ad04bc287c969e", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix @@ -202,9 +202,25 @@ }; }; + hyprspace = { + url = "github:KZDKM/Hyprspace"; + inputs = { + hyprland.follows = "hyprland"; + systems.follows = "systems"; + }; + }; + + hyprdark = { + url = "github:micha4w/Hypr-DarkWindow"; + inputs = { + hyprland.follows = "hyprland"; + nix-filter.follows = "filters"; + }; + }; + # Launcher hyprshell = { - url = "github:H3rmt/hyprswitch?ref=hyprshell"; + url = "github:H3rmt/hyprshell-test"; inputs.nixpkgs.follows = "nixpkgs"; }; }; diff --git a/modules/README.md b/modules/README.md @@ -7,7 +7,7 @@ Configuration [Builder](./configuration.nix) - [`apps`](./apps): Module that configures various apps and/or environments - - `list`: List of enabled applications - `[ "discord" "firefox" "flatpak" "games" "git" "office" "spotify" "wine" ]` - - `games`: List of installed games - `[ "osu" ]` + - `games`: List of installed games - `[ "minecraft" "osu" ]` - `git` - - `hosting` - - `enable`: Enable Gitea Code Hosting - `true / false` diff --git a/modules/apps/games/minecraft.nix b/modules/apps/games/minecraft.nix @@ -0,0 +1,13 @@ +{ + config, + lib, + pkgs, + ... +}: +{ + ## Minecraft ## + config = lib.mkIf (builtins.elem "minecraft" config.apps.games) { + environment.systemPackages = [ pkgs.prismlauncher ]; + user.persist.directories = [ ".local/share/PrismLauncher" ]; + }; +} diff --git a/modules/apps/games/osu.nix b/modules/apps/games/osu.nix @@ -5,6 +5,7 @@ ... }: { + ## OSU! ## config = lib.mkIf (builtins.elem "osu" config.apps.games) { environment.systemPackages = [ pkgs.osu-lazer-bin ]; user.persist.directories = [ ".local/share/osu" ]; diff --git a/modules/apps/office.nix b/modules/apps/office.nix @@ -68,7 +68,7 @@ in hunspell hunspellDicts.en_US-large hyphen - ventoy-full + popsicle ]; # Dictionaries diff --git a/modules/gui/desktop/hyprland/apps/files.nix b/modules/gui/desktop/hyprland/apps/files.nix @@ -51,13 +51,24 @@ in "org/nemo/plugins".disabled-actions = [ "change-background.nemo_action" ]; "org/nemo/icon-view".captions = [ "size" + "type" "date_modified" - "none" ]; "org/nemo/preferences" = { click-policy = "double"; + date-format = "informal"; + inherit-folder-viewer = true; quick-renames-with-pause-in-between = true; + show-advanced-permissions = true; + show-new-folder-icon-toolbar = false; + show-show-thumbnails-toolbar = true; + tooltips-in-icon-view = true; + tooltips-in-list-view = false; + tooltips-show-access-date = true; + tooltips-show-birth-date = true; + tooltips-show-file-type = true; + tooltips-show-mod-date = true; }; "org/nemo/preferences/menu-config" = { diff --git a/modules/gui/desktop/hyprland/apps/launcher.nix b/modules/gui/desktop/hyprland/apps/launcher.nix @@ -0,0 +1,79 @@ +{ + config, + util, + inputs, + files, + ... +}: +{ + ## Launcher Configuration + user.homeConfig = { + imports = [ inputs.hyprshell.homeModules.hyprshell ]; + programs.hyprshell = { + enable = true; + systemd.enable = true; + style = util.build.theme { + inherit (config.lib.stylix) colors; + file = files.hyprland.hyprshell; + }; + + declarative = true; + settings = { + layerrules = false; + + launcher = { + enable = true; + default_terminal = "kitty"; + width = 700; + max_items = 10; + plugins = { + applications = { + cache = 4; + execs = true; + }; + websearch.engines = [ + { + url = "https://www.google.com/search?q={}"; + name = "Google"; + key = "g"; + } + ]; + }; + }; + + window = { + scale = 9.0; + workspaces_per_row = 3; + strip_html_from_workspace_title = true; + + overview = { + open = { + modifier = "super"; + key = "tab"; + }; + navigate = { + forward = "tab"; + reverse = "Mod(shift)"; + }; + filter = { + hide = false; + by = [ ]; + }; + }; + + switcher = { + open.modifier = "alt"; + navigate = { + forward = "tab"; + reverse = "Mod(shift)"; + }; + filter = { + hide = true; + by = [ "current_workspace" ]; + }; + }; + }; + }; + }; + }; +} diff --git a/modules/gui/desktop/hyprland/apps/panel.nix b/modules/gui/desktop/hyprland/apps/panel.nix @@ -89,7 +89,7 @@ }; "hyprland/workspaces" = { - all-outputs = true; + all-outputs = false; show-special = true; format = "<small>{name}</small>{icon}"; on-scroll-up = "hyprctl dispatch workspace m+1"; diff --git a/modules/gui/desktop/hyprland/apps/settings.nix b/modules/gui/desktop/hyprland/apps/settings.nix @@ -9,6 +9,7 @@ }: let inherit (builtins) map toString; + inherit (lib) flatten getExe; inherit (config.gui) cursors display; cursor = "${cursors.name}-Hyprcursor"; in @@ -92,7 +93,7 @@ in # Utilities "$mod, A, exec, nwg-drawer" - "$mod SHIFT, slash, exec, ${toggle "kebihelp"} show -a" + "$mod, slash, exec, ${toggle "kebihelp"} show -a" "$mod SHIFT, C, exec, ${runOnce "hyprpicker"} -arf hex" "$mod SHIFT, B, exec, ${runOnce "overskride"}" "$mod, D, exec, ${runOnce "nwg-displays"}" @@ -110,8 +111,16 @@ in "$mod, backslash, exec, pypr toggle emoji" ]; + ## Permissions + permission = [ + "${config.programs.hyprland.portalPackage}/libexec/.xdg-desktop-portal-hyprland-wrapped, screencopy, allow" + "${getExe pkgs.grim}, screencopy, allow" + "${getExe pkgs.wl-screenrec}, screencopy, allow" + ]; + ## Layer Rules layerrule = [ + "noanim, ^(hyprpicker)$" "blur, ^(hyprshell_overview)$" "dimaround, ^(hyprshell_overview)$" "blur, ^(logout_dialog)$" @@ -126,7 +135,7 @@ in ]; ## Window Rules - windowrulev2 = lib.flatten ( + windowrulev2 = flatten ( [ # Settings "stayfocused, class:^(gnome-control-center)$" diff --git a/modules/gui/desktop/hyprland/apps/utilities.nix b/modules/gui/desktop/hyprland/apps/utilities.nix @@ -19,7 +19,6 @@ in gnome-clocks gnome-disk-utility hyprpicker - hyprworld.hyprshell nwg-displays nwg-drawer overskride @@ -80,11 +79,7 @@ in ]; user = { - persist.directories = [ - ".config/nwg-displays" - ".local/share/hyprshell" - ]; - + persist.directories = [ ".config/nwg-displays" ]; homeConfig = { services = { # Wallpaper Daemon @@ -129,19 +124,14 @@ in target = [ "graphical-session.target" ]; run = about: command: { Install.WantedBy = target; + Service.ExecStart = command; Unit = { Description = about; After = target; }; - Service = { - Restart = "always"; - RestartSec = 1; - ExecStart = command; - }; }; in { - hyprshell = run "Launcher" "${getExe pkgs.hyprworld.hyprshell} run"; waycorner = run "Hot Corners" (getExe pkgs.waycorner); wlclock = with colors; @@ -158,39 +148,29 @@ in terminal = false; }; - home.file = - with files.hyprland; - let - build = - file: - util.build.theme { - inherit colors file; - inherit (config.stylix) fonts; - }; - in - { - # Application Drawer - ".config/nwg-drawer/drawer.css".text = drawer; - - # Pyprland - ".config/hypr/pyprland.toml".text = pypr; + home.file = with files.hyprland; { + # Application Drawer + ".config/nwg-drawer/drawer.css".text = drawer; - # Keybinds Viewer - ".config/kebihelp.json".text = build kebihelp; + # Pyprland + ".config/hypr/pyprland.toml".text = pypr; - # Hot Corners - ".config/waycorner/config.toml".text = waycorner; + # Hot Corners + ".config/waycorner/config.toml".text = waycorner; - # Launcher - ".config/hyprshell/config.ron".text = hyprshell.config; - ".config/hyprshell/styles.css".text = build hyprshell.style; + # Keybinds Viewer + ".config/kebihelp.json".text = util.build.theme { + inherit colors; + inherit (config.stylix) fonts; + file = kebihelp; + }; - # Shaders - ".config/hypr/shaders" = { - source = files.proprietary.shaders.path; - recursive = true; - }; + # Shaders + ".config/hypr/shaders" = { + source = files.proprietary.shaders.path; + recursive = true; }; + }; }; }; } diff --git a/modules/gui/desktop/hyprland/settings/default.nix b/modules/gui/desktop/hyprland/settings/default.nix @@ -139,17 +139,19 @@ in scrolling = true; gradients = true; height = 15; - font_size = 10; render_titles = true; + font_size = 10; + font_weight_active = "bold"; keep_upper_gap = false; indicator_height = 0; gradient_rounding = 5; gradient_round_only_edges = false; - "col.active" = mkForce "rgb(${base03}) rgb(${base0D}) 90deg"; + "col.active" = mkForce "rgba(${base0D}99)"; "col.inactive" = mkForce "rgb(${base03})"; }; }; + animations.workspace_wraparound = true; animation = { bezier = [ "accelerate, 0.3, 0, 0.8, 0.15" diff --git a/modules/gui/desktop/hyprland/settings/plugins.nix b/modules/gui/desktop/hyprland/settings/plugins.nix @@ -8,9 +8,10 @@ ## Plugin Settings wayland.windowManager.hyprland = { plugins = with pkgs.hyprworld; [ - hyprexpo hyprsplit hypr-dynamic-cursors + Hyprspace + Hypr-DarkWindow ]; settings = { @@ -18,17 +19,6 @@ # Workspaces per Monitor hyprsplit.num_workspaces = 9; - # Workspace Overview - hyprexpo = { - columns = 3; - workspace_method = "first 1"; - enable_gesture = true; - gesture_positive = false; - gesture_fingers = 4; - bg_col = "rgb(${sys.lib.stylix.colors.base00})"; - gap_size = config.wayland.windowManager.hyprland.settings.general.gaps_in; - }; - # Cursor Effects dynamic-cursors = { enabled = true; @@ -42,10 +32,39 @@ mode = if sys.gui.fancy then "tilt" else "none"; tilt.function = "negative_quadratic"; }; + + # Workspace Overview + overview = + with sys.lib.stylix.colors; + let + gaps = builtins.toString config.wayland.windowManager.hyprland.settings.general.gaps_in; + in + { + autoDrag = true; + dragAlpha = 0.4; + exitOnClick = true; + centerAligned = true; + hideTopLayers = true; + hideOverlayLayers = false; + showNewWorkspace = false; + showEmptyWorkspace = true; + overrideGaps = true; + gapsIn = gaps; + gapsOut = gaps; + panelBorderWidth = 0; + panelBorderColor = "rgb(${base0A})"; + workspaceActiveBorder = "rgb(${base0D})"; + }; }; - # Overview - bind = [ "$mod, grave, hyprexpo:expo, toggle" ]; + bind = [ + # Overview + "$mod, grave, overview:toggle" + "$mod SHIFT, grave, overview:toggle, all" + + # Color Inversion + "$mod, I, invertactivewindow" + ]; }; }; } diff --git a/packages/flake.nix b/packages/flake.nix @@ -60,7 +60,8 @@ in // hyprplugins.packages."${system}" // hyprsplit.packages."${system}" // hyprcursors.packages."${system}" - // hyprshell.packages."${system}"; + // hyprspace.packages."${system}" + // hyprdark.packages."${system}"; }) ]; };