cleanup: nixfmt everything

This commit is contained in:
Noa Aarts 2024-10-28 11:04:52 +01:00
parent a784ba021f
commit a4c5e7aca8
Signed by: noa
GPG key ID: 1850932741EFF672
22 changed files with 317 additions and 224 deletions

View file

@ -1,4 +1,7 @@
{ lib, ... }: {
lib,
...
}:
{ {
boot.loader = { boot.loader = {
timeout = lib.mkDefault 0; timeout = lib.mkDefault 0;

View file

@ -1,18 +0,0 @@
{ config, pkgs, ... }: {
nixpkgs.overlays = [
(self: super: {
ccid = super.ccid.overrideAttrs (old: rec {
pname = "ccid";
version = "1.5.5";
src = super.fetchurl {
url = "https://ccid.apdu.fr/files/${pname}-${version}.tar.bz2";
hash = "sha256-GUcI91/jadRd18Feiz6Kfbi0nPxVV1dMoqLnbvEsoMo=";
};
postPatch = ''
patchShebangs .
substituteInPlace src/Makefile.in --replace-fail /bin/echo echo
'';
});
})
];
}

View file

@ -1,4 +1,9 @@
{ config, pkgs, nix-colors, ... }: {
config,
pkgs,
nix-colors,
...
}:
{ {
imports = [ imports = [

View file

@ -1,5 +1,7 @@
{ pkgs, ... }: {
pkgs,
...
}:
{ {
home.packages = with pkgs; [ home.packages = with pkgs; [
(symlinkJoin { (symlinkJoin {

View file

@ -1,4 +1,4 @@
{...}: { ... }:
{ {
# Select internationalisation properties. # Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8"; i18n.defaultLocale = "en_US.UTF-8";

View file

@ -1,5 +1,9 @@
{ config, pkgs, inputs, ... }: {
config,
pkgs,
inputs,
...
}:
{ {
services.spotifyd.enable = true; services.spotifyd.enable = true;
home.packages = with pkgs; [ home.packages = with pkgs; [

View file

@ -1,9 +1,15 @@
{ config, lib, ... }: { {
...
}:
{
nix = { nix = {
settings = { settings = {
# auto optimise every so often # auto optimise every so often
auto-optimise-store = true; auto-optimise-store = true;
experimental-features = [ "nix-command" "flakes" ]; experimental-features = [
"nix-command"
"flakes"
];
substituters = [ substituters = [
"https://cosmic.cachix.org/" "https://cosmic.cachix.org/"
"https://hyprland.cachix.org" "https://hyprland.cachix.org"
@ -20,7 +26,10 @@
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ=" "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ="
]; ];
system-features = [ "kvm" "big-parallel" ]; system-features = [
"kvm"
"big-parallel"
];
allowed-uris = [ allowed-uris = [
"github:" "github:"
"gitlab:" "gitlab:"

View file

@ -2,24 +2,28 @@
# your system.Help is available in the configuration.nix(5) man page # your system.Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help). # and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, inputs, nix-colors, lib, ... }:
{ {
imports = config,
[ pkgs,
# Include the results of the hardware scan. inputs,
./hardware-configuration.nix nix-colors,
../../modules/games/steam.nix lib,
../../modules/plasma ...
}:
{
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
../../modules/games/steam.nix
../../modules/plasma
../../common ../../common
./restic.nix
];
./restic.nix
];
age.identityPaths = [ "${config.users.users.noa.home}/.ssh/id_ed25519" ]; age.identityPaths = [ "${config.users.users.noa.home}/.ssh/id_ed25519" ];
hardware = { hardware = {
bluetooth = { bluetooth = {
enable = true; enable = true;
@ -47,7 +51,10 @@
sandbox = true; sandbox = true;
show-trace = true; show-trace = true;
system-features = [ "nixos-test" "recursive-nix" ]; system-features = [
"nixos-test"
"recursive-nix"
];
sandbox-paths = [ "/bin/sh=${pkgs.busybox-sandbox-shell.out}/bin/busybox" ]; sandbox-paths = [ "/bin/sh=${pkgs.busybox-sandbox-shell.out}/bin/busybox" ];
}; };
@ -69,7 +76,6 @@
# Set your time zone. # Set your time zone.
time.timeZone = "Europe/Amsterdam"; time.timeZone = "Europe/Amsterdam";
# Configure console keymap # Configure console keymap
console.keyMap = "us-acentos"; console.keyMap = "us-acentos";
@ -81,7 +87,13 @@
noa = { noa = {
isNormalUser = true; isNormalUser = true;
description = "Noa Aarts"; description = "Noa Aarts";
extraGroups = [ "networkmanager" "wheel" "docker" "wireshark" "dialout" ]; extraGroups = [
"networkmanager"
"wheel"
"docker"
"wireshark"
"dialout"
];
hashedPassword = "$6$rounds=512400$Zip3xoK2zcoR4qEL$N13YTHO5tpWfx2nKb1sye.ZPwfoRtMQ5f3YrMZqKzzoFoSSHHJ.l5ulCEa9HygFxZmBtPnwlseFEtl8ERnwF50"; hashedPassword = "$6$rounds=512400$Zip3xoK2zcoR4qEL$N13YTHO5tpWfx2nKb1sye.ZPwfoRtMQ5f3YrMZqKzzoFoSSHHJ.l5ulCEa9HygFxZmBtPnwlseFEtl8ERnwF50";
openssh.authorizedKeys.keys = (import ../../common/ssh-keys.nix); openssh.authorizedKeys.keys = (import ../../common/ssh-keys.nix);
}; };
@ -102,7 +114,6 @@
restic restic
]; ];
# TODO: find list of fonts to install # TODO: find list of fonts to install
fonts.packages = with pkgs; [ fonts.packages = with pkgs; [
font-awesome font-awesome
@ -150,7 +161,6 @@
security.rtkit.enable = true; security.rtkit.enable = true;
boot = rec { boot = rec {
kernelPackages = pkgs.linuxPackages_latest; kernelPackages = pkgs.linuxPackages_latest;
extraModulePackages = with kernelPackages; [ extraModulePackages = with kernelPackages; [
v4l2loopback v4l2loopback
@ -341,7 +351,6 @@
# Or disable the firewall altogether. # Or disable the firewall altogether.
# networking.firewall.enable = false; # networking.firewall.enable = false;
# This value determines the NixOS release from which the default # This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions # settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave # on your system were taken. Its perfectly fine and recommended to leave

View file

@ -1,36 +1,45 @@
# 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, ... }: {
config,
lib,
pkgs,
modulesPath,
...
}:
{ {
imports = imports = [
[ (modulesPath + "/installer/scan/not-detected.nix")
(modulesPath + "/installer/scan/not-detected.nix") ];
];
boot.initrd.availableKernelModules = [ "nvme" "ahci" "xhci_pci" "usbhid" "usb_storage" "sd_mod" ]; boot.initrd.availableKernelModules = [
"nvme"
"ahci"
"xhci_pci"
"usbhid"
"usb_storage"
"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/263716dd-52cb-4a91-ba0b-e39e492ed0e5";
device = "/dev/disk/by-uuid/263716dd-52cb-4a91-ba0b-e39e492ed0e5"; fsType = "ext4";
fsType = "ext4"; };
};
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-uuid/B08E-916D";
device = "/dev/disk/by-uuid/B08E-916D"; fsType = "vfat";
fsType = "vfat"; };
};
fileSystems."/home/noa/Pictures/library" = fileSystems."/home/noa/Pictures/library" = {
{ device = "/dev/disk/by-uuid/93a74173-8719-4be2-86b3-dc80588b9cf8";
device = "/dev/disk/by-uuid/93a74173-8719-4be2-86b3-dc80588b9cf8"; fsType = "ext4";
fsType = "ext4"; };
};
swapDevices = [ ]; swapDevices = [ ];

View file

@ -1,15 +1,20 @@
{ config, pkgs, inputs, lib, ... }: {
config,
pkgs,
inputs,
lib,
...
}:
{ {
imports = imports = [
[ ../../modules/hyprland.nix
../../modules/hyprland.nix ../../modules/games
../../modules/games ../../modules/applications
../../modules/applications ../../common/nvim/nvim.nix
../../common/nvim/nvim.nix ../../common/discord/discord.nix
../../common/discord/discord.nix ../../common/spotify.nix
../../common/spotify.nix ];
];
# Home Manager needs a bit of information about you and the paths it should # Home Manager needs a bit of information about you and the paths it should
# manage. # manage.
home.username = "noa"; home.username = "noa";
@ -93,13 +98,12 @@
yubikey-manager-qt yubikey-manager-qt
yubico-piv-tool yubico-piv-tool
libreoffice-qt6 libreoffice-qt6
inputs.flurry.packages.${system}.flurry inputs.flurry.packages.${system}.flurry
inputs.tsunami.packages.${system}.tsunami inputs.tsunami.packages.${system}.tsunami
]; ];
# Home Manager is pretty good at managing dotfiles. The primary way to manage # Home Manager is pretty good at managing dotfiles. The primary way to manage
# plain files is through 'home.file'. # plain files is through 'home.file'.
home.file = { home.file = {
@ -132,7 +136,6 @@
# /etc/profiles/per-user/noa/etc/profile.d/hm-session-vars.sh # /etc/profiles/per-user/noa/etc/profile.d/hm-session-vars.sh
# #
home.sessionVariables = { home.sessionVariables = {
EDITOR = "nvim"; EDITOR = "nvim";
TERM = "kitty"; TERM = "kitty";
@ -153,8 +156,6 @@
}; };
}; };
dconf = { dconf = {
enable = true; enable = true;
settings = { settings = {
@ -198,14 +199,15 @@
x11.enable = true; x11.enable = true;
name = name; name = name;
size = 32; size = 32;
package = package = pkgs.runCommand "moveUp" { } ''
pkgs.runCommand "moveUp" { } '' mkdir -p $out/share/icons
mkdir -p $out/share/icons ln -s ${
ln -s ${pkgs.fetchzip { pkgs.fetchzip {
url = url; url = url;
hash = hash; hash = hash;
}} $out/share/icons/${name} }
''; } $out/share/icons/${name}
'';
}; };
in in
getFrom getFrom

View file

@ -1,4 +1,5 @@
{ config, ... }: { { config, ... }:
{
# configure agenix secrets # configure agenix secrets
age.secrets = { age.secrets = {
"restic/env".file = ../../secrets/restic/env.age; "restic/env".file = ../../secrets/restic/env.age;
@ -31,4 +32,3 @@
}; };
}; };
} }

View file

@ -1,4 +1,9 @@
{ config, pkgs, inputs, ... }: {
config,
pkgs,
inputs,
...
}:
{ {
imports = [ imports = [
@ -34,7 +39,6 @@
lsd lsd
]; ];
modules = { modules = {
apps = { apps = {
enable = true; enable = true;

View file

@ -2,20 +2,23 @@
# your system.Help is available in the configuration.nix(5) man page # your system.Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help). # and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, inputs, nix-colors, lib, ... }:
{ {
imports = config,
[ pkgs,
# Include the results of the hardware scan. inputs,
../../modules/games/steam.nix nix-colors,
./disk-config.nix lib,
./hardware-configuration.nix ...
}:
../../common {
]; imports = [
# Include the results of the hardware scan.
../../modules/games/steam.nix
./disk-config.nix
./hardware-configuration.nix
../../common
];
hardware = { hardware = {
bluetooth = { bluetooth = {
@ -48,7 +51,6 @@
# Set your time zone. # Set your time zone.
time.timeZone = "Europe/Amsterdam"; time.timeZone = "Europe/Amsterdam";
# Configure console keymap # Configure console keymap
console.keyMap = "us-acentos"; console.keyMap = "us-acentos";
@ -60,7 +62,12 @@
noa = { noa = {
isNormalUser = true; isNormalUser = true;
description = "Noa Aarts"; description = "Noa Aarts";
extraGroups = [ "networkmanager" "wheel" "docker" "wireshark" ]; extraGroups = [
"networkmanager"
"wheel"
"docker"
"wireshark"
];
hashedPassword = "$6$rounds=512400$Zip3xoK2zcoR4qEL$N13YTHO5tpWfx2nKb1sye.ZPwfoRtMQ5f3YrMZqKzzoFoSSHHJ.l5ulCEa9HygFxZmBtPnwlseFEtl8ERnwF50"; hashedPassword = "$6$rounds=512400$Zip3xoK2zcoR4qEL$N13YTHO5tpWfx2nKb1sye.ZPwfoRtMQ5f3YrMZqKzzoFoSSHHJ.l5ulCEa9HygFxZmBtPnwlseFEtl8ERnwF50";
openssh.authorizedKeys.keys = import ../../common/ssh-keys.nix; openssh.authorizedKeys.keys = import ../../common/ssh-keys.nix;
}; };
@ -123,7 +130,6 @@
security.rtkit.enable = true; security.rtkit.enable = true;
boot = rec { boot = rec {
kernelPackages = pkgs.linuxPackages_latest; kernelPackages = pkgs.linuxPackages_latest;
extraModulePackages = with kernelPackages; [ extraModulePackages = with kernelPackages; [
v4l2loopback v4l2loopback
@ -276,8 +282,6 @@
# Or disable the firewall altogether. # Or disable the firewall altogether.
# networking.firewall.enable = false; # networking.firewall.enable = false;
# This value determines the NixOS release from which the default # This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions # settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave # on your system were taken. Its perfectly fine and recommended to leave

View file

@ -30,4 +30,3 @@
}; };
}; };
} }

View file

@ -1,15 +1,26 @@
# 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, ... }: {
config,
lib,
pkgs,
modulesPath,
...
}:
{ {
imports = imports = [
[ (modulesPath + "/installer/scan/not-detected.nix")
(modulesPath + "/installer/scan/not-detected.nix") ];
];
boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" ]; boot.initrd.availableKernelModules = [
"xhci_pci"
"thunderbolt"
"nvme"
"usb_storage"
"sd_mod"
];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];

View file

@ -1,15 +1,20 @@
{ config, pkgs, inputs, lib, ... }: {
config,
pkgs,
inputs,
lib,
...
}:
{ {
imports = imports = [
[ ../../modules/hyprland.nix
../../modules/hyprland.nix ../../modules/games
../../modules/games ../../modules/applications
../../modules/applications ../../common/nvim/nvim.nix
../../common/nvim/nvim.nix ../../common/discord/discord.nix
../../common/discord/discord.nix ../../common/spotify.nix
../../common/spotify.nix ];
];
# Home Manager needs a bit of information about you and the paths it should # Home Manager needs a bit of information about you and the paths it should
# manage. # manage.
home.username = "noa"; home.username = "noa";
@ -85,7 +90,6 @@
yubico-piv-tool yubico-piv-tool
]; ];
# Home Manager is pretty good at managing dotfiles. The primary way to manage # Home Manager is pretty good at managing dotfiles. The primary way to manage
# plain files is through 'home.file'. # plain files is through 'home.file'.
home.file = { home.file = {
@ -118,7 +122,6 @@
# /etc/profiles/per-user/noa/etc/profile.d/hm-session-vars.sh # /etc/profiles/per-user/noa/etc/profile.d/hm-session-vars.sh
# #
home.sessionVariables = { home.sessionVariables = {
EDITOR = "nvim"; EDITOR = "nvim";
TERM = "kitty"; TERM = "kitty";
@ -139,8 +142,6 @@
}; };
}; };
dconf = { dconf = {
enable = true; enable = true;
settings = { settings = {
@ -183,14 +184,15 @@
x11.enable = true; x11.enable = true;
name = name; name = name;
size = 32; size = 32;
package = package = pkgs.runCommand "moveUp" { } ''
pkgs.runCommand "moveUp" { } '' mkdir -p $out/share/icons
mkdir -p $out/share/icons ln -s ${
ln -s ${pkgs.fetchzip { pkgs.fetchzip {
url = url; url = url;
hash = hash; hash = hash;
}} $out/share/icons/${name} }
''; } $out/share/icons/${name}
'';
}; };
in in
getFrom getFrom

View file

@ -1,4 +1,9 @@
{ config, pkgs, inputs, ... }: {
config,
pkgs,
inputs,
...
}:
{ {
imports = [ imports = [
@ -34,7 +39,6 @@
lsd lsd
]; ];
modules = { modules = {
apps = { apps = {
enable = true; enable = true;

View file

@ -2,19 +2,26 @@
# your system. Help is available in the configuration.nix(5) man page, on # your system. Help is available in the configuration.nix(5) man page, on
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`). # https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
{ modulesPath, pkgs, inputs, lib, nix-colors, config, ... }:
{ {
imports = modulesPath,
[ pkgs,
# Include the results of the hardware scan. inputs,
./hardware-configuration.nix lib,
inputs.home-manager.nixosModules.default nix-colors,
./disk-config.nix config,
(modulesPath + "/installer/scan/not-detected.nix") ...
(modulesPath + "/profiles/qemu-guest.nix") }:
{
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
inputs.home-manager.nixosModules.default
./disk-config.nix
(modulesPath + "/installer/scan/not-detected.nix")
(modulesPath + "/profiles/qemu-guest.nix")
../../common ../../common
]; ];
# LOVE me some blob # LOVE me some blob
hardware.enableRedistributableFirmware = true; hardware.enableRedistributableFirmware = true;
@ -39,7 +46,12 @@
users.users = { users.users = {
noa = { noa = {
isNormalUser = true; isNormalUser = true;
extraGroups = [ "networkmanager" "wheel" "docker" "libvirt" ]; extraGroups = [
"networkmanager"
"wheel"
"docker"
"libvirt"
];
hashedPassword = "$6$rounds=512400$g/s4dcRttXi4ux6c$Z6pKnhJXcWxv0TBSMtvJu5.piETdUBSgBVN7oDPKiQV.lbTYz1r.0XQLwMYxzcvaaX0DL6Iw/SEUTiC2M50wC/"; hashedPassword = "$6$rounds=512400$g/s4dcRttXi4ux6c$Z6pKnhJXcWxv0TBSMtvJu5.piETdUBSgBVN7oDPKiQV.lbTYz1r.0XQLwMYxzcvaaX0DL6Iw/SEUTiC2M50wC/";
openssh.authorizedKeys.keys = import ../../common/ssh-keys.nix; openssh.authorizedKeys.keys = import ../../common/ssh-keys.nix;
}; };
@ -66,7 +78,6 @@
# enableSSHSupport = true; # enableSSHSupport = true;
# }; # };
programs.zsh.enable = true; programs.zsh.enable = true;
home-manager = { home-manager = {
@ -153,7 +164,7 @@
github-runners = { github-runners = {
flurry-runner = { flurry-runner = {
enable = true; enable = true;
extraPackages = with pkgs;[ extraPackages = with pkgs; [
nodejs nodejs
curl curl
]; ];
@ -206,7 +217,6 @@
modules = [ pkgs.nginxModules.brotli ]; modules = [ pkgs.nginxModules.brotli ];
}; };
recommendedOptimisation = true; recommendedOptimisation = true;
recommendedProxySettings = true; recommendedProxySettings = true;
recommendedTlsSettings = true; recommendedTlsSettings = true;
@ -253,7 +263,6 @@
}; };
}; };
security.acme = { security.acme = {
acceptTerms = true; acceptTerms = true;
defaults.email = "noa@voorwaarts.nl"; defaults.email = "noa@voorwaarts.nl";

View file

@ -1,15 +1,24 @@
# 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, ... }: {
config,
lib,
pkgs,
modulesPath,
...
}:
{ {
imports = imports = [
[ (modulesPath + "/installer/scan/not-detected.nix")
(modulesPath + "/installer/scan/not-detected.nix") ];
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" ]; boot.initrd.availableKernelModules = [
"nvme"
"xhci_pci"
"ahci"
];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];

View file

@ -1,11 +1,16 @@
{ config, pkgs, mineflake, inputs, ... }: {
config,
pkgs,
mineflake,
inputs,
...
}:
{ {
imports = imports = [
[ ../../modules/applications
../../modules/applications ../../common/nvim/nvim.nix
../../common/nvim/nvim.nix ];
];
# Home Manager needs a bit of information about you and the paths it should # Home Manager needs a bit of information about you and the paths it should
# manage. # manage.
home.username = "noa"; home.username = "noa";
@ -56,8 +61,6 @@
enable = true; enable = true;
}; };
# Home Manager is pretty good at managing dotfiles. The primary way to manage # Home Manager is pretty good at managing dotfiles. The primary way to manage
# plain files is through 'home.file'. # plain files is through 'home.file'.
home.file = { home.file = {

View file

@ -1,10 +1,14 @@
{ config, pkgs, inputs, ... }: {
config,
pkgs,
inputs,
...
}:
{ {
imports = imports = [
[ ../../common/nvim/nvim.nix
../../common/nvim/nvim.nix ];
];
# Home Manager needs a bit of information about you and the paths it should # Home Manager needs a bit of information about you and the paths it should
# manage. # manage.
home.username = "root"; home.username = "root";
@ -34,7 +38,6 @@
lsd lsd
]; ];
# Home Manager is pretty good at managing dotfiles. The primary way to manage # Home Manager is pretty good at managing dotfiles. The primary way to manage
# plain files is through 'home.file'. # plain files is through 'home.file'.
home.file = { home.file = {

View file

@ -1,4 +1,10 @@
{ config, lib, pkgs, inputs, ... }: {
config,
lib,
pkgs,
inputs,
...
}:
let let
cfg = config.modules.hyprland; cfg = config.modules.hyprland;
in in
@ -23,15 +29,14 @@ in
default = pkgs.xdg-desktop-portal-hyprland; default = pkgs.xdg-desktop-portal-hyprland;
}; };
displays = lib.mkOption { displays = lib.mkOption {
type = lib.types.listOf type = lib.types.listOf (
(lib.types.submodule { lib.types.submodule {
options = { options = {
name = lib.mkOption name = lib.mkOption {
{ type = lib.types.str;
type = lib.types.str; description = "the display identifier";
description = "the display identifier"; example = "DP-2";
example = "DP-2"; };
};
horizontal = lib.mkOption { horizontal = lib.mkOption {
type = lib.types.ints.positive; type = lib.types.ints.positive;
description = "the horizontal resolution"; description = "the horizontal resolution";
@ -64,7 +69,8 @@ in
example = "1.5"; example = "1.5";
}; };
}; };
}); }
);
description = "the display layout to use"; description = "the display layout to use";
}; };
}; };
@ -84,9 +90,23 @@ in
}; };
waybar = { waybar = {
modules = { modules = {
left = [ "hyprland/workspaces" "tray" "hyprland/window" ]; left = [
center = [ "clock" "custom/spotify" ]; "hyprland/workspaces"
right = [ "custom/vpn" "wireplumber" "network" "cpu" "memory" "custom/poweroff" ]; "tray"
"hyprland/window"
];
center = [
"clock"
"custom/spotify"
];
right = [
"custom/vpn"
"wireplumber"
"network"
"cpu"
"memory"
"custom/poweroff"
];
}; };
enable = lib.mkDefault true; enable = lib.mkDefault true;
}; };
@ -102,7 +122,6 @@ in
playerctl playerctl
]; ];
xdg.portal = { xdg.portal = {
extraPortals = [ cfg.portalPackage ]; extraPortals = [ cfg.portalPackage ];
config.common.default = "*"; config.common.default = "*";
@ -127,7 +146,9 @@ in
package = cfg.package; package = cfg.package;
settings = settings =
let let
make-display-string = display: "${display.name}, ${builtins.toString display.horizontal}x${builtins.toString display.vertical}@${builtins.toString display.refresh-rate}, ${builtins.toString display.horizontal-offset}x${builtins.toString display.vertical-offset}, ${display.scale}"; make-display-string =
display:
"${display.name}, ${builtins.toString display.horizontal}x${builtins.toString display.vertical}@${builtins.toString display.refresh-rate}, ${builtins.toString display.horizontal-offset}x${builtins.toString display.vertical-offset}, ${display.scale}";
in in
{ {
monitor = builtins.map make-display-string cfg.displays; monitor = builtins.map make-display-string cfg.displays;
@ -179,38 +200,38 @@ in
]; ];
}; };
"$mod" = "SUPER"; "$mod" = "SUPER";
bind = [ bind =
"$mod,Return,exec,${cfg.terminal}/bin/${cfg.terminal.pname}" [
"$mod,tab,cyclenext" "$mod,Return,exec,${cfg.terminal}/bin/${cfg.terminal.pname}"
"SUPERSHIFT,Q,killactive" "$mod,tab,cyclenext"
"$mod,SPACE,exec,wofi-launch" "SUPERSHIFT,Q,killactive"
"$mod,P,exec,wofi-power" "$mod,SPACE,exec,wofi-launch"
"SUPERSHIFT,m,exit" "$mod,P,exec,wofi-power"
"$mod,H,movefocus,l" "SUPERSHIFT,m,exit"
"$mod,J,movefocus,u" "$mod,H,movefocus,l"
"$mod,K,movefocus,d" "$mod,J,movefocus,u"
"$mod,L,movefocus,r" "$mod,K,movefocus,d"
"SUPERSHIFT,H,movewindow,l" "$mod,L,movefocus,r"
"SUPERSHIFT,J,movewindow,u" "SUPERSHIFT,H,movewindow,l"
"SUPERSHIFT,K,movewindow,d" "SUPERSHIFT,J,movewindow,u"
"SUPERSHIFT,L,movewindow,r" "SUPERSHIFT,K,movewindow,d"
"$mod,F,togglefloating" "SUPERSHIFT,L,movewindow,r"
"$mod,X,togglespecialworkspace" "$mod,F,togglefloating"
"SUPERSHIFT,X,movetoworkspace,special" "$mod,X,togglespecialworkspace"
"SUPERSHIFT,S,exec,${pkgs.hyprshot}/bin/hyprshot -m region --clipboard-only" "SUPERSHIFT,X,movetoworkspace,special"
"$mod,f11,fullscreen,0" "SUPERSHIFT,S,exec,${pkgs.hyprshot}/bin/hyprshot -m region --clipboard-only"
",XF86AudioLowerVolume,exec,${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_SINK@ 1%-" "$mod,f11,fullscreen,0"
",XF86AudioRaiseVolume,exec,${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_SINK@ 1%+" ",XF86AudioLowerVolume,exec,${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_SINK@ 1%-"
",XF86AudioMute,exec,${pkgs.wireplumber}/bin/wpctl set-mute @DEFAULT_SINK@ toggle" ",XF86AudioRaiseVolume,exec,${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_SINK@ 1%+"
",XF86AudioPlay,exec,${pkgs.playerctl}/bin/playerctl play-pause" ",XF86AudioMute,exec,${pkgs.wireplumber}/bin/wpctl set-mute @DEFAULT_SINK@ toggle"
",XF86AudioPrev,exec,${pkgs.playerctl}/bin/playerctl previous" ",XF86AudioPlay,exec,${pkgs.playerctl}/bin/playerctl play-pause"
",XF86AudioNext,exec,${pkgs.playerctl}/bin/playerctl next" ",XF86AudioPrev,exec,${pkgs.playerctl}/bin/playerctl previous"
"$mod,mouse_up,workspace,r-1" ",XF86AudioNext,exec,${pkgs.playerctl}/bin/playerctl next"
"$mod,mouse_down,workspace,r+1" "$mod,mouse_up,workspace,r-1"
] "$mod,mouse_down,workspace,r+1"
++ ( ]
builtins.concatLists (builtins.genList ++ (builtins.concatLists (
( builtins.genList (
x: x:
let let
ws = builtins.toString (x); ws = builtins.toString (x);
@ -219,9 +240,8 @@ in
"$mod,${ws},workspace,${ws}" "$mod,${ws},workspace,${ws}"
"ALT,${ws},movetoworkspace,${ws}" "ALT,${ws},movetoworkspace,${ws}"
] ]
) ) 10
10) ));
);
bindm = [ bindm = [
"$mod,mouse:272,movewindow" "$mod,mouse:272,movewindow"
"$mod,mouse:273,resizewindow" "$mod,mouse:273,resizewindow"