feat(hyprland): added input options for reduced repeat_delay and increased repeat_speed

This commit is contained in:
Zhongheng Liu 2024-08-09 18:26:26 +08:00
commit 6d14dac991
No known key found for this signature in database
16 changed files with 300 additions and 259 deletions

View file

@ -45,6 +45,7 @@
home = { home = {
username = "${config.myUserName}"; username = "${config.myUserName}";
homeDirectory = "/home/${config.myUserName}"; homeDirectory = "/home/${config.myUserName}";
# copy wallpaper from assets
file = { file = {
"wallpaper.png".source = ./assets/gruvbox-wallpaper.png; "wallpaper.png".source = ./assets/gruvbox-wallpaper.png;
}; };
@ -53,6 +54,7 @@
home.packages = with pkgs; [ home.packages = with pkgs; [
protonvpn-gui protonvpn-gui
devenv devenv
vlc
]; ];
programs.git = { programs.git = {
enable = true; enable = true;

View file

@ -1,5 +1,9 @@
{pkgs, config, lib, ...}:
{ {
pkgs,
config,
lib,
...
}: {
imports = [ imports = [
./hyprland.nix ./hyprland.nix
./hyprpaper.nix ./hyprpaper.nix

View file

@ -1,8 +1,6 @@
{pkgs, ...}: {pkgs, ...}: let
let
timeoutSeconds = 60; timeoutSeconds = 60;
in in {
{
services.hypridle = { services.hypridle = {
enable = true; enable = true;
settings = { settings = {

View file

@ -1,37 +1,48 @@
{config, pkgs, ... }:
{ {
config,
pkgs,
...
}: {
home.packages = with pkgs; [ home.packages = with pkgs; [
foot foot
]; ];
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
# Whether to enable Hyprland wayland compositor # Whether to enable Hyprland wayland compositor
enable = true; enable = true;
# The hyprland package to use # The hyprland package to use
package = pkgs.hyprland; package = pkgs.hyprland;
plugins = with pkgs.hyprlandPlugins; [ plugins = with pkgs.hyprlandPlugins; [
hyprbars hyprbars
hyprfocus hyprfocus
csgo-vulkan-fix csgo-vulkan-fix
]; ];
# Whether to enable XWayland # Whether to enable XWayland
xwayland.enable = true; xwayland.enable = true;
settings = { settings = {
input = {
# xset rate 250 50 replacement on wayland...
# FAST MODE LET'S GOOO
repeat_rate = 50;
repeat_delay = 250;
};
misc = { misc = {
disable_hyprland_logo = true; disable_hyprland_logo = true;
disable_splash_rendering = true; disable_splash_rendering = true;
font_family = "monospace"; font_family = "monospace";
}; };
"$mod" = "SUPER"; "$mod" = "SUPER";
bind = [ bind =
[
"$mod, Q, killactive" "$mod, Q, killactive"
"$mod, D, exec, ${pkgs.fuzzel}/bin/fuzzel" "$mod, D, exec, ${pkgs.fuzzel}/bin/fuzzel"
# firefox quickstart # firefox quickstart
"$mod, F, exec, ${pkgs.firefox}/bin/firefox" "$mod, F, exec, ${pkgs.firefox}/bin/firefox"
# foot terminal # foot terminal
"$mod, Return, exec, ${pkgs.foot}/bin/foot -f 'BlexMono Nerd Font:size=16' zsh" "$mod, Return, exec, ${pkgs.foot}/bin/foot -f 'BlexMono Nerd Font:size=16' zsh"
] ++ ( ]
# workspaces ++ (
# binds $mod + [shift +] {1..10} to [move to] workspace {1..10} # workspaces
# binds $mod + [shift +] {1..10} to [move to] workspace {1..10}
builtins.concatLists (builtins.genList ( builtins.concatLists (builtins.genList (
x: let x: let
ws = let ws = let
@ -46,15 +57,15 @@
10) 10)
); );
bindm = [ bindm = [
# mouse movements # mouse movements
"$mod, mouse:272, movewindow" "$mod, mouse:272, movewindow"
"$mod, mouse:273, resizewindow" "$mod, mouse:273, resizewindow"
"$mod ALT, mouse:272, resizewindow" "$mod ALT, mouse:272, resizewindow"
]; ];
}; };
# Optional # Optional
# Whether to enable hyprland-session.target on hyprland startup # Whether to enable hyprland-session.target on hyprland startup
systemd.enable = true; systemd.enable = true;
}; };
# ... # ...
} }

View file

@ -1,5 +1,9 @@
{pkgs, config, lib, ...}:
{ {
pkgs,
config,
lib,
...
}: {
programs.hyprlock = { programs.hyprlock = {
enable = true; enable = true;
settings = { settings = {
@ -33,7 +37,6 @@
shadow_passes = 2; shadow_passes = 2;
} }
]; ];
}; };
}; };
} }

View file

@ -1,12 +1,15 @@
{pkgs, config, ...}:
{ {
pkgs,
config,
...
}: {
services.hyprpaper = { services.hyprpaper = {
enable = true; enable = true;
settings = { settings = {
ipc = "on"; ipc = "on";
splash = false; splash = false;
preload = [ config.myWallPaperPathString ]; preload = [config.myWallPaperPathString];
wallpaper = [ ",${config.myWallPaperPathString}" ]; wallpaper = [",${config.myWallPaperPathString}"];
}; };
}; };
} }

View file

@ -1,5 +1,8 @@
{pkgs, lib, ...}:
{ {
pkgs,
lib,
...
}: {
wayland.windowManager.sway = { wayland.windowManager.sway = {
enable = true; enable = true;
config = rec { config = rec {

View file

@ -1,10 +1,15 @@
{pkgs, config, lib, ...}:
{ {
options = with lib; with types; { pkgs,
myWallPaperPathString = mkOption { type = str; }; config,
myUserName = mkOption { type = str; }; lib,
myDisplayName = mkOption { type = str; }; ...
myEmail = mkOption { type = str; }; }: {
options = with lib;
with types; {
myWallPaperPathString = mkOption {type = str;};
myUserName = mkOption {type = str;};
myDisplayName = mkOption {type = str;};
myEmail = mkOption {type = str;};
}; };
config = rec { config = rec {
myUserName = "stvnliu"; myUserName = "stvnliu";

View file

@ -15,7 +15,7 @@
./services/laptop.preset.nix ./services/laptop.preset.nix
./hardware-configuration.nix ./hardware-configuration.nix
]; ];
boot.supportedFilesystems = ["ntfs"];
security.pam.services.hyprlock = {}; security.pam.services.hyprlock = {};
hardware.bluetooth = { hardware.bluetooth = {
enable = true; enable = true;

View file

@ -1,4 +1,9 @@
{pkgs, config, lib, ...}: { {
pkgs,
config,
lib,
...
}: {
services.greetd = { services.greetd = {
enable = true; enable = true;
settings = { settings = {

View file

@ -1,30 +1,34 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
imports = config,
[ (modulesPath + "/installer/scan/not-detected.nix") lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "usb_storage" "usbhid" "sd_mod" ]; boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "usb_storage" "usbhid" "sd_mod"];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = ["kvm-amd"];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-uuid/f9ff609f-6e72-43cf-917c-3bd3fde6c410"; device = "/dev/disk/by-uuid/f9ff609f-6e72-43cf-917c-3bd3fde6c410";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-uuid/2E4F-3060"; device = "/dev/disk/by-uuid/2E4F-3060";
fsType = "vfat"; fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ]; options = ["fmask=0022" "dmask=0022"];
}; };
swapDevices = [ ]; swapDevices = [];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's # (the default) this is the recommended approach. When using systemd-networkd it's

View file

@ -15,7 +15,7 @@
}; };
}; };
hardware.graphics.enable = true; hardware.graphics.enable = true;
services.xserver.videoDrivers = [ "nvidia" ]; services.xserver.videoDrivers = ["nvidia"];
hardware.nvidia = { hardware.nvidia = {
prime = { prime = {
offload.enable = false; offload.enable = false;

View file

@ -1,5 +1,4 @@
{...}: {...}: {
{
imports = [ imports = [
./nginx.service.nix ./nginx.service.nix
./pipewire.service.nix ./pipewire.service.nix

View file

@ -1,10 +1,14 @@
{config, pkgs, lib, ...}:
{ {
config,
pkgs,
lib,
...
}: {
# Type definitions for nix variables used in this configuration # Type definitions for nix variables used in this configuration
options = with lib; with types; { options = with lib;
myUserName = mkOption { type = str; }; with types; {
myHostName = mkOption { type = str; }; myUserName = mkOption {type = str;};
myHostName = mkOption {type = str;};
}; };
# Default values for this configuration # Default values for this configuration