From 047d91b6aa6821eb793a68fe41d73704d6794e34 Mon Sep 17 00:00:00 2001 From: Mihai Fufezan Date: Sat, 13 Aug 2022 20:06:18 +0300 Subject: [PATCH] IPC, Nix, Nvidia fixes --- pages/IPC/_index.md | 20 ++++++++++---------- pages/Nix/_index.md | 39 ++++++++++++++++++++++++--------------- pages/Nvidia/_index.md | 15 ++++++++------- 3 files changed, 42 insertions(+), 32 deletions(-) diff --git a/pages/IPC/_index.md b/pages/IPC/_index.md index a8a3f83..3cdefad 100644 --- a/pages/IPC/_index.md +++ b/pages/IPC/_index.md @@ -3,14 +3,14 @@ via code / bash utilities. ## Hyprland Instance Signature (HIS) -``` +```sh echo $HYPRLAND_INSTANCE_SIGNATURE ``` # /tmp/hypr/\[HIS\]/.socket.sock Used for hyprctl-like requests. See the -[Hyprctl page](https://github.com/hyprwm/Hyprland/wiki/Using-hyprctl) for +[Hyprctl page](../Configuring/Using-hyprctl) for commands. basically, write `command args`. @@ -31,19 +31,19 @@ e.g.: `workspace>>2` emitted on workspace change. Is emitted ONLY when a user requests a workspace change, and is not emitted on mouse movements (see `activemon`) -Data: WORKSPACENAME +Data: `WORKSPACENAME` ### focusedmon emitted on the active monitor being changed. -Data: MONNAME,WORKSPACENAME +Data: `MONNAME,WORKSPACENAME` ### activewindow emitted on the active window being changed. -Data: WINDOWCLASS,WINDOWTITLE +Data: `WINDOWCLASS,WINDOWTITLE` ### fullscreen @@ -53,31 +53,31 @@ Warning: a fullscreen event is not guaranteed to fire on/off once in succession. A window might do for example 3 requests to be fullscreen'd, which would result in 3 fullscreen events. -Data: 0/1 (exit fullscreen / enter fullscreen) +Data: `0/1` (exit fullscreen / enter fullscreen) ### monitorremoved emitted when a monitor is removed (disconnected) -Data: MONITORNAME +Data: `MONITORNAME` ### monitoradded emitted when a monitor is added (connected) -Data: MONITORNAME +Data: `MONITORNAME` ### createworkspace and destroyworkspace emitted when a workspace is created or removed -Data: WORKSPANCENAME +Data: `WORKSPANCENAME` ## How to use socket2 with bash example script using socket2 events with bash and `socat`: -``` +```sh #!/bin/sh function handle { diff --git a/pages/Nix/_index.md b/pages/Nix/_index.md index e4e9582..c161c12 100644 --- a/pages/Nix/_index.md +++ b/pages/Nix/_index.md @@ -1,7 +1,11 @@ -**NOTE:** Hyprland is NOT supported on NixOS stable. It may (not) compile or -work as intended. Please use the flake. +## Table of contents +{{< toc format=html >}} -## Install and configure Hyprland on Nix & NixOS +**NOTE:** Hyprland is NOT supported on NixOS stable. It may (not) compile or +work as intended. Please use the +[flake](https://github.com/hyprwm/Hyprland/blob/main/flake.nix). + +## Install and configure Hyprland on NixOS Make sure to check out the options of the [Nix module](https://github.com/hyprwm/Hyprland/blob/main/nix/module.nix). @@ -36,8 +40,10 @@ Don't forget to replace `HOSTNAME` with your hostname! ### Without flakes -**NOTE:** If you're using Hyprland through an overlay, set +{{< hint >}} +If you're using Hyprland through an overlay, set `programs.hyprland.package = pkgs.hyprland;`. +{{< /hint >}} ```nix # configuration.nix @@ -50,17 +56,15 @@ in { imports = [ hyprland.nixosModules.default ]; - - nixpkgs.overlays = [ hyprland.overlays.default ]; - + programs.hyprland = { enable = true; - package = pkgs.hyprland; + package = hyprland.packages.${pkgs.system}.default; }; } ``` -## Home Manager module +## Install and configure through Home Manager You can use the Home Manager module by adding it to your configuration: @@ -80,22 +84,27 @@ For a list of available options, check the ## Modules mix'n'match -If you plan on using the HM module alongside the NixOS module, set the NixOS +- If you plan on using the HM module alongside the NixOS module, set the NixOS `programs.hyprland.package = null;`. -If you don't plan on using the NixOS module, but want to use the HM module, you +- If you don't plan on using the NixOS module, but want to use the HM module, you will have to enable all the options the NixOS module enables. -If you don't plan on using any module, manually enable whatever options the +- If you don't plan on using any module, manually enable whatever options the modules set. +## Non-NixOS install + +If you plan on using Hyprland through Nix, outside of NixOS, please use +[nixGL](https://github.com/guibou/nixGL). + ## Cachix -A [Hyprland Cachix](https://app.cachix.org/cache/nix-gaming) exists to cache the +A [Hyprland Cachix](https://app.cachix.org/cache/hyprland) exists to cache the `wlroots` package and speed up builds. -In case you don't plan on changing the Nixpkgs Hyprland builds with, you can use -this cache to speed up your builds. +In case you don't plan on changing the Nixpkgs input of Hyprland, you can use +this cache to download the binary directly, instead of building locally. ```nix # configuration.nix diff --git a/pages/Nvidia/_index.md b/pages/Nvidia/_index.md index 695bd4d..ffc3ba2 100644 --- a/pages/Nvidia/_index.md +++ b/pages/Nvidia/_index.md @@ -10,15 +10,16 @@ Nevertheless, it's recommended to at least try this tutorial. ## How to get Hyprland to possibly work on Nvidia -Install the `nvidia-dkms` driver and add it to your initram & kernel parameters, -follow the information available here: +Install the `nvidia-dkms` driver and add it to your initramfs & kernel +parameters. Follow the information available here: [https://wiki.archlinux.org/title/NVIDIA#DRM_kernel_mode_setting](https://wiki.archlinux.org/title/NVIDIA#DRM_kernel_mode_setting) -_\* Note_: If your GPU is listed as supported by the `nvidia-open-dkms` driver, -go with that one instead. +{{< hint >}}If your GPU is listed as supported by the `nvidia-open-dkms` driver, +use that one instead. +{{< /hint >}} -Following the wrapping instructions found at -[The Quick Start Page](https://github.com/hyprwm/Hyprland/wiki/Quick-start#wrapping-the-launcher-recommended), +Following the wrapping instructions found on +[the Quick Start page](../Getting-Started/Quick-start#wrapping-the-launcher-recommended), wrap the launcher and additionally export these: ```sh @@ -55,7 +56,7 @@ in-fact do notice flickering artifacts from being idle for ~5 seconds. Make a new file at `/etc/modprobe.d/nvidia.conf` and paste this in: -``` +```sh options nvidia NVreg_RegistryDwords="PowerMizerEnable=0x1; PerfLevelSrc=0x2222; PowerMizerLevel=0x3; PowerMizerDefault=0x3; PowerMizerDefaultAC=0x3" ```