dotfiles

My PC Dotfiles & Website
commit 4cd9f479ae4885fadb49da41044cc8265d623b87
parent f874b65fa3732916260cc2293e51ea04be853864
Author: maydayv7 <maydayv7@gmail.com>
Date:   Tue, 25 Mar 2025 12:42:26 +0530

feat: Remove package `channels`

+ Update some Hyprland keybinds, prepare for v0.48
+ Use less Pyprland, its buggy

Diffstat:

MREADME.md | 7++-----
Mdevices/README.md | 4----
Mdevices/valkyrie/default.nix | 1-
Mdevices/vortex.nix | 1-
Mfiles/hyprland/kebihelp.json | 36++++++++++++++++++++++++++++++------
Mfiles/hyprland/pypr.toml | 31-------------------------------
Mflake.lock | 148+++++++++++++++++++++++++++++++++++++++++++------------------------------------
Mflake.nix | 89++++++++++++++++++++++++++++++++++++-------------------------------------------
Mmodules/configuration.nix | 7+++----
Mmodules/gui/desktop/hyprland/apps/panel.nix | 56+++++++++++++++++---------------------------------------
Mmodules/gui/desktop/hyprland/apps/settings.nix | 40+++++++++++++++++++++++++++++-----------
Mmodules/gui/desktop/hyprland/apps/utilities.nix | 2+-
Mmodules/gui/desktop/hyprland/settings/default.nix | 3++-
Mmodules/gui/desktop/hyprland/settings/keybindings.nix | 23++++++++++++++---------
Mmodules/gui/desktop/hyprland/settings/plugins.nix | 5++---
Mpackages/README.md | 2+-
Mpackages/default.nix | 2+-
Mpackages/flake.nix | 102+++++++++++++++++++++++++++-----------------------------------------------------
Dpackages/hyprswitch/default.nix | 35-----------------------------------
Dpackages/hyprswitch/metadata.nix | 7-------
20 files changed, 257 insertions(+), 344 deletions(-)

diff --git a/README.md b/README.md @@ -130,10 +130,6 @@ github:maydayv7/dotfiles │ ├───default: app │ ├───install: app │ └───nixos: app -├───channels -│ └───x86_64-linux -│ ├───stable: package channel -│ └───unstable: package channel ├───checks │ └───x86_64-linux │ ├───Device-gnome: derivation 'nixos-rebuild' @@ -511,8 +507,9 @@ You can navigate to the `README`s present in the various directories to know mor <details> <summary><b>Changelog</b></summary> -### NEXT +### v25.5 +- Remove package `channels` - Update Hyprland to v0.47.1 - Use `hyprswitch` to switch between windows - Use `pcmanfm-qt` to render desktop icons diff --git a/devices/README.md b/devices/README.md @@ -15,7 +15,3 @@ These are the options that can be used in addition to the ones exposed by the [` - `format`: Generates Output for Specified Target Format (See [this](https://github.com/nix-community/nixos-generators#supported-formats) for the list of supported formats) - `user` or `users` (--> `config.user.settings`): Used to specify Device User/Multiple Users per Device - Ex. `users = [ { name "1"; } { name = "2"; } ]` - `update`: Enable Automatic System Upgrades - Ex. `weekly` -- `channel`: Specify which Package Channel the system is built from - Ex. `unstable` - -> [!WARNING] -> Specifying any other package channel apart from `stable` may be untested and cause breakage diff --git a/devices/valkyrie/default.nix b/devices/valkyrie/default.nix @@ -2,7 +2,6 @@ system = "x86_64-linux"; name = "valkyrie"; description = "PC - ASUS ROG Zephyrus G14"; - channel = "stable"; timezone = "Asia/Kolkata"; locale = "IN"; diff --git a/devices/vortex.nix b/devices/vortex.nix @@ -2,7 +2,6 @@ system = "x86_64-linux"; name = "vortex"; description = "PC - Dell Inspiron 15 5000"; - channel = "stable"; timezone = "Asia/Kolkata"; locale = "IN"; diff --git a/files/hyprland/kebihelp.json b/files/hyprland/kebihelp.json @@ -131,7 +131,7 @@ }, { "value": "$mod C", - "label": "Center floating window" + "label": "Center floating window and/or move cursor to top right corner" }, { "value": "$mod P", @@ -143,7 +143,7 @@ "_hidden": false, "keybindings": [ { - "value": "$mod ` (or 4F Swipe Up)", + "value": "$mod ` (4F Swipe Up)", "label": "Show workspace overview" }, { @@ -172,8 +172,12 @@ "label": "Move window to workspace 'NUM' {1 to 9}" }, { - "value": "$mod , or . (or 3F Swipe Left/Right)", - "label": "Move to previous/next non-empty workspace" + "value": "$mod , or . (3F Swipe Left/Right)", + "label": "Move across non-empty workspaces" + }, + { + "value": "$mod CTRL , or .", + "label": "Move across workspaces" }, { "value": "$mod 0", @@ -181,7 +185,7 @@ }, { "value": "$mod SHIFT 0", - "label": "Move window to/from special workspace stash" + "label": "Move window to/from stash" }, { "value": "$mod SHIFT , or .", @@ -225,10 +229,14 @@ "label": "Toggle Compositor Shader" }, { - "value": "$mod SHIFT S", + "value": "$mod I", "label": "Invert active window color" }, { + "value": "$mod SHIFT S", + "label": "Toggle window swallowing" + }, + { "value": "$mod SHIFT D", "label": "Toggle main Display" } @@ -282,6 +290,18 @@ "label": "Task Manager" }, { + "value": "$mod SHIFT B", + "label": "Bluetooth Settings" + }, + { + "value": "$mod SHIFT P", + "label": "Volume Control" + }, + { + "value": "$mod SHIFT N", + "label": "Network Settings" + }, + { "value": "$mod N", "label": "Show received notifications in order" }, @@ -364,6 +384,10 @@ "label": "Move floating window" }, { + "value": ", or .", + "label": "Move window across workspaces" + }, + { "value": "C", "label": "Center floating window" }, diff --git a/files/hyprland/pypr.toml b/files/hyprland/pypr.toml @@ -19,34 +19,3 @@ class = "kitty-clip" lazy = true size = "75% 65%" margin = 30 - -[scratchpads.right] -animation = "fromRight" -lazy = true -size = "50% 90%" -margin = 30 -restore_excluded = true - -[scratchpads.bluetooth] -command = "overskride" -class = "io.github.kaii_lb.Overskride" -use = "right" -excludes = ["displays", "network", "volume"] - -[scratchpads.displays] -command = "nwg-displays" -class = "nwg-displays" -use = "right" -excludes = ["bluetooth", "network", "volume"] - -[scratchpads.network] -command = "sh -c 'env XDG_CURRENT_DESKTOP=GNOME gnome-control-center wifi'" -class = "org.gnome.Settings" -use = "right" -excludes = ["bluetooth", "displays", "volume"] - -[scratchpads.volume] -command = "pavucontrol" -class = "org.pulseaudio.pavucontrol" -use = "right" -excludes = ["bluetooth", "displays", "network"] diff --git a/flake.lock b/flake.lock @@ -107,36 +107,30 @@ "flake-parts": [ "framework" ], - "flake-utils": [ - "utils" - ], "nixpkgs": [ - "stable" + "nixpkgs" ], "pre-commit-hooks-nix": "pre-commit-hooks-nix", "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1718178907, - "narHash": "sha256-eSZyrQ9uoPB9iPQ8Y5H7gAmAgAvCw3InStmU3oEjqsE=", + "lastModified": 1737639419, + "narHash": "sha256-AEEDktApTEZ5PZXNDkry2YV2k6t0dTgLPEmAZbnigXU=", "owner": "nix-community", "repo": "lanzaboote", - "rev": "b627ccd97d0159214cee5c7db1412b75e4be6086", + "rev": "a65905a09e2c43ff63be8c0e86a93712361f871e", "type": "github" }, "original": { "owner": "nix-community", - "ref": "v0.4.1", + "ref": "v0.4.2", "repo": "lanzaboote", "type": "github" } }, "crane": { "inputs": { - "nixpkgs": [ - "boot", - "nixpkgs" - ] + "nixpkgs": "nixpkgs" }, "locked": { "lastModified": 1717535930, @@ -263,6 +257,24 @@ "type": "github" } }, + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "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" + } + }, "flatpak": { "locked": { "lastModified": 1739444422, @@ -282,7 +294,7 @@ "formatter": { "inputs": { "nixpkgs": [ - "stable" + "nixpkgs" ] }, "locked": { @@ -302,7 +314,7 @@ "framework": { "inputs": { "nixpkgs-lib": [ - "stable" + "nixpkgs" ] }, "locked": { @@ -340,7 +352,7 @@ "flake-parts": [ "framework" ], - "nixpkgs": "nixpkgs" + "nixpkgs": "nixpkgs_2" }, "locked": { "lastModified": 1740552472, @@ -359,7 +371,7 @@ "generators": { "inputs": { "nixlib": [ - "stable" + "nixpkgs" ], "nixpkgs": [ "unstable" @@ -506,7 +518,7 @@ "home-manager": { "inputs": { "nixpkgs": [ - "stable" + "nixpkgs" ] }, "locked": { @@ -617,7 +629,7 @@ "hyprutils": "hyprutils_2", "hyprwayland-scanner": "hyprwayland-scanner", "nixpkgs": [ - "stable" + "nixpkgs" ], "pre-commit-hooks": "pre-commit-hooks", "systems": [ @@ -629,7 +641,7 @@ "lastModified": 1738192779, "narHash": "sha256-NBOE/3axYuIDLPF0rI+yd006kKBQl+ItcK/4aBGw1Og=", "owner": "hyprwm", - "repo": "Hyprland", + "repo": "hyprland", "rev": "75dff7205f6d2bd437abfb4196f700abee92581a", "type": "github" }, @@ -657,15 +669,16 @@ ] }, "locked": { - "lastModified": 1738966025, - "narHash": "sha256-MzgrF0jKlTNnNS33D8PwI5z2MJ1Tzf5MQVf/oms2pdw=", + "lastModified": 1738457635, + "narHash": "sha256-zys4H2zSSIw54ecnYnBh2NUKZQraWD4B7qftuClrXho=", "owner": "hyprwm", "repo": "hyprland-plugins", - "rev": "4f48dbe12f3cbbeb4d31c91c67b21edbc5b4b451", + "rev": "1c4b446cea46088c6c79e5c66ea5ae28b48c2701", "type": "github" }, "original": { "owner": "hyprwm", + "ref": "v0.47.0", "repo": "hyprland-plugins", "type": "github" } @@ -833,34 +846,6 @@ "type": "github" } }, - "hyprtasking": { - "inputs": { - "hyprland": [ - "hyprland" - ], - "nixpkgs": [ - "hyprtasking", - "hyprland", - "nixpkgs" - ], - "systems": [ - "systems" - ] - }, - "locked": { - "lastModified": 1741076329, - "narHash": "sha256-EiL/2wfTjUBuoUZ4TOat/dU2fCKbK3t/q6lTKdeZc20=", - "owner": "raybbian", - "repo": "hyprtasking", - "rev": "866abe4d617187ddbeba805467c85605f0fcf2d2", - "type": "github" - }, - "original": { - "owner": "raybbian", - "repo": "hyprtasking", - "type": "github" - } - }, "hyprutils": { "inputs": { "nixpkgs": [ @@ -960,7 +945,7 @@ "index": { "inputs": { "nixpkgs": [ - "stable" + "nixpkgs" ] }, "locked": { @@ -979,11 +964,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1740019556, - "narHash": "sha256-vn285HxnnlHLWnv59Og7muqECNMS33mWLM14soFIv2g=", + "lastModified": 1742707865, + "narHash": "sha256-RVQQZy38O3Zb8yoRJhuFgWo/iDIDj0hEdRTVfhOtzRk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "dad564433178067be1fbdfcce23b546254b6d641", + "rev": "dd613136ee91f67e5dba3f3f41ac99ae89c5406b", "type": "github" }, "original": { @@ -1011,6 +996,22 @@ }, "nixpkgs_2": { "locked": { + "lastModified": 1740019556, + "narHash": "sha256-vn285HxnnlHLWnv59Og7muqECNMS33mWLM14soFIv2g=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "dad564433178067be1fbdfcce23b546254b6d641", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { "lastModified": 1732837521, "narHash": "sha256-jNRNr49UiuIwaarqijgdTR2qLPifxsVhlJrKzQ8XUIE=", "owner": "NixOS", @@ -1078,7 +1079,7 @@ "proprietary": { "inputs": { "nixpkgs": [ - "stable" + "nixpkgs" ], "utils": "utils" }, @@ -1111,7 +1112,6 @@ "hyprland": "hyprland", "hyprland-plugins": "hyprland-plugins", "hyprsplit": "hyprsplit", - "hyprtasking": "hyprtasking", "impermanence": "impermanence", "index": "index", "nixpkgs": [ @@ -1122,7 +1122,7 @@ "spotify": "spotify", "stable": "stable", "stylix": "stylix", - "systems": "systems_2", + "systems": "systems_3", "unstable": "unstable", "utils": "utils_2", "vscode": "vscode", @@ -1132,10 +1132,7 @@ }, "rust-overlay": { "inputs": { - "flake-utils": [ - "boot", - "flake-utils" - ], + "flake-utils": "flake-utils", "nixpkgs": [ "boot", "nixpkgs" @@ -1231,7 +1228,7 @@ "home-manager" ], "nixpkgs": [ - "stable" + "nixpkgs" ], "systems": [ "systems" @@ -1271,6 +1268,21 @@ } }, "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_3": { "flake": false, "locked": { "lastModified": 1707463813, @@ -1339,11 +1351,11 @@ }, "unstable": { "locked": { - "lastModified": 1740560979, - "narHash": "sha256-Vr3Qi346M+8CjedtbyUevIGDZW8LcA1fTG0ugPY/Hic=", + "lastModified": 1742669843, + "narHash": "sha256-G5n+FOXLXcRx+3hCJ6Rt6ZQyF1zqQ0DL0sWAMn2Nk0w=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5135c59491985879812717f4c9fea69604e7f26f", + "rev": "1e5b653dff12029333a6546c11e108ede13052eb", "type": "github" }, "original": { @@ -1355,7 +1367,7 @@ }, "utils": { "inputs": { - "systems": "systems" + "systems": "systems_2" }, "locked": { "lastModified": 1694529238, @@ -1398,7 +1410,7 @@ "utils" ], "nixpkgs": [ - "stable" + "nixpkgs" ] }, "locked": { @@ -1417,7 +1429,7 @@ }, "vsppuccin": { "inputs": { - "nixpkgs": "nixpkgs_2" + "nixpkgs": "nixpkgs_3" }, "locked": { "lastModified": 1739527968, diff --git a/flake.nix b/flake.nix @@ -23,7 +23,7 @@ # Author -> V 7 <maydayv7@gmail.com> # # License -> MIT # # URL -> github:maydayv7/dotfiles # -# Version -> NEXT # +# Version -> v25.5 # # --------------------------------------- # # Welcome to Ground Zero! # # The very heart of my 'dotfiles' # @@ -47,7 +47,7 @@ # Proprietary Software proprietary = { url = "github:maydayv7/proprietary"; - inputs.nixpkgs.follows = "stable"; + inputs.nixpkgs.follows = "nixpkgs"; }; # Packaged Games @@ -67,7 +67,7 @@ # Flakes Framework framework = { url = "github:hercules-ci/flake-parts"; - inputs.nixpkgs-lib.follows = "stable"; + inputs.nixpkgs-lib.follows = "nixpkgs"; }; # Flake Utility Functions @@ -82,14 +82,14 @@ # Syntax Formatter formatter = { url = "github:numtide/treefmt-nix"; - inputs.nixpkgs.follows = "stable"; + inputs.nixpkgs.follows = "nixpkgs"; }; ## Feature Modules # User Home Manager home-manager = { url = "github:nix-community/home-manager?ref=release-24.11"; - inputs.nixpkgs.follows = "stable"; + inputs.nixpkgs.follows = "nixpkgs"; }; # Hardware Support @@ -97,11 +97,10 @@ # Secure Boot boot = { - url = "github:nix-community/lanzaboote/v0.4.1"; + url = "github:nix-community/lanzaboote/v0.4.2"; inputs = { - nixpkgs.follows = "stable"; + nixpkgs.follows = "nixpkgs"; flake-parts.follows = "framework"; - flake-utils.follows = "utils"; }; }; @@ -118,7 +117,7 @@ generators = { url = "github:nix-community/nixos-generators"; inputs = { - nixlib.follows = "stable"; + nixlib.follows = "nixpkgs"; nixpkgs.follows = "unstable"; }; }; @@ -126,55 +125,20 @@ # Nix Index Database index = { url = "github:Mic92/nix-index-database"; - inputs.nixpkgs.follows = "stable"; + inputs.nixpkgs.follows = "nixpkgs"; }; # Base16 Theming stylix = { url = "github:danth/stylix?ref=release-24.11"; inputs = { - nixpkgs.follows = "stable"; + nixpkgs.follows = "nixpkgs"; systems.follows = "systems"; flake-utils.follows = "utils"; home-manager.follows = "home-manager"; }; }; - # Hyprland - hyprland = { - url = "github:hyprwm/Hyprland?ref=v0.47.1"; - inputs = { - nixpkgs.follows = "stable"; - systems.follows = "systems"; - }; - }; - - hyprland-plugins = { - url = "github:hyprwm/hyprland-plugins"; - inputs.hyprland.follows = "hyprland"; - }; - - hyprdark = { - url = "github:micha4w/Hypr-DarkWindow?ref=v0.47.1"; - inputs = { - hyprland.follows = "hyprland"; - nix-filter.follows = "filters"; - }; - }; - - hyprsplit = { - url = "github:shezdy/hyprsplit?ref=v0.47.1"; - inputs.hyprland.follows = "hyprland"; - }; - - hyprtasking = { - url = "github:raybbian/hyprtasking"; - inputs = { - hyprland.follows = "hyprland"; - systems.follows = "systems"; - }; - }; - # Declarative Flatpak Wrapper flatpak.url = "github:gmodena/nix-flatpak?ref=latest"; @@ -192,7 +156,7 @@ vscode = { url = "github:nix-community/nix-vscode-extensions"; inputs = { - nixpkgs.follows = "stable"; + nixpkgs.follows = "nixpkgs"; flake-utils.follows = "utils"; }; }; @@ -202,11 +166,40 @@ url = "github:emmanuelrosa/erosanix"; inputs.nixpkgs.follows = "unstable"; }; + + ## Hyprland + # Core + hyprland = { + url = "github:hyprwm/Hyprland?ref=v0.47.1"; + inputs = { + nixpkgs.follows = "nixpkgs"; + systems.follows = "systems"; + }; + }; + + # Plugins + hyprland-plugins = { + url = "github:hyprwm/hyprland-plugins?ref=v0.47.0"; + inputs.hyprland.follows = "hyprland"; + }; + + hyprdark = { + url = "github:micha4w/Hypr-DarkWindow?ref=v0.47.1"; + inputs = { + hyprland.follows = "hyprland"; + nix-filter.follows = "filters"; + }; + }; + + hyprsplit = { + url = "github:shezdy/hyprsplit?ref=v0.47.1"; + inputs.hyprland.follows = "hyprland"; + }; }; ## Configuration ## outputs = {self, ...} @ inputs: let - inherit (inputs.stable) lib; + inherit (inputs.nixpkgs) lib; map = import ./lib/map.nix lib; in inputs.framework.lib.mkFlake {inherit inputs;} { diff --git a/modules/configuration.nix b/modules/configuration.nix @@ -9,7 +9,6 @@ in name ? "nixos", description ? "", format ? null, - channel ? "stable", imports ? [], timezone, locale, @@ -25,10 +24,10 @@ in users ? null, }: let # Package Channel - pkgs = self.channels."${system}"."${channel}"; + pkgs = self.legacyPackages."${system}"; # Configuration Libraries - inherit (inputs."${channel}") lib; + inherit (inputs.nixpkgs) lib; inherit (lib) fileContents makeOverridable mkIf; inherit (builtins) @@ -142,7 +141,7 @@ in else true; # Version - stateVersion = fileContents "${inputs."${channel}"}/.version"; + stateVersion = fileContents "${inputs.nixpkgs}/.version"; configurationRevision = if (self ? rev) then "${substring 0 8 self.lastModifiedDate}.${self.shortRev}" diff --git a/modules/gui/desktop/hyprland/apps/panel.nix b/modules/gui/desktop/hyprland/apps/panel.nix @@ -4,9 +4,7 @@ pkgs, files, ... -}: let - theme = import ../theme.nix pkgs; -in { +}: { ## Panel Configuration user.homeConfig = rec { stylix.targets.waybar = { @@ -62,13 +60,12 @@ in { "custom/logo" "group/users" "hyprland/workspaces" - "hyprland/submap" - "hyprland/window" + "custom/minimize" ]; modules-center = [ - "wlr/taskbar" - "custom/minimize" + "hyprland/window" + "hyprland/submap" ]; modules-right = [ @@ -115,7 +112,6 @@ in { format = "<small>{name}</small>{icon}"; on-scroll-up = "hyprctl dispatch workspace m+1"; on-scroll-down = "hyprctl dispatch workspace m-1"; - persistent-workspaces."${config.gui.display}" = 3; ignore-workspaces = ["special:scratch_.*" "special:minimize"]; format-icons = { default = ""; @@ -132,6 +128,11 @@ in { }; }; + "custom/minimize" = { + format = ""; + on-click = "hyprutils toggle minimize"; + }; + "hyprland/submap" = { always-on = false; tooltip = false; @@ -140,44 +141,21 @@ in { }; "hyprland/window" = { - format = "{class}"; - max-length = 40; + format = ""; + icon = true; separate-outputs = true; }; - "wlr/taskbar" = { - format = "{icon}"; - icon-size = 20; - all-outputs = false; - active-first = false; - icon-theme = theme.icons.name; - markup = true; - tooltip-format = "Name: <big><b>{name}</b></big> <i>{short_state}</i>\nTitle: <b>{title}</b>"; - on-click = "activate"; - on-click-middle = "fullscreen"; - on-click-right = "close"; - ignore-list = ["ulauncher"]; - app_ids-mapping = { - kitty-clip = "diodon"; - kitty-dropterm = "yakuake"; - }; - }; - - "custom/minimize" = { - format = ""; - on-click = "hyprutils toggle minimize"; - }; - "group/menu" = { orientation = "horizontal"; - modules = ["custom/dropdown" "keyboard-state" "tray"]; + modules = ["custom/hide" "keyboard-state" "tray"]; drawer = { click-to-reveal = true; transition-left-to-right = true; }; }; - "custom/dropdown" = { + "custom/hide" = { format = ""; tooltip = false; }; @@ -203,7 +181,7 @@ in { tooltip-format = " {status}"; tooltip-format-connected = "{device_enumerate}"; tooltip-format-enumerate-connected = " {device_alias} 󰂄 {device_battery_percentage}%"; - on-click = "pypr show bluetooth"; + on-click = "overskride"; }; network = let @@ -218,7 +196,7 @@ in { tooltip-format-wifi = "Network: <big><b>{essid}</b></big>\n${tooltip}"; tooltip-format-ethernet = "Network: <big><b>Wired</b></big>\n${tooltip}"; tooltip-format-disconnected = "󰌙 Disconnected"; - on-click = "pypr show network"; + on-click = "sh -c 'env XDG_CURRENT_DESKTOP=GNOME gnome-control-center wifi'"; }; "group/media" = { @@ -238,7 +216,7 @@ in { tooltip-format = "Volume: {volume}%\nDevice: {node_name}"; format-muted = ""; format-icons = ["" "" "󰕾" ""]; - on-click = "pypr show volume"; + on-click = "pavucontrol"; }; mpris = { @@ -260,7 +238,7 @@ in { format-icons = ["" "" "" "" "" "" "" "" ""]; on-scroll-down = "brillo -u 300000 -A 5"; on-scroll-up = "brillo -u 300000 -U 5"; - on-click = "pypr show displays"; + on-click = "nwg-displays"; }; "group/power" = { diff --git a/modules/gui/desktop/hyprland/apps/settings.nix b/modules/gui/desktop/hyprland/apps/settings.nix @@ -10,6 +10,7 @@ inherit (lib) flatten; inherit (builtins) map toFile; inherit (util) build; + inherit (config.lib.stylix) colors; in { ## App Environment xdg.portal.extraPortals = [pkgs.xdg-desktop-portal-gtk]; @@ -45,7 +46,7 @@ in { "QT_WAYLAND_DISABLE_WINDOWDECORATION, 1" # Screengrab - "SLURP_ARGS, -dc ${config.lib.stylix.colors.base0D}" + "SLURP_ARGS, -dc ${colors.base0D}" ]; ## Autostart @@ -68,7 +69,7 @@ in { # Window Switcher "hyprswitch init --workspaces-per-row 3 --custom-css ${toFile "style.css" (build.theme { - inherit (config.lib.stylix) colors; + inherit colors; file = files.hyprland.hyprswitch; })} &" ]); @@ -90,12 +91,17 @@ in { "$mod, slash, exec, ulauncher-toggle" "$mod SHIFT, slash, exec, ${toggle "kebihelp"} show -a" "$mod SHIFT, C, exec, ${runOnce "hyprpicker"} -arf hex" - "$mod, D, exec, pypr toggle displays" + "$mod SHIFT, B, exec, ${runOnce "overskride"}" + "$mod, D, exec, ${runOnce "nwg-displays"}" + "$mod SHIFT, P, exec, pavucontrol" + "$mod SHIFT, N, exec, sh -c 'env XDG_CURRENT_DESKTOP=GNOME gnome-control-center wifi'" "$mod, Escape, exec, ${toggle "wlogout"} -p layer-shell" # Tools "$mod SHIFT, A, exec, hyprutils toggle service waybar" + "$mod SHIFT, D, exec, hyprutils toggle monitor ${config.gui.display}" "$mod, N, exec, dunstctl history-pop" + "$mod, S, exec, hyprutils toggle shader" "$mod SHIFT, T, exec, pypr toggle term" "$mod, V, exec, pypr show clip" @@ -114,19 +120,18 @@ in { ]; ## Window Rules - windowrulev2 = flatten ([ - "pin, class:^(gnome-control-center)$" - - # Clipboard Manager - "float, class:^(clipse)$" + windowrulev2 = flatten ( + [ + # Settings + "stayfocused, class:^(gnome-control-center)$" # Application Launcher - "opacity 0.9 override, class:^(ulauncher)$" + "stayfocused, class:^(ulauncher)$" + "opacity 0.8 override, class:^(ulauncher)$" "move cursor -50% -50%, class:^(ulauncher)$" # Keybinds Viewer "pin, title:^(Kebihelp)$" - "float, title:^(Kebihelp)$" "stayfocused, title:^(Kebihelp)$" "opacity 0.9 override, title:^(Kebihelp)" @@ -156,6 +161,18 @@ in { "gay.vaskel.Soteria" "gcr-prompter" ]) + ++ (map (class: [ + # Utilities + "float, class:^(${class})" + "pin, class:^(${class})" + #!# "persistentsize, class:^(${class})" + ]) [ + "io.github.kaii_lb.Overskride" + "nwg-displays" + "org.pulseaudio.pavucontrol" + "gnome-control-center" + "org.gnome.Settings" + ]) ++ (map (title: [ # Dialogs "float, title:^(${title})(.*)$" @@ -167,7 +184,8 @@ in { "Save File" "Select a File" ".*Properties" - ])); + ]) + ); }; }; } diff --git a/modules/gui/desktop/hyprland/apps/utilities.nix b/modules/gui/desktop/hyprland/apps/utilities.nix @@ -16,7 +16,7 @@ in { gnome-clocks gnome-disk-utility hyprpicker - custom.hyprswitch + unstable.hyprswitch nwg-displays nwg-drawer overskride diff --git a/modules/gui/desktop/hyprland/settings/default.nix b/modules/gui/desktop/hyprland/settings/default.nix @@ -86,7 +86,7 @@ in { }; misc = { - disable_autoreload = false; # Enable configuration Polling + disable_autoreload = true; # Disable configuration Polling enable_swallow = true; # Window Swallowing focus_on_activate = true; @@ -149,6 +149,7 @@ in { height = 7; scrolling = true; gradients = true; + #!# rounding = 10; "col.active" = mkForce active; "col.locked_active" = mkForce active; "col.inactive" = mkForce inactive; diff --git a/modules/gui/desktop/hyprland/settings/keybindings.nix b/modules/gui/desktop/hyprland/settings/keybindings.nix @@ -1,4 +1,4 @@ -{sys, ...}: { +_: { ## Compositor Binds ## wayland.windowManager.hyprland = { ## Keybindings @@ -10,11 +10,13 @@ "ALT, F4, killactive," "$mod, Q, killactive," "$mod SHIFT, Q, forcekillactive," - "$mod, P, pin" - "$mod, E, fullscreen, 1" "$mod SHIFT, E, fullscreen," + "$mod, C, centerwindow" + "$mod, C, movecursortocorner, 2" + "$mod, E, fullscreen, 1" + "$mod, P, pin" "$mod, Space, togglesplit" - "$mod SHIFT, D, exec, hyprutils toggle monitor ${sys.gui.display}" + #!# "$mod SHIFT, S, toggleswallow" # Window Focus "$mod, left, movefocus, l" @@ -38,15 +40,12 @@ # Floating Mode "$mod, semicolon, togglefloating," "$mod, apostrophe, exec, hyprutils toggle float" - "$mod, C, centerwindow" - - # Window Minimization - "ALT, Q, movetoworkspacesilent, special:minimize" - "ALT SHIFT, Q, exec, hyprutils toggle minimize" # Cycle Workspaces "$mod, comma, split:workspace, m-1" "$mod, period, split:workspace, m+1" + "$mod CTRL, comma, split:workspace, -1" + "$mod CTRL, period, split:workspace, +1" # Special Workspace "$mod, 0, togglespecialworkspace, Stash" @@ -67,6 +66,10 @@ # Screen Lock "$mod, L, exec, loginctl lock-session" + # Window Minimization + "ALT, Q, movetoworkspacesilent, special:minimize" + "ALT SHIFT, Q, exec, hyprutils toggle minimize" + # Screenshot '', Print, exec, sh -c "pgrep slurp || grimblast --notify --freeze copysave area"'' "CTRL, Print, exec, grimblast --notify --cursor copysave active" @@ -160,6 +163,8 @@ bind = SHIFT, right, moveactive, 30 0 bind = SHIFT, up, moveactive, 0 -30 bind = SHIFT, down, moveactive, 0 30 + bind = , comma, split:movetoworkspace, r-1 + bind = , period, split:movetoworkspace, r+1 bind = , escape, submap, reset bind = $mod, M, submap, reset submap = reset diff --git a/modules/gui/desktop/hyprland/settings/plugins.nix b/modules/gui/desktop/hyprland/settings/plugins.nix @@ -33,9 +33,8 @@ # Overview "$mod, grave, hyprexpo:expo, toggle" - # Compositor Shaders - "$mod, S, exec, hyprutils toggle shader" - "$mod SHIFT, S, invertactivewindow" + # Color Inversion + "$mod, I, invertactivewindow" ]; }; }; diff --git a/packages/README.md b/packages/README.md @@ -15,4 +15,4 @@ Then Nix will fail the build with an `error` message and give the correct hash ### Patches -The default package channel (`stable`) can be patched by simply dropping a valid `.patch` file into the `patches` directory +The `nixpkgs` package channel can be patched by simply dropping a valid `.patch` file into the `patches` directory diff --git a/packages/default.nix b/packages/default.nix @@ -1,2 +1,2 @@ -# Default Package Channel +# Package Channel with builtins; (getFlake "git+file://${toString ../.}").legacyPackages."${currentSystem}" diff --git a/packages/flake.nix b/packages/flake.nix @@ -1,5 +1,4 @@ { - lib, util, inputs, ... @@ -7,7 +6,7 @@ inherit (util) map; inherit (builtins) any attrValues isPath; in { - ## Package Configuration ## + ## Packages Configuration ## perSystem = { self', system, @@ -17,66 +16,48 @@ in { ... }: rec { - # Default Package Channel + # Package Channel _module.args.pkgs = legacyPackages; - legacyPackages = channels.stable; - - # Package Channels - channels = with inputs; let - # Repository Configuration + legacyPackages = with inputs; let + # Channel Configuration + src = nixpkgs; config = import ../modules/nix/config.nix; - # Package Overrides - overlays = - (attrValues self.overlays or {}) - ++ [ - vsppuccin.overlays.default - (_: _: { - custom = self.packages."${system}"; - - code = vscode.extensions."${system}"; - gaming = gaming.packages."${system}"; - wine = windows.packages."${system}"; - hyprworld = - hyprland.packages."${system}" - // hyprland-plugins.packages."${system}" - // hyprdark.packages."${system}" - // hyprsplit.packages."${system}" - // hyprtasking.packages."${system}" - // {inherit (hyprland.inputs.nixpkgs.legacyPackages."${system}") mesa;}; + # Channel Patches + patches = map.patches ./patches; + pkgs' = import src {inherit system;}; + in + ( + if !(any isPath patches) + then import src + else + import (pkgs'.applyPatches { + inherit src patches; + name = "nixpkgs-patched-${src.shortRev}"; }) - ]; - in { - stable = let - src = stable; - patches = map.patches ./patches; - pkgs' = import src {inherit system;}; - in - ( - if !(any isPath patches) - then import src - else - import (pkgs'.applyPatches { - inherit src patches; - name = "nixpkgs-patched-${src.shortRev}"; - }) - ) { - inherit system config; - overlays = overlays ++ [(_: _: {inherit (channels) unstable;})]; - }; - - unstable = import unstable { + ) { inherit system config; + + # Package Overrides overlays = - overlays + (attrValues self.overlays or {}) ++ [ - (pkg: _: { - inherit (channels) stable; - unstable = pkg; + vsppuccin.overlays.default + (_: _: { + custom = self.packages."${system}"; + + code = vscode.extensions."${system}"; + gaming = gaming.packages."${system}"; + wine = windows.packages."${system}"; + hyprworld = + hyprland.packages."${system}" + // hyprland-plugins.packages."${system}" + // hyprdark.packages."${system}" + // hyprsplit.packages."${system}"; }) - ]; + ] + ++ [(_: _: {unstable = import unstable {inherit system config;};})]; }; - }; } // (let # Package Calling Function @@ -100,21 +81,6 @@ in { // inputs'.proprietary.packages; }); - # Channel Module - imports = [ - (_: - with lib; - inputs.framework.lib.mkTransposedPerSystemModule { - name = "channels"; - option = mkOption { - type = with types; attrsOf (lazyAttrsOf raw); - default = {nixpkgs = import inputs.nixpkgs {};}; - description = "Set of Package Channels"; - }; - file = ./flake.nix; - }) - ]; - # Package Overrides flake.overlays = map.modules ./overlays import; } diff --git a/packages/hyprswitch/default.nix b/packages/hyprswitch/default.nix @@ -1,35 +0,0 @@ -{ - lib, - pkgs, - ... -}: -with pkgs; let - metadata = import ./metadata.nix; -in - rustPlatform.buildRustPackage rec { - pname = "hyprswitch"; - version = metadata.rev; - - src = fetchFromGitHub { - owner = "H3rmt"; - repo = pname; - inherit (metadata) rev sha256; - }; - - useFetchCargoVendor = true; - inherit (metadata) cargoHash; - buildInputs = [gtk4-layer-shell]; - nativeBuildInputs = [ - wrapGAppsHook4 - pkg-config - ]; - - meta = with lib; { - mainProgram = "hyprswitch"; - description = "CLI/GUI that allows switching between windows in Hyprland"; - homepage = metadata.repo; - license = licenses.mit; - platforms = platforms.linux; - maintainers = ["maydayv7"]; - }; - } diff --git a/packages/hyprswitch/metadata.nix b/packages/hyprswitch/metadata.nix @@ -1,7 +0,0 @@ -{ - repo = "https://github.com/H3rmt/hyprswitch"; - release = true; - rev = "v3.3.2"; - sha256 = "sha256-cmo544QvdacVTHPqmc6er4xnSSc63e6Z71BS0FxSklE="; - cargoHash = "sha256-DEifup2oAcqZplx2JoN3hkP1VmxwYVFS8ZqfpR80baA="; -}