From f240b64f25ff5418eb39151fa3de795b002848c4 Mon Sep 17 00:00:00 2001 From: Frankie B Date: Wed, 9 Aug 2023 14:49:06 +0100 Subject: [PATCH] hyprland-ification --- flake.lock | 125 ++++++++++++++++++++++++++++++--- flake.nix | 6 ++ hosts/nixbox/configuration.nix | 48 +++++++++++-- 3 files changed, 164 insertions(+), 15 deletions(-) diff --git a/flake.lock b/flake.lock index ae54df8..0365097 100644 --- a/flake.lock +++ b/flake.lock @@ -589,6 +589,48 @@ "type": "github" } }, + "hyprland": { + "inputs": { + "hyprland-protocols": "hyprland-protocols", + "nixpkgs": "nixpkgs", + "wlroots": "wlroots", + "xdph": "xdph" + }, + "locked": { + "lastModified": 1691520628, + "narHash": "sha256-C2AQ8WJ3sDuaVULYPQJRuJ4XAC/uWNGQ0bhtA7FFOlw=", + "owner": "hyprwm", + "repo": "Hyprland", + "rev": "ec269622fcd1fd06d2db19d98593ffab8ff041cb", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "Hyprland", + "type": "github" + } + }, + "hyprland-protocols": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1684265364, + "narHash": "sha256-AxNnWbthsuNx73HDQr0eBxrcE3+yfl/WsaXZqUFmkpQ=", + "owner": "hyprwm", + "repo": "hyprland-protocols", + "rev": "8c279b9fb0f2b031427dc5ef4eab53f2ed835530", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-protocols", + "type": "github" + } + }, "icon-picker-nvim": { "flake": false, "locked": { @@ -946,15 +988,15 @@ }, "nixpkgs": { "locked": { - "lastModified": 1656753965, - "narHash": "sha256-BCrB3l0qpJokOnIVc3g2lHiGhnjUi0MoXiw6t1o8H1E=", - "owner": "nixos", + "lastModified": 1690179384, + "narHash": "sha256-+arbgqFTAtoeKtepW9wCnA0njCOyoiDFyl0Q0SBSOtE=", + "owner": "NixOS", "repo": "nixpkgs", - "rev": "0ea7a8f1b939d74e5df8af9a8f7342097cdf69eb", + "rev": "b12803b6d90e2e583429bb79b859ca53c348b39a", "type": "github" }, "original": { - "owner": "nixos", + "owner": "NixOS", "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" @@ -995,6 +1037,22 @@ } }, "nixpkgs_2": { + "locked": { + "lastModified": 1656753965, + "narHash": "sha256-BCrB3l0qpJokOnIVc3g2lHiGhnjUi0MoXiw6t1o8H1E=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "0ea7a8f1b939d74e5df8af9a8f7342097cdf69eb", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { "locked": { "lastModified": 1655400192, "narHash": "sha256-49OBVVRgb9H/PSmNT9W61+NRdDbuSJVuDDflwXlaUKU=", @@ -1010,7 +1068,7 @@ "type": "github" } }, - "nixpkgs_3": { + "nixpkgs_4": { "locked": { "lastModified": 1689088367, "narHash": "sha256-Y2tl2TlKCWEHrOeM9ivjCLlRAKH3qoPUE/emhZECU14=", @@ -1026,7 +1084,7 @@ "type": "github" } }, - "nixpkgs_4": { + "nixpkgs_5": { "locked": { "lastModified": 1691368598, "narHash": "sha256-ia7li22keBBbj02tEdqjVeLtc7ZlSBuhUk+7XTUFr14=", @@ -1557,7 +1615,7 @@ "rnix-lsp": { "inputs": { "naersk": "naersk", - "nixpkgs": "nixpkgs", + "nixpkgs": "nixpkgs_2", "utils": "utils" }, "locked": { @@ -1578,8 +1636,9 @@ "inputs": { "arrpc": "arrpc", "home-manager": "home-manager", + "hyprland": "hyprland", "neovim-flake": "neovim-flake", - "nixpkgs": "nixpkgs_4", + "nixpkgs": "nixpkgs_5", "nixpkgs-master": "nixpkgs-master" } }, @@ -1758,7 +1817,7 @@ "tidalcycles": { "inputs": { "dirt-samples-src": "dirt-samples-src", - "nixpkgs": "nixpkgs_2", + "nixpkgs": "nixpkgs_3", "superdirt-src": "superdirt-src", "tidal-src": "tidal-src", "utils": "utils_2", @@ -2003,11 +2062,55 @@ "type": "github" } }, + "wlroots": { + "flake": false, + "locked": { + "host": "gitlab.freedesktop.org", + "lastModified": 1691073628, + "narHash": "sha256-LlxE3o3UzRY7APYVLGNKM30DBMcDifCRIQiMVSbYLIc=", + "owner": "wlroots", + "repo": "wlroots", + "rev": "c74f89d4f84bfed0284d3908aee5d207698c70c5", + "type": "gitlab" + }, + "original": { + "host": "gitlab.freedesktop.org", + "owner": "wlroots", + "repo": "wlroots", + "rev": "c74f89d4f84bfed0284d3908aee5d207698c70c5", + "type": "gitlab" + } + }, + "xdph": { + "inputs": { + "hyprland-protocols": [ + "hyprland", + "hyprland-protocols" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1691082525, + "narHash": "sha256-C5AO0KnyAFJaCkOn+5nJfWm0kyiPn/Awh0lKTjhgr7Y=", + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "rev": "42747d267ab4345c4ceb78cd4a4fe99f072d80fc", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "type": "github" + } + }, "zig": { "inputs": { "flake-compat": "flake-compat", "flake-utils": "flake-utils_2", - "nixpkgs": "nixpkgs_3" + "nixpkgs": "nixpkgs_4" }, "locked": { "lastModified": 1690718829, diff --git a/flake.nix b/flake.nix index 6f780ab..d96d4d8 100644 --- a/flake.nix +++ b/flake.nix @@ -23,12 +23,16 @@ url = "github:notashelf/arrpc-flake"; inputs.nixpkgs.follows = "nixpkgs"; }; + + # hyprland + hyprland.url = "github:hyprwm/Hyprland"; }; outputs = { self, nixpkgs, home-manager, + hyprland, ... } @ inputs: let inherit (self) outputs; @@ -78,6 +82,8 @@ pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance extraSpecialArgs = {inherit inputs outputs;}; modules = [ + hyprland.homeManagerModules.default + {wayland.windowManager.hyprland.enable = true;} # > Our main home-manager configuration file < ./homes/floppydisk ]; diff --git a/hosts/nixbox/configuration.nix b/hosts/nixbox/configuration.nix index b7c7c78..d42492b 100644 --- a/hosts/nixbox/configuration.nix +++ b/hosts/nixbox/configuration.nix @@ -59,6 +59,13 @@ # Enable the KDE Plasma Desktop Environment. services.xserver.desktopManager.plasma5.enable = true; + # Enable hyprland + programs.hyprland = { + enable = true; + nvidiaPatches = true; + xwayland.enable = true; + }; + # Configure keymap in X11 services.xserver = { layout = "us"; @@ -77,16 +84,25 @@ alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; - # If you want to use JACK applications, uncomment this - #jack.enable = true; + jack.enable = true; # use the example session manager (no others are packaged yet so this is enabled by default, # no need to redefine it in your config for now) #media-session.enable = true; }; - services.xserver.videoDrivers = ["nvidia" "intel"]; - hardware.opengl.driSupport32Bit = true; + services.xserver.videoDrivers = ["nvidia"]; + hardware = { + opengl = { + enable = true; + driSupport = true; + driSupport32Bit = true; + }; + nvidia = { + modesetting.enable = true; + nvidiaSettings = true; + }; + }; # Enable touchpad support (enabled default in most desktopManager). # services.xserver.libinput.enable = true; @@ -131,12 +147,36 @@ screen pavucontrol paprefs + gcc # Fonts nerdfonts jetbrains-mono + + # other shit + dunst + libnotify + swww + rofi-wayland + networkmanagerapplet + grim + slurp + wl-clipboard + font-awesome + (waybar.overrideAttrs (oldAttrs: { + mesonFlags = oldAttrs.mesonFlags ++ [ "-Dexperimental=true" ]; + }) + ) ]; + environment.sessionVariables = { + WLR_NO_HARDWARE_CURSORS = "1"; + NIXOS_OZONE_WL = "1"; + }; + + xdg.portal.enable = true; + xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; + programs.zsh.enable = true; # Some programs need SUID wrappers, can be configured further or are