From 15c5e3306055020ae21a1aa206b54c2319bf238e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leonardo=20Eug=C3=AAnio?= Date: Thu, 30 May 2024 16:54:58 -0300 Subject: [PATCH] treewide: format using nixfmt-rfc-style --- flake.nix | 77 +++--- hosts/double-rainbow.nix | 35 ++- hosts/i15.nix | 36 ++- hosts/monolith.nix | 76 ++++-- hosts/phantom/default.nix | 16 +- hosts/phantom/email.nix | 19 +- hosts/phantom/forgejo.nix | 7 +- hosts/phantom/hardware-config.nix | 19 +- hosts/phantom/mastodon.nix | 8 +- hosts/phantom/nextcloud.nix | 10 +- hosts/phantom/nginx.nix | 42 ++- hosts/phantom/syncthing.nix | 17 +- hosts/phantom/users.nix | 22 +- hosts/phantom/vpsadminos.nix | 18 +- hosts/phantom/writefreely.nix | 9 +- hosts/pixie.nix | 24 +- hosts/rainbow.nix | 41 ++- overlays/default.nix | 138 +++++----- pkgs/blade-formatter/default.nix | 35 +-- pkgs/cargo-checkmate.nix | 21 +- pkgs/default.nix | 3 +- pkgs/emmet-cli.nix | 7 +- pkgs/lipsum.nix | 5 +- scripts/default.nix | 175 +++++++++---- secrets/secrets.nix | 8 +- system/bluetooth.nix | 7 +- system/boot.nix | 13 +- system/cachix.nix | 8 +- system/configuration.nix | 8 +- system/containers.nix | 3 +- system/fonts.nix | 3 +- system/gamemode.nix | 12 +- system/gitlab-runner.nix | 84 +++--- system/gnome.nix | 18 +- system/greetd.nix | 15 +- system/kde.nix | 3 +- system/locale.nix | 3 +- system/media-packages.nix | 13 +- system/monolith-forgejo-runner.nix | 3 +- system/monolith-gitlab-runner.nix | 10 +- system/network.nix | 3 +- system/nix-serve.nix | 8 +- system/nix.nix | 17 +- system/rainbow-gitlab-runner.nix | 10 +- system/secrets.nix | 21 +- system/sound.nix | 3 +- system/specialisation.nix | 9 +- system/steam.nix | 32 ++- system/thunar.nix | 30 ++- system/users.nix | 13 +- user/alacritty.nix | 73 ++++-- user/bmenu.nix | 15 +- user/chat.nix | 9 +- user/controller.nix | 9 +- user/desktop-entries.nix | 22 +- user/firefox.nix | 16 +- user/fish/default.nix | 56 ++-- user/fzf.nix | 30 ++- user/git.nix | 13 +- user/gnome.nix | 16 +- user/gpg.nix | 17 +- user/helix.nix | 37 ++- user/home.nix | 46 ++-- user/hyprland.nix | 13 +- user/kakoune/colors.nix | 17 +- user/kakoune/default.nix | 61 +++-- user/lf/default.nix | 9 +- user/man.nix | 19 +- user/mangohud.nix | 20 +- user/mimeapps.nix | 29 ++- user/mpd.nix | 8 +- user/mpv.nix | 6 +- user/pass.nix | 13 +- user/pipewire.nix | 8 +- user/pqiv.nix | 35 ++- user/qutebrowser/colors.nix | 80 ++++-- user/qutebrowser/dark-theme.nix | 105 ++++---- user/qutebrowser/default.nix | 17 +- user/qutebrowser/fonts.nix | 1 - user/ranger/default.nix | 9 +- user/rofi.nix | 24 +- user/ssh.nix | 13 +- user/sway/default.nix | 31 ++- user/sway/kanshi.nix | 26 +- user/sway/mako.nix | 18 +- user/sway/sway-assigns.nix | 26 +- user/sway/sway-binds.nix | 99 +++++--- user/sway/sway-modes.nix | 99 +++++--- user/sway/swayidle.nix | 14 +- user/sway/swaylock.nix | 14 +- user/sway/theme.nix | 65 +++-- user/syncthing.nix | 3 +- user/thunar.nix | 8 +- user/vdir.nix | 32 +-- user/vscode/default.nix | 3 +- user/waybar/default.nix | 396 ++++++++++++++++------------- user/xdg-dirs.nix | 8 +- user/zathura.nix | 15 +- 98 files changed, 1930 insertions(+), 990 deletions(-) diff --git a/flake.nix b/flake.nix index 7b042c9..daecf26 100644 --- a/flake.nix +++ b/flake.nix @@ -68,11 +68,14 @@ nixos-conf-editor.url = "github:vlinkz/nixos-conf-editor"; nix-software-center.url = "github:vlinkz/nix-software-center"; }; - outputs = inputs: + outputs = + inputs: let nixpkgsConfig = { inherit system; - config = { allowUnfree = true; }; + config = { + allowUnfree = true; + }; overlays = old_overlays.all; }; @@ -85,32 +88,37 @@ old_overlays = (import ./overlays { inherit packages inputs; }); - specialArgs = { inherit inputs; }; - common_modules = [ - { nixpkgs.pkgs = pkgs; } - ./system/configuration.nix - ./system/secrets.nix - ./system/specialisation.nix - ./system/greetd.nix - { login-manager.greetd.enable = desktop == "sway" || desktop == "hyprland"; } + specialArgs = { + inherit inputs; + }; + common_modules = + [ + { nixpkgs.pkgs = pkgs; } + ./system/configuration.nix + ./system/secrets.nix + ./system/specialisation.nix + ./system/greetd.nix + { login-manager.greetd.enable = desktop == "sway" || desktop == "hyprland"; } - inputs.agenix.nixosModules.default - inputs.hyprland.nixosModules.default - inputs.dzgui-nix.nixosModules.default - { programs.hyprland.enable = (desktop == "hyprland"); } - inputs.home-manager.nixosModules.home-manager - { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.users.lelgenio = import ./user/home.nix; - home-manager.backupFileExtension = "bkp"; - # Optionally, use home-manager.extraSpecialArgs to pass - # arguments to home.nix - home-manager.extraSpecialArgs = { inherit inputs; }; - } - ] - ++ lib.optional (desktop == "gnome") ./system/gnome.nix - ++ lib.optional (desktop == "kde") ./system/kde.nix; + inputs.agenix.nixosModules.default + inputs.hyprland.nixosModules.default + inputs.dzgui-nix.nixosModules.default + { programs.hyprland.enable = (desktop == "hyprland"); } + inputs.home-manager.nixosModules.home-manager + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.lelgenio = import ./user/home.nix; + home-manager.backupFileExtension = "bkp"; + # Optionally, use home-manager.extraSpecialArgs to pass + # arguments to home.nix + home-manager.extraSpecialArgs = { + inherit inputs; + }; + } + ] + ++ lib.optional (desktop == "gnome") ./system/gnome.nix + ++ lib.optional (desktop == "kde") ./system/kde.nix; in { nixosConfigurations = { @@ -144,11 +152,16 @@ }; pixie = lib.nixosSystem { inherit system specialArgs; - modules = [ ./hosts/pixie.nix ] ++ common_modules ++ [{ - packages.media-packages.enable = lib.mkOverride 0 false; - programs.steam.enable = lib.mkOverride 0 false; - services.flatpak.enable = lib.mkOverride 0 false; - }]; + modules = + [ ./hosts/pixie.nix ] + ++ common_modules + ++ [ + { + packages.media-packages.enable = lib.mkOverride 0 false; + programs.steam.enable = lib.mkOverride 0 false; + services.flatpak.enable = lib.mkOverride 0 false; + } + ]; }; phantom = lib.nixosSystem { inherit system specialArgs; diff --git a/hosts/double-rainbow.nix b/hosts/double-rainbow.nix index 7725898..be5dd48 100644 --- a/hosts/double-rainbow.nix +++ b/hosts/double-rainbow.nix @@ -1,13 +1,32 @@ -{ config, lib, pkgs, modulesPath, ... }: +{ + config, + lib, + pkgs, + modulesPath, + ... +}: let - btrfs_options = [ "compress=zstd:3" "noatime" "x-systemd.device-timeout=0" ]; - btrfs_ssd = [ "ssd" "discard=async" ]; + btrfs_options = [ + "compress=zstd:3" + "noatime" + "x-systemd.device-timeout=0" + ]; + btrfs_ssd = [ + "ssd" + "discard=async" + ]; in { imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; - boot.initrd.availableKernelModules = - [ "xhci_pci" "ahci" "nvme" "usb_storage" "usbhid" "sd_mod" ]; + boot.initrd.availableKernelModules = [ + "xhci_pci" + "ahci" + "nvme" + "usb_storage" + "usbhid" + "sd_mod" + ]; boot.initrd.kernelModules = [ "i915" ]; boot.kernelModules = [ "kvm-intel" ]; boot.extraModulePackages = [ ]; @@ -18,8 +37,7 @@ in options = [ "subvol=@" ] ++ btrfs_options ++ btrfs_ssd; }; - boot.initrd.luks.devices."luks-d6573cf8-25f0-4ffc-8046-ac3a4db1e964".device = - "/dev/disk/by-uuid/d6573cf8-25f0-4ffc-8046-ac3a4db1e964"; + boot.initrd.luks.devices."luks-d6573cf8-25f0-4ffc-8046-ac3a4db1e964".device = "/dev/disk/by-uuid/d6573cf8-25f0-4ffc-8046-ac3a4db1e964"; fileSystems."/boot" = { device = "/dev/disk/by-uuid/97EB-7DB5"; @@ -37,8 +55,7 @@ in nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; powerManagement.cpuFreqGovernor = lib.mkDefault "ondemand"; - hardware.cpu.intel.updateMicrocode = - lib.mkDefault config.hardware.enableRedistributableFirmware; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; networking.hostName = "double-rainbow"; # Define your hostname. } diff --git a/hosts/i15.nix b/hosts/i15.nix index e6f0e75..c318665 100644 --- a/hosts/i15.nix +++ b/hosts/i15.nix @@ -1,15 +1,30 @@ # Do not modify this file! It was generated by ‘nixos-generate-config’ # and may be overwritten by future invocations. Please make changes # to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, modulesPath, ... }: +{ + config, + lib, + pkgs, + modulesPath, + ... +}: let - btrfs_options = [ "compress=zstd:3" "noatime" "x-systemd.device-timeout=0" ]; + btrfs_options = [ + "compress=zstd:3" + "noatime" + "x-systemd.device-timeout=0" + ]; in { imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; - boot.initrd.availableKernelModules = - [ "xhci_pci" "ahci" "usb_storage" "sd_mod" "rtsx_usb_sdmmc" ]; + boot.initrd.availableKernelModules = [ + "xhci_pci" + "ahci" + "usb_storage" + "sd_mod" + "rtsx_usb_sdmmc" + ]; boot.initrd.kernelModules = [ ]; boot.kernelModules = [ "kvm-intel" ]; boot.extraModulePackages = [ ]; @@ -45,10 +60,12 @@ in options = [ "subvol=@swap" ] ++ btrfs_options; }; - swapDevices = [{ - device = "/swap/swapfile"; - size = (1024 * 8) + (1024 * 2); # RAM size + 2 GB - }]; + swapDevices = [ + { + device = "/swap/swapfile"; + size = (1024 * 8) + (1024 * 2); # RAM size + 2 GB + } + ]; # 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 @@ -59,7 +76,6 @@ in # networking.interfaces.wlp1s0.useDHCP = lib.mkDefault true; powerManagement.cpuFreqGovernor = lib.mkDefault "ondemand"; - hardware.cpu.intel.updateMicrocode = - lib.mkDefault config.hardware.enableRedistributableFirmware; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; networking.hostName = "i15"; # Define your hostname. } diff --git a/hosts/monolith.nix b/hosts/monolith.nix index 22144c3..213765b 100644 --- a/hosts/monolith.nix +++ b/hosts/monolith.nix @@ -1,21 +1,38 @@ # Do not modify this file! It was generated by ‘nixos-generate-config’ # and may be overwritten by future invocations. Please make changes # to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, modulesPath, ... }: +{ + config, + lib, + pkgs, + modulesPath, + ... +}: let - btrfs_options = [ "compress=zstd:3" "noatime" "x-systemd.device-timeout=0" ]; - btrfs_ssd = [ "ssd" "discard=async" ]; + btrfs_options = [ + "compress=zstd:3" + "noatime" + "x-systemd.device-timeout=0" + ]; + btrfs_ssd = [ + "ssd" + "discard=async" + ]; in { imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; - boot.initrd.availableKernelModules = - [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ]; + boot.initrd.availableKernelModules = [ + "nvme" + "xhci_pci" + "ahci" + "usb_storage" + "usbhid" + "sd_mod" + ]; hardware.opentabletdriver.enable = true; - boot.extraModulePackages = with config.boot.kernelPackages; [ - zenpower - ]; + boot.extraModulePackages = with config.boot.kernelPackages; [ zenpower ]; boot.initrd.kernelModules = [ "amdgpu" ]; boot.kernelModules = [ "kvm-amd" @@ -88,22 +105,34 @@ in fileSystems."/home/lelgenio/Games" = { device = "/dev/disk/by-label/BTRFS_DATA"; fsType = "btrfs"; - options = [ "subvol=@games" "nofail" ] ++ btrfs_options; + options = [ + "subvol=@games" + "nofail" + ] ++ btrfs_options; }; fileSystems."/home/lelgenio/Downloads/Torrents" = { device = "/dev/disk/by-label/BTRFS_DATA"; fsType = "btrfs"; - options = [ "subvol=@torrents" "nofail" ] ++ btrfs_options; + options = [ + "subvol=@torrents" + "nofail" + ] ++ btrfs_options; }; fileSystems."/home/lelgenio/Música" = { device = "/dev/disk/by-label/BTRFS_DATA"; fsType = "btrfs"; - options = [ "subvol=@music" "nofail" ] ++ btrfs_options; + options = [ + "subvol=@music" + "nofail" + ] ++ btrfs_options; }; fileSystems."/home/lelgenio/.local/mount/data" = { device = "/dev/disk/by-label/BTRFS_DATA"; fsType = "btrfs"; - options = [ "subvol=@data" "nofail" ] ++ btrfs_options; + options = [ + "subvol=@data" + "nofail" + ] ++ btrfs_options; }; fileSystems."/home/lelgenio/.local/mount/bigboy" = { device = "/dev/disk/by-label/BTRFS_BIGBOY"; @@ -113,12 +142,18 @@ in fileSystems."/home/lelgenio/projects" = { device = "/dev/disk/by-label/BTRFS_BIGBOY"; fsType = "btrfs"; - options = [ "subvol=@projects" "nofail" ] ++ btrfs_options ++ btrfs_ssd; + options = [ + "subvol=@projects" + "nofail" + ] ++ btrfs_options ++ btrfs_ssd; }; fileSystems."/var/lib/docker" = { device = "/dev/disk/by-label/BTRFS_BIGBOY"; fsType = "btrfs"; - options = [ "subvol=@docker" "nofail" ] ++ btrfs_options ++ btrfs_ssd; + options = [ + "subvol=@docker" + "nofail" + ] ++ btrfs_options ++ btrfs_ssd; }; # Enables DHCP on each ethernet and wireless interface. In case of scripted networking @@ -128,8 +163,7 @@ in networking.useDHCP = lib.mkDefault true; # networking.interfaces.enp4s0.useDHCP = lib.mkDefault true; powerManagement.cpuFreqGovernor = "ondemand"; - hardware.cpu.amd.updateMicrocode = - lib.mkDefault config.hardware.enableRedistributableFirmware; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; networking.hostName = "monolith"; # Define your hostname. # Fix broken suspend with Logitech USB dongle @@ -146,8 +180,10 @@ in # with the exception of `"subvol=swap"`, the other options are repeated in my other `fileSystem` mounts options = [ "subvol=swap" ] ++ btrfs_options ++ btrfs_ssd; }; - swapDevices = [{ - device = "/swap/swapfile"; - size = (1024 * 16) + (1024 * 2); # RAM size + 2 GB - }]; + swapDevices = [ + { + device = "/swap/swapfile"; + size = (1024 * 16) + (1024 * 2); # RAM size + 2 GB + } + ]; } diff --git a/hosts/phantom/default.nix b/hosts/phantom/default.nix index 32d5544..462e070 100644 --- a/hosts/phantom/default.nix +++ b/hosts/phantom/default.nix @@ -1,4 +1,10 @@ -{ config, pkgs, inputs, ... }: { +{ + config, + pkgs, + inputs, + ... +}: +{ imports = [ ./vpsadminos.nix inputs.agenix.nixosModules.default @@ -49,7 +55,12 @@ enable = true; dates = "04:40"; operation = "switch"; - flags = [ "--update-input" "nixpkgs" "--no-write-lock-file" "-L" ]; + flags = [ + "--update-input" + "nixpkgs" + "--no-write-lock-file" + "-L" + ]; flake = "git+https://git.lelgenio.com/lelgenio/nixos-config#phantom"; }; @@ -57,4 +68,3 @@ system.stateVersion = "23.05"; # Never change this } - diff --git a/hosts/phantom/email.nix b/hosts/phantom/email.nix index a34780a..c218977 100644 --- a/hosts/phantom/email.nix +++ b/hosts/phantom/email.nix @@ -1,10 +1,14 @@ -{ pkgs, inputs, config, ... }: { +{ + pkgs, + inputs, + config, + ... +}: +{ # It's important to let Digital Ocean set the hostname so we get rDNS to work networking.hostName = ""; - imports = [ - inputs.nixos-mailserver.nixosModules.mailserver - ]; + imports = [ inputs.nixos-mailserver.nixosModules.mailserver ]; mailserver = { enable = true; @@ -22,7 +26,11 @@ loginAccounts = { "lelgenio@lelgenio.com" = { hashedPassword = "$2y$05$z5s7QCXcs5uTFsfyYpwNJeWzb3RmzgWxNgcPCr0zjSytkLFF/qZmS"; - aliases = [ "postmaster@lelgenio.com" "lelgenio@lelgenio.xyz" "lelgenio@lelgenio.xyz" ]; + aliases = [ + "postmaster@lelgenio.com" + "lelgenio@lelgenio.xyz" + "lelgenio@lelgenio.xyz" + ]; }; "noreply@git.lelgenio.com" = { hashedPassword = "$2b$05$TmR1R7ZwXfec7yrOfeBL7u3ZtyXf0up5dEO6uMWSvb/O7LPEm.j0."; @@ -50,5 +58,4 @@ $config['plugins'] = [ "carddav", "archive" ]; ''; }; - } diff --git a/hosts/phantom/forgejo.nix b/hosts/phantom/forgejo.nix index 61f0a51..eefb003 100644 --- a/hosts/phantom/forgejo.nix +++ b/hosts/phantom/forgejo.nix @@ -1,4 +1,9 @@ -{ lib, pkgs, config, ... }: +{ + lib, + pkgs, + config, + ... +}: let cfg = config.services.forgejo; srv = cfg.settings.server; diff --git a/hosts/phantom/hardware-config.nix b/hosts/phantom/hardware-config.nix index 1a89a15..683a684 100644 --- a/hosts/phantom/hardware-config.nix +++ b/hosts/phantom/hardware-config.nix @@ -1,7 +1,14 @@ -{ config, pkgs, inputs, ... }: { - swapDevices = [{ - device = "/swap/swapfile"; - size = (1024 * 2); # 2 GB - }]; +{ + config, + pkgs, + inputs, + ... +}: +{ + swapDevices = [ + { + device = "/swap/swapfile"; + size = (1024 * 2); # 2 GB + } + ]; } - diff --git a/hosts/phantom/mastodon.nix b/hosts/phantom/mastodon.nix index 9d15d6b..f984c65 100644 --- a/hosts/phantom/mastodon.nix +++ b/hosts/phantom/mastodon.nix @@ -1,4 +1,10 @@ -{ config, pkgs, inputs, ... }: { +{ + config, + pkgs, + inputs, + ... +}: +{ services.mastodon = { enable = true; configureNginx = true; diff --git a/hosts/phantom/nextcloud.nix b/hosts/phantom/nextcloud.nix index 20c7173..de1bd6d 100644 --- a/hosts/phantom/nextcloud.nix +++ b/hosts/phantom/nextcloud.nix @@ -1,4 +1,10 @@ -{ config, pkgs, inputs, ... }: { +{ + config, + pkgs, + inputs, + ... +}: +{ services.nextcloud = { enable = true; package = pkgs.nextcloud27; @@ -22,6 +28,4 @@ group = "nextcloud"; }; }; - } - diff --git a/hosts/phantom/nginx.nix b/hosts/phantom/nginx.nix index 8692134..0153fa6 100644 --- a/hosts/phantom/nginx.nix +++ b/hosts/phantom/nginx.nix @@ -1,4 +1,10 @@ -{ config, pkgs, lib, ... }: { +{ + config, + pkgs, + lib, + ... +}: +{ services.nginx = { enable = true; recommendedProxySettings = true; @@ -8,21 +14,33 @@ }; # Redirect *lelgenio.xyz -> *lelgenio.com - services.nginx.virtualHosts = lib.mapAttrs' - (key: value: lib.nameValuePair "${key}lelgenio.xyz" value) - ( - lib.genAttrs [ "" "social." "blog." "cloud." "mail." "git." "syncthing." ] (name: { - enableACME = true; - forceSSL = true; - locations."/".return = "301 $scheme://${name}lelgenio.com$request_uri"; - }) - ); + services.nginx.virtualHosts = + lib.mapAttrs' (key: value: lib.nameValuePair "${key}lelgenio.xyz" value) + ( + lib.genAttrs + [ + "" + "social." + "blog." + "cloud." + "mail." + "git." + "syncthing." + ] + (name: { + enableACME = true; + forceSSL = true; + locations."/".return = "301 $scheme://${name}lelgenio.com$request_uri"; + }) + ); security.acme = { acceptTerms = true; defaults.email = "lelgenio@disroot.org"; }; - networking.firewall.allowedTCPPorts = [ 80 443 ]; + networking.firewall.allowedTCPPorts = [ + 80 + 443 + ]; } - diff --git a/hosts/phantom/syncthing.nix b/hosts/phantom/syncthing.nix index 55e4cbc..abbda7d 100644 --- a/hosts/phantom/syncthing.nix +++ b/hosts/phantom/syncthing.nix @@ -1,4 +1,10 @@ -{ config, pkgs, inputs, ... }: { +{ + config, + pkgs, + inputs, + ... +}: +{ services.syncthing = { enable = true; @@ -14,11 +20,10 @@ proxyPass = "http://127.0.0.1:8384"; extraConfig = # required when the target is also TLS server with multiple hosts - "proxy_ssl_server_name on;" + - # required when the server wants to use HTTP Authentication - "proxy_pass_header Authorization;" - ; + "proxy_ssl_server_name on;" + + + # required when the server wants to use HTTP Authentication + "proxy_pass_header Authorization;"; }; }; } - diff --git a/hosts/phantom/users.nix b/hosts/phantom/users.nix index 75aee27..6291321 100644 --- a/hosts/phantom/users.nix +++ b/hosts/phantom/users.nix @@ -1,8 +1,12 @@ -{ pkgs, ... }: { +{ pkgs, ... }: +{ security.rtkit.enable = true; services.openssh = { enable = true; - ports = [ 9022 22 ]; + ports = [ + 9022 + 22 + ]; settings = { PasswordAuthentication = false; KbdInteractiveAuthentication = false; @@ -15,7 +19,15 @@ isNormalUser = true; description = "Leonardo Eugênio"; hashedPassword = "$y$j9T$0e/rczjOVCy7PuwC3pG0V/$gTHZhfO4wQSlFvbDyfghbCnGI2uDI0a52zSrQ/yOA5A"; - extraGroups = [ "networkmanager" "wheel" "docker" "adbusers" "bluetooth" "corectrl" "vboxusers" ]; + extraGroups = [ + "networkmanager" + "wheel" + "docker" + "adbusers" + "bluetooth" + "corectrl" + "vboxusers" + ]; shell = pkgs.fish; openssh.authorizedKeys.keys = [ "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCxR/w+38b2lX90yNBqhq3mUmkn1WGu6GAPhN1tVp2ZjYRJNV/+5gWCnTtOWYtDx35HmK/spQ2Qy8X9ttkzORa24fysNx1Iqn/TiXhD7eIJjbGPnrOpIKTkW5/uB3SD/P5NBSa06//BaqJU4sBlG79hoXRpod052hQtdpTVDiMCIV+iboWPKqopmJJfWdBtVnHXs9rep0htPRExxGslImFk7Z6xjcaHyCpIQZPlOGf+sGsmUU7jRqzvZFV8ucIdbnAlMHrU4pepNFhuraESyZVTa/bi9sw0iozXp5Q5+5thMebEslmT1Z771kI4sieDy+O4r8c0Sx2/VY1UAzcpq1faggc3YB01MTh+tiEC6xdMvZLrQGL1NBWjHleMyL53GU5ERluC0vXJF3Hv3BGGBDfXWbrEm5n06DHr2apRVJGC0LwiQ7Woud1X4V4X1pKSusxCVMjT2lmcOwV6YhKhB2sowJc1OdMx4+tL0UWE+YKSZgBHfolwk6ml0F4EO9nnUHc= lelgenio@i15" @@ -32,7 +44,5 @@ programs.fish.enable = true; - environment.systemPackages = with pkgs; [ - git - ]; + environment.systemPackages = with pkgs; [ git ]; } diff --git a/hosts/phantom/vpsadminos.nix b/hosts/phantom/vpsadminos.nix index 40401cd..8102fbb 100644 --- a/hosts/phantom/vpsadminos.nix +++ b/hosts/phantom/vpsadminos.nix @@ -6,7 +6,12 @@ # # https://github.com/vpsfreecz/vpsadminos/blob/staging/os/lib/nixos-container/vpsadminos.nix -{ config, pkgs, lib, ... }: +{ + config, + pkgs, + lib, + ... +}: with lib; let nameservers = [ @@ -22,16 +27,19 @@ in systemd.services.systemd-sysctl.enable = false; systemd.services.systemd-oomd.enable = false; systemd.sockets."systemd-journald-audit".enable = false; - systemd.mounts = [{ where = "/sys/kernel/debug"; enable = false; }]; + systemd.mounts = [ + { + where = "/sys/kernel/debug"; + enable = false; + } + ]; systemd.services.rpc-gssd.enable = false; # Due to our restrictions in /sys, the default systemd-udev-trigger fails # on accessing PCI devices, etc. Override it to match only network devices. # In addition, boot.isContainer prevents systemd-udev-trigger.service from # being enabled at all, so add it explicitly. - systemd.additionalUpstreamSystemUnits = [ - "systemd-udev-trigger.service" - ]; + systemd.additionalUpstreamSystemUnits = [ "systemd-udev-trigger.service" ]; systemd.services.systemd-udev-trigger.serviceConfig.ExecStart = [ "" "-udevadm trigger --subsystem-match=net --action=add" diff --git a/hosts/phantom/writefreely.nix b/hosts/phantom/writefreely.nix index 3530e06..5608c0f 100644 --- a/hosts/phantom/writefreely.nix +++ b/hosts/phantom/writefreely.nix @@ -1,4 +1,10 @@ -{ config, pkgs, inputs, ... }: { +{ + config, + pkgs, + inputs, + ... +}: +{ services.writefreely = { enable = true; acme.enable = true; @@ -22,4 +28,3 @@ }; }; } - diff --git a/hosts/pixie.nix b/hosts/pixie.nix index 5f8ce66..9aa5a1e 100644 --- a/hosts/pixie.nix +++ b/hosts/pixie.nix @@ -1,13 +1,25 @@ # Do not modify this file! It was generated by ‘nixos-generate-config’ # and may be overwritten by future invocations. Please make changes # to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, modulesPath, ... }: +{ + config, + lib, + pkgs, + modulesPath, + ... +}: { imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; - boot.initrd.availableKernelModules = - [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ]; + boot.initrd.availableKernelModules = [ + "nvme" + "xhci_pci" + "ahci" + "usb_storage" + "usbhid" + "sd_mod" + ]; boot.initrd.kernelModules = [ ]; boot.kernelModules = [ "kvm-amd" ]; boot.extraModulePackages = [ ]; @@ -18,8 +30,7 @@ options = [ "subvol=nixos" ]; }; - boot.initrd.luks.devices."pixie".device = - "/dev/disk/by-uuid/f4ae5858-d2d6-4cd1-a054-bf5147a9a928"; + boot.initrd.luks.devices."pixie".device = "/dev/disk/by-uuid/f4ae5858-d2d6-4cd1-a054-bf5147a9a928"; fileSystems."/home" = { device = "/dev/mapper/pixie"; @@ -46,8 +57,7 @@ # networking.interfaces.enp4s0.useDHCP = lib.mkDefault true; # networking.interfaces.veth74f3ffc.useDHCP = lib.mkDefault true; - hardware.cpu.amd.updateMicrocode = - lib.mkDefault config.hardware.enableRedistributableFirmware; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; networking.hostName = "pixie"; # Define your hostname. } diff --git a/hosts/rainbow.nix b/hosts/rainbow.nix index 776ebec..b977ee6 100644 --- a/hosts/rainbow.nix +++ b/hosts/rainbow.nix @@ -1,16 +1,34 @@ # Do not modify this file! It was generated by ‘nixos-generate-config’ # and may be overwritten by future invocations. Please make changes # to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, modulesPath, ... }: +{ + config, + lib, + pkgs, + modulesPath, + ... +}: let - btrfs_options = [ "compress=zstd:3" "noatime" "x-systemd.device-timeout=0" ]; - btrfs_ssd = [ "ssd" "discard=async" ]; + btrfs_options = [ + "compress=zstd:3" + "noatime" + "x-systemd.device-timeout=0" + ]; + btrfs_ssd = [ + "ssd" + "discard=async" + ]; in { imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; - boot.initrd.availableKernelModules = - [ "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ]; + boot.initrd.availableKernelModules = [ + "xhci_pci" + "ahci" + "usb_storage" + "usbhid" + "sd_mod" + ]; boot.initrd.kernelModules = [ "i915" ]; boot.kernelModules = [ "kvm-intel" ]; boot.extraModulePackages = [ ]; @@ -46,10 +64,12 @@ in options = [ "subvol=@swap" ] ++ btrfs_ssd; }; - swapDevices = [{ - device = "/swap/swapfile"; - size = (1024 * 8); - }]; + swapDevices = [ + { + device = "/swap/swapfile"; + size = (1024 * 8); + } + ]; # 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 @@ -59,8 +79,7 @@ in # networking.interfaces.enp1s0.useDHCP = lib.mkDefault true; powerManagement.cpuFreqGovernor = lib.mkDefault "ondemand"; - hardware.cpu.intel.updateMicrocode = - lib.mkDefault config.hardware.enableRedistributableFirmware; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; networking.hostName = "rainbow"; # Define your hostname. } diff --git a/overlays/default.nix b/overlays/default.nix index 060a0c0..14257ba 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -1,4 +1,5 @@ -{ inputs, packages, ... }: rec { +{ inputs, packages, ... }: +rec { all = [ scripts sway @@ -13,68 +14,87 @@ sway = (import ./sway.nix); - themes = (final: prev: { - material-wifi-icons = final.stdenv.mkDerivation rec { - name = "material-wifi-icons"; - src = inputs.material-wifi-icons; - installPhase = '' - install -D material-wifi.ttf $out/share/fonts/${name} - ''; - }; - papirus_red = (final.papirus-icon-theme.override { color = "red"; }); - orchis_theme_compact = (final.orchis-theme.override { - border-radius = 0; - tweaks = [ "compact" "solid" ]; - }); - nerdfonts_fira_hack = (final.nerdfonts.override { fonts = [ "FiraCode" "Hack" ]; }); - }); + themes = ( + final: prev: { + material-wifi-icons = final.stdenv.mkDerivation rec { + name = "material-wifi-icons"; + src = inputs.material-wifi-icons; + installPhase = '' + install -D material-wifi.ttf $out/share/fonts/${name} + ''; + }; + papirus_red = (final.papirus-icon-theme.override { color = "red"; }); + orchis_theme_compact = ( + final.orchis-theme.override { + border-radius = 0; + tweaks = [ + "compact" + "solid" + ]; + } + ); + nerdfonts_fira_hack = ( + final.nerdfonts.override { + fonts = [ + "FiraCode" + "Hack" + ]; + } + ); + } + ); - new-packages = (final: prev: packages // { - dhist = inputs.dhist.packages.${prev.system}.dhist; - demoji = inputs.demoji.packages.${prev.system}.default; - tlauncher = inputs.tlauncher.packages.${prev.system}.tlauncher; - maildir-notify-daemon = inputs.maildir-notify-daemon.packages.${prev.system}.default; - wl-crosshair = inputs.wl-crosshair.packages.${prev.system}.default; - }); + new-packages = ( + final: prev: + packages + // { + dhist = inputs.dhist.packages.${prev.system}.dhist; + demoji = inputs.demoji.packages.${prev.system}.default; + tlauncher = inputs.tlauncher.packages.${prev.system}.tlauncher; + maildir-notify-daemon = inputs.maildir-notify-daemon.packages.${prev.system}.default; + wl-crosshair = inputs.wl-crosshair.packages.${prev.system}.default; + } + ); - patches = (final: prev: { - bemenu = prev.bemenu.overrideAttrs (o: { - postPatch = '' - substituteInPlace lib/renderers/wayland/window.c \ - --replace ZWLR_LAYER_SHELL_V1_LAYER_TOP ZWLR_LAYER_SHELL_V1_LAYER_OVERLAY - ''; - }); - mySway = prev.sway.override { - sway-unwrapped = prev.sway-unwrapped.overrideAttrs (old: { - patches = old.patches - ++ [ ../patches/sway/fix-hide_cursor-clearing-focus.patch ]; + patches = ( + final: prev: { + bemenu = prev.bemenu.overrideAttrs (o: { + postPatch = '' + substituteInPlace lib/renderers/wayland/window.c \ + --replace ZWLR_LAYER_SHELL_V1_LAYER_TOP ZWLR_LAYER_SHELL_V1_LAYER_OVERLAY + ''; }); - }; - mangohud = prev.mangohud.overrideAttrs (o: { - patches = o.patches ++ [ - (prev.fetchpatch { - url = "https://github.com/flightlessmango/MangoHud/commit/95141de657e02577f1d3fab0ca12122bfb68bc56.patch"; - hash = "sha256-a2tESliGBkfF7uYQn8TDgeFt07A9FOioI4VcTT7DC7A="; - }) - ]; - }); - }); + mySway = prev.sway.override { + sway-unwrapped = prev.sway-unwrapped.overrideAttrs (old: { + patches = old.patches ++ [ ../patches/sway/fix-hide_cursor-clearing-focus.patch ]; + }); + }; + mangohud = prev.mangohud.overrideAttrs (o: { + patches = o.patches ++ [ + (prev.fetchpatch { + url = "https://github.com/flightlessmango/MangoHud/commit/95141de657e02577f1d3fab0ca12122bfb68bc56.patch"; + hash = "sha256-a2tESliGBkfF7uYQn8TDgeFt07A9FOioI4VcTT7DC7A="; + }) + ]; + }); + } + ); - variables = (final: prev: { - uservars = import ../user/variables.nix; - }); + variables = (final: prev: { uservars = import ../user/variables.nix; }); - lib_extended = (final: prev: { - lib = prev.lib // rec { - # Utility function - # Input: [{v1=1;} {v2=2;}] - # Output: {v1=1;v2=2;} - mergeAttrsSet = prev.lib.foldAttrs (n: _: n) { }; + lib_extended = ( + final: prev: { + lib = prev.lib // rec { + # Utility function + # Input: [{v1=1;} {v2=2;}] + # Output: {v1=1;v2=2;} + mergeAttrsSet = prev.lib.foldAttrs (n: _: n) { }; - # Easily translate imperative templating code - # Input: [ 1 2 ] (num: { "v${num}" = num; }) - # Output: {v1=1;v2=2;} - forEachMerge = list: func: mergeAttrsSet (prev.lib.forEach list func); - }; - }); + # Easily translate imperative templating code + # Input: [ 1 2 ] (num: { "v${num}" = num; }) + # Output: {v1=1;v2=2;} + forEachMerge = list: func: mergeAttrsSet (prev.lib.forEach list func); + }; + } + ); } diff --git a/pkgs/blade-formatter/default.nix b/pkgs/blade-formatter/default.nix index adf2d7f..f824066 100644 --- a/pkgs/blade-formatter/default.nix +++ b/pkgs/blade-formatter/default.nix @@ -1,11 +1,12 @@ -{ lib -, mkYarnPackage -, fetchFromGitHub -, fetchYarnDeps -, testers -, writeText -, runCommand -, blade-formatter +{ + lib, + mkYarnPackage, + fetchFromGitHub, + fetchYarnDeps, + testers, + writeText, + runCommand, + blade-formatter, }: mkYarnPackage rec { @@ -40,15 +41,17 @@ mkYarnPackage rec { Hello world! @endif ''; - actual = runCommand "actual" - { - nativeBuildInputs = [ blade-formatter ]; - base = writeText "base" '' - @if( true ) Hello world! @endif + actual = + runCommand "actual" + { + nativeBuildInputs = [ blade-formatter ]; + base = writeText "base" '' + @if( true ) Hello world! @endif + ''; + } + '' + blade-formatter $base > $out ''; - } '' - blade-formatter $base > $out - ''; }; }; diff --git a/pkgs/cargo-checkmate.nix b/pkgs/cargo-checkmate.nix index 0620667..a85ff80 100644 --- a/pkgs/cargo-checkmate.nix +++ b/pkgs/cargo-checkmate.nix @@ -1,11 +1,12 @@ -{ lib -, rustPlatform -, fetchFromGitHub -, pkg-config -, openssl -, zlib -, stdenv -, Security ? null +{ + lib, + rustPlatform, + fetchFromGitHub, + pkg-config, + openssl, + zlib, + stdenv, + Security ? null, }: rustPlatform.buildRustPackage rec { @@ -22,9 +23,7 @@ rustPlatform.buildRustPackage rec { cargoSha256 = "sha256-hOB84u55ishahIFSqBnqccqH3OlC9J8mCYzsd23jTyA="; nativeBuildInputs = [ pkg-config ]; - buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ - Security - ]; + buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security ]; meta = with lib; { description = "Check all the things."; diff --git a/pkgs/default.nix b/pkgs/default.nix index 0fdc3eb..00600fc 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -1,7 +1,8 @@ # Custom packages, that can be defined similarly to ones from nixpkgs # You can build them using 'nix build .#example' or (legacy) 'nix-build -A example' -{ pkgs, inputs }: { +{ pkgs, inputs }: +{ blade-formatter = pkgs.callPackage ./blade-formatter { }; cargo-checkmate = pkgs.callPackage ./cargo-checkmate.nix { }; lipsum = pkgs.callPackage ./lipsum.nix { inherit inputs; }; diff --git a/pkgs/emmet-cli.nix b/pkgs/emmet-cli.nix index c7fce2e..043aff6 100644 --- a/pkgs/emmet-cli.nix +++ b/pkgs/emmet-cli.nix @@ -1,6 +1,7 @@ -{ lib -, buildNpmPackage -, fetchFromGitHub +{ + lib, + buildNpmPackage, + fetchFromGitHub, }: buildNpmPackage rec { diff --git a/pkgs/lipsum.nix b/pkgs/lipsum.nix index e1dabe5..427f04e 100644 --- a/pkgs/lipsum.nix +++ b/pkgs/lipsum.nix @@ -11,9 +11,7 @@ pkgs.stdenv.mkDerivation rec { wrapGAppsHook ]; - makeFlags = [ - "PRG=${pname}" - ]; + makeFlags = [ "PRG=${pname}" ]; installPhase = '' install -Dm 755 "$pname" "$out/bin/$pname" @@ -21,4 +19,3 @@ pkgs.stdenv.mkDerivation rec { glib-compile-schemas "$out/share/glib-2.0/schemas/" ''; } - diff --git a/scripts/default.nix b/scripts/default.nix index bc2ac3d..f509e37 100644 --- a/scripts/default.nix +++ b/scripts/default.nix @@ -1,59 +1,134 @@ -(final: prev: -with prev; -let - import_script = (_: path: import (path) { inherit pkgs lib; }); - create_script = (name: text: runtimeInputs: - let - script_body = pkgs.writeTextFile { - inherit name; - executable = true; - text = '' - ${builtins.readFile text} - ''; - }; - in - (pkgs.writeShellApplication { - inherit name runtimeInputs; - text = ''exec ${script_body} "$@"''; - checkPhase = ""; - })); - create_scripts = - lib.mapAttrs (name: deps: create_script name ./${name} deps); +( + final: prev: + with prev; + let + import_script = (_: path: import (path) { inherit pkgs lib; }); + create_script = ( + name: text: runtimeInputs: + let + script_body = pkgs.writeTextFile { + inherit name; + executable = true; + text = '' + ${builtins.readFile text} + ''; + }; + in + (pkgs.writeShellApplication { + inherit name runtimeInputs; + text = ''exec ${script_body} "$@"''; + checkPhase = ""; + }) + ); + create_scripts = lib.mapAttrs (name: deps: create_script name ./${name} deps); - pass = pkgs.pass.withExtensions (ex: with ex; [ - pass-otp - ]); -in -create_scripts - { + pass = pkgs.pass.withExtensions (ex: with ex; [ pass-otp ]); + in + create_scripts { br = [ ]; - bmenu = [ final.bemenu final.dhist fish j4-dmenu-desktop jq sway ]; - down_meme = [ wl-clipboard yt-dlp libnotify ]; - wl-copy-file = [ wl-clipboard fish ]; + bmenu = [ + final.bemenu + final.dhist + fish + j4-dmenu-desktop + jq + sway + ]; + down_meme = [ + wl-clipboard + yt-dlp + libnotify + ]; + wl-copy-file = [ + wl-clipboard + fish + ]; _diffr = [ diffr ]; _thunar-terminal = [ final.terminal ]; _sway_idle_toggle = [ final.swayidle ]; - kak-pager = [ fish final._diffr ]; + kak-pager = [ + fish + final._diffr + ]; kak-man-pager = [ final.kak-pager ]; - helix-pager = [ fish final._diffr ]; + helix-pager = [ + fish + final._diffr + ]; helix-man-pager = [ final.helix-pager ]; - musmenu = [ mpc-cli final.wdmenu trash-cli xdg-user-dirs libnotify sd wl-clipboard ]; - showkeys = - [ ]; # This will not work unless programs.wshowkeys is enabled systemwide + musmenu = [ + mpc-cli + final.wdmenu + trash-cli + xdg-user-dirs + libnotify + sd + wl-clipboard + ]; + showkeys = [ ]; # This will not work unless programs.wshowkeys is enabled systemwide terminal = [ alacritty ]; playerctl-status = [ playerctl ]; - pass-export = [ pass2csv gnupg ]; - wpass = [ final.wdmenu fd pass sd wl-clipboard wtype ]; - screenshotsh = - [ capitaine-cursors grim slurp jq sway wl-clipboard xdg-user-dirs ]; - volumesh = [ pulseaudio libnotify ]; - pulse_sink = [ pulseaudio pamixer final.wdmenu ]; - color_picker = [ grim slurp wl-clipboard libnotify imagemagick ]; - dzadd = [ procps libnotify final.wdmenu jq mpv pqiv python3Packages.deemix mpc-cli final.mpdDup ]; - mpdDup = [ mpc-cli perl ]; - readQrCode = [ grim zbar wl-clipboard ]; - } // lib.mapAttrs import_script { - wdmenu = ./wdmenu.nix; - wlauncher = ./wlauncher.nix; - _gpg-unlock = ./_gpg-unlock.nix; -}) + pass-export = [ + pass2csv + gnupg + ]; + wpass = [ + final.wdmenu + fd + pass + sd + wl-clipboard + wtype + ]; + screenshotsh = [ + capitaine-cursors + grim + slurp + jq + sway + wl-clipboard + xdg-user-dirs + ]; + volumesh = [ + pulseaudio + libnotify + ]; + pulse_sink = [ + pulseaudio + pamixer + final.wdmenu + ]; + color_picker = [ + grim + slurp + wl-clipboard + libnotify + imagemagick + ]; + dzadd = [ + procps + libnotify + final.wdmenu + jq + mpv + pqiv + python3Packages.deemix + mpc-cli + final.mpdDup + ]; + mpdDup = [ + mpc-cli + perl + ]; + readQrCode = [ + grim + zbar + wl-clipboard + ]; + } + // lib.mapAttrs import_script { + wdmenu = ./wdmenu.nix; + wlauncher = ./wlauncher.nix; + _gpg-unlock = ./_gpg-unlock.nix; + } +) diff --git a/secrets/secrets.nix b/secrets/secrets.nix index 90de405..368b837 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -2,8 +2,12 @@ let main_ssh_public_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCxR/w+38b2lX90yNBqhq3mUmkn1WGu6GAPhN1tVp2ZjYRJNV/+5gWCnTtOWYtDx35HmK/spQ2Qy8X9ttkzORa24fysNx1Iqn/TiXhD7eIJjbGPnrOpIKTkW5/uB3SD/P5NBSa06//BaqJU4sBlG79hoXRpod052hQtdpTVDiMCIV+iboWPKqopmJJfWdBtVnHXs9rep0htPRExxGslImFk7Z6xjcaHyCpIQZPlOGf+sGsmUU7jRqzvZFV8ucIdbnAlMHrU4pepNFhuraESyZVTa/bi9sw0iozXp5Q5+5thMebEslmT1Z771kI4sieDy+O4r8c0Sx2/VY1UAzcpq1faggc3YB01MTh+tiEC6xdMvZLrQGL1NBWjHleMyL53GU5ERluC0vXJF3Hv3BGGBDfXWbrEm5n06DHr2apRVJGC0LwiQ7Woud1X4V4X1pKSusxCVMjT2lmcOwV6YhKhB2sowJc1OdMx4+tL0UWE+YKSZgBHfolwk6ml0F4EO9nnUHc= lelgenio@i15"; in { - "rainbow-gitlab-runner-thoreb-itinerario-registrationConfigFile.age".publicKeys = [ main_ssh_public_key ]; - "monolith-gitlab-runner-thoreb-itinerario-registrationConfigFile.age".publicKeys = [ main_ssh_public_key ]; + "rainbow-gitlab-runner-thoreb-itinerario-registrationConfigFile.age".publicKeys = [ + main_ssh_public_key + ]; + "monolith-gitlab-runner-thoreb-itinerario-registrationConfigFile.age".publicKeys = [ + main_ssh_public_key + ]; "gitlab-runner-thoreb-telemetria-registrationConfigFile.age".publicKeys = [ main_ssh_public_key ]; "monolith-forgejo-runner-token.age".publicKeys = [ main_ssh_public_key ]; "lelgenio-cachix.age".publicKeys = [ main_ssh_public_key ]; diff --git a/system/bluetooth.nix b/system/bluetooth.nix index 20eb72e..1bcea1f 100644 --- a/system/bluetooth.nix +++ b/system/bluetooth.nix @@ -1,4 +1,5 @@ -{ pkgs, ... }: { +{ pkgs, ... }: +{ services.blueman.enable = true; hardware.bluetooth = { enable = true; @@ -8,7 +9,9 @@ # Discoverable = true; AlwaysPairable = true; }; - Policy = { AutoEnable = true; }; + Policy = { + AutoEnable = true; + }; }; }; } diff --git a/system/boot.nix b/system/boot.nix index 25e9a11..81d838e 100644 --- a/system/boot.nix +++ b/system/boot.nix @@ -1,4 +1,11 @@ -{ config, pkgs, lib, inputs, ... }: { +{ + config, + pkgs, + lib, + inputs, + ... +}: +{ console = { font = "${pkgs.terminus_font}/share/consolefonts/ter-120n.psf.gz"; packages = [ pkgs.terminus_font ]; @@ -38,9 +45,7 @@ enable = true; theme = lib.mkIf (pkgs.uservars.desktop == "sway") "red_loader"; themePackages = with pkgs; [ - (adi1090x-plymouth-themes.override { - selected_themes = [ "red_loader" ]; - }) + (adi1090x-plymouth-themes.override { selected_themes = [ "red_loader" ]; }) ]; }; }; diff --git a/system/cachix.nix b/system/cachix.nix index 07af177..7ff9b29 100644 --- a/system/cachix.nix +++ b/system/cachix.nix @@ -1,4 +1,10 @@ -{ pkgs, lib, config, ... }: { +{ + pkgs, + lib, + config, + ... +}: +{ services.cachix-watch-store = { enable = true; cacheName = "lelgenio"; diff --git a/system/configuration.nix b/system/configuration.nix index 130ca7d..8054fa9 100644 --- a/system/configuration.nix +++ b/system/configuration.nix @@ -1,7 +1,13 @@ # Edit this configuration file to define what should be installed on # your system. Help is available in the configuration.nix(5) man page # and in the NixOS manual (accessible by running ‘nixos-help’). -{ config, pkgs, inputs, ... }: { +{ + config, + pkgs, + inputs, + ... +}: +{ imports = [ ./gamemode.nix ./cachix.nix diff --git a/system/containers.nix b/system/containers.nix index c2c2941..377647d 100644 --- a/system/containers.nix +++ b/system/containers.nix @@ -1,4 +1,5 @@ -{ pkgs, ... }: { +{ pkgs, ... }: +{ services.flatpak.enable = true; virtualisation.docker.enable = true; virtualisation.docker.autoPrune.enable = true; diff --git a/system/fonts.nix b/system/fonts.nix index e6d4ccd..d8bff5a 100644 --- a/system/fonts.nix +++ b/system/fonts.nix @@ -1,4 +1,5 @@ -{ pkgs, ... }: { +{ pkgs, ... }: +{ fonts.enableDefaultPackages = true; fonts.packages = with pkgs; [ noto-fonts diff --git a/system/gamemode.nix b/system/gamemode.nix index d9445ea..92207cd 100644 --- a/system/gamemode.nix +++ b/system/gamemode.nix @@ -1,8 +1,16 @@ -{ config, pkgs, inputs, ... }: { +{ + config, + pkgs, + inputs, + ... +}: +{ programs.gamemode.enable = true; programs.gamemode.enableRenice = true; programs.gamemode.settings = { - general = { renice = 10; }; + general = { + renice = 10; + }; # Warning: GPU optimisations have the potential to damage hardware gpu = { diff --git a/system/gitlab-runner.nix b/system/gitlab-runner.nix index 1cc46a7..335bc5a 100644 --- a/system/gitlab-runner.nix +++ b/system/gitlab-runner.nix @@ -1,40 +1,52 @@ -{ pkgs, lib, ... }: { - mkNixRunner = registrationConfigFile: with lib; rec { - # File should contain at least these two variables: - # `CI_SERVER_URL` - # `REGISTRATION_TOKEN` - inherit registrationConfigFile; # 2 - dockerImage = "alpine:3.18.2"; - dockerAllowedImages = [ dockerImage ]; - dockerVolumes = [ - "/etc/nix/nix.conf:/etc/nix/nix.conf:ro" - "/nix/store:/nix/store:ro" - "/nix/var/nix/db:/nix/var/nix/db:ro" - "/nix/var/nix/daemon-socket:/nix/var/nix/daemon-socket:ro" - ]; - dockerDisableCache = true; - preBuildScript = pkgs.writeScript "setup-container" '' - mkdir -p -m 0755 /nix/var/log/nix/drvs - mkdir -p -m 0755 /nix/var/nix/gcroots - mkdir -p -m 0755 /nix/var/nix/profiles - mkdir -p -m 0755 /nix/var/nix/temproots - mkdir -p -m 0755 /nix/var/nix/userpool - mkdir -p -m 1777 /nix/var/nix/gcroots/per-user - mkdir -p -m 1777 /nix/var/nix/profiles/per-user - mkdir -p -m 0755 /nix/var/nix/profiles/per-user/root - mkdir -p -m 0700 "$HOME/.nix-defexpr" +{ pkgs, lib, ... }: +{ + mkNixRunner = + registrationConfigFile: with lib; rec { + # File should contain at least these two variables: + # `CI_SERVER_URL` + # `REGISTRATION_TOKEN` + inherit registrationConfigFile; # 2 + dockerImage = "alpine:3.18.2"; + dockerAllowedImages = [ dockerImage ]; + dockerVolumes = [ + "/etc/nix/nix.conf:/etc/nix/nix.conf:ro" + "/nix/store:/nix/store:ro" + "/nix/var/nix/db:/nix/var/nix/db:ro" + "/nix/var/nix/daemon-socket:/nix/var/nix/daemon-socket:ro" + ]; + dockerDisableCache = true; + preBuildScript = pkgs.writeScript "setup-container" '' + mkdir -p -m 0755 /nix/var/log/nix/drvs + mkdir -p -m 0755 /nix/var/nix/gcroots + mkdir -p -m 0755 /nix/var/nix/profiles + mkdir -p -m 0755 /nix/var/nix/temproots + mkdir -p -m 0755 /nix/var/nix/userpool + mkdir -p -m 1777 /nix/var/nix/gcroots/per-user + mkdir -p -m 1777 /nix/var/nix/profiles/per-user + mkdir -p -m 0755 /nix/var/nix/profiles/per-user/root + mkdir -p -m 0700 "$HOME/.nix-defexpr" - . ${pkgs.nix}/etc/profile.d/nix.sh + . ${pkgs.nix}/etc/profile.d/nix.sh - ${pkgs.nix}/bin/nix-env -i ${concatStringsSep " " (with pkgs; [ nix cacert git openssh ])} - ''; - environmentVariables = { - ENV = "/etc/profile"; - USER = "root"; - NIX_REMOTE = "daemon"; - PATH = "/nix/var/nix/profiles/default/bin:/nix/var/nix/profiles/default/sbin:/bin:/sbin:/usr/bin:/usr/sbin"; - NIX_SSL_CERT_FILE = "/nix/var/nix/profiles/default/etc/ssl/certs/ca-bundle.crt"; + ${pkgs.nix}/bin/nix-env -i ${ + concatStringsSep " " ( + with pkgs; + [ + nix + cacert + git + openssh + ] + ) + } + ''; + environmentVariables = { + ENV = "/etc/profile"; + USER = "root"; + NIX_REMOTE = "daemon"; + PATH = "/nix/var/nix/profiles/default/bin:/nix/var/nix/profiles/default/sbin:/bin:/sbin:/usr/bin:/usr/sbin"; + NIX_SSL_CERT_FILE = "/nix/var/nix/profiles/default/etc/ssl/certs/ca-bundle.crt"; + }; + tagList = [ "nix" ]; }; - tagList = [ "nix" ]; - }; } diff --git a/system/gnome.nix b/system/gnome.nix index cb8c106..72b98c5 100644 --- a/system/gnome.nix +++ b/system/gnome.nix @@ -1,7 +1,8 @@ # Edit this configuration file to define what should be installed on # your system. Help is available in the configuration.nix(5) man page # and in the NixOS manual (accessible by running ‘nixos-help’). -{ config, pkgs, ... }: { +{ config, pkgs, ... }: +{ # Enable the X11 windowing system. services.xserver.enable = true; # Enable the GNOME Desktop Environment. @@ -19,11 +20,14 @@ }; # services.xserver.displayManager.autologin.user = "lelgenio"; - environment.systemPackages = with pkgs; with gnome; [ - gnome-tweaks - dconf-editor + environment.systemPackages = + with pkgs; + with gnome; + [ + gnome-tweaks + dconf-editor - chrome-gnome-shell - gnomeExtensions.quick-settings-audio-devices-hider - ]; + chrome-gnome-shell + gnomeExtensions.quick-settings-audio-devices-hider + ]; } diff --git a/system/greetd.nix b/system/greetd.nix index 4c6e31a..68f0cf8 100644 --- a/system/greetd.nix +++ b/system/greetd.nix @@ -1,6 +1,17 @@ -{ lib, pkgs, config, ... }: +{ + lib, + pkgs, + config, + ... +}: let - inherit (pkgs.uservars) key accent font theme desktop; + inherit (pkgs.uservars) + key + accent + font + theme + desktop + ; cfg = config.login-manager.greetd; in diff --git a/system/kde.nix b/system/kde.nix index 66aa2a2..c5ef277 100644 --- a/system/kde.nix +++ b/system/kde.nix @@ -1,4 +1,5 @@ -{ config, pkgs, ... }: { +{ config, pkgs, ... }: +{ # Enable the X11 windowing system. services.xserver.enable = true; # Enable the KDE Desktop Environment. diff --git a/system/locale.nix b/system/locale.nix index bb344c7..07e7175 100644 --- a/system/locale.nix +++ b/system/locale.nix @@ -1,4 +1,5 @@ -{ pkgs, config, ... }: { +{ pkgs, config, ... }: +{ time.timeZone = "America/Sao_Paulo"; environment.variables.TZ = config.time.timeZone; i18n.defaultLocale = "pt_BR.utf8"; diff --git a/system/media-packages.nix b/system/media-packages.nix index e72ea0a..818b78b 100644 --- a/system/media-packages.nix +++ b/system/media-packages.nix @@ -1,6 +1,13 @@ -{ config, pkgs, lib, ... }: -let cfg = config.packages.media-packages; -in { +{ + config, + pkgs, + lib, + ... +}: +let + cfg = config.packages.media-packages; +in +{ options.packages.media-packages = { enable = lib.mkEnableOption "media packages"; }; diff --git a/system/monolith-forgejo-runner.nix b/system/monolith-forgejo-runner.nix index ee07410..fa2b3c6 100644 --- a/system/monolith-forgejo-runner.nix +++ b/system/monolith-forgejo-runner.nix @@ -1,4 +1,5 @@ -{ pkgs, config, ... }: { +{ pkgs, config, ... }: +{ services.gitea-actions-runner = { package = pkgs.forgejo-actions-runner; instances.default = { diff --git a/system/monolith-gitlab-runner.nix b/system/monolith-gitlab-runner.nix index 37b16dd..8e419d1 100644 --- a/system/monolith-gitlab-runner.nix +++ b/system/monolith-gitlab-runner.nix @@ -1,4 +1,9 @@ -{ config, pkgs, lib, ... }: +{ + config, + pkgs, + lib, + ... +}: let inherit (pkgs.callPackage ./gitlab-runner.nix { }) mkNixRunner; in @@ -15,7 +20,8 @@ in # dockerPrivileged = true; # }; thoreb_builder = { - registrationConfigFile = config.age.secrets.monolith-gitlab-runner-thoreb-itinerario-registrationConfigFile.path; + registrationConfigFile = + config.age.secrets.monolith-gitlab-runner-thoreb-itinerario-registrationConfigFile.path; dockerImage = "debian"; dockerPrivileged = true; }; diff --git a/system/network.nix b/system/network.nix index c8ebdd9..aee7518 100644 --- a/system/network.nix +++ b/system/network.nix @@ -1,4 +1,5 @@ -{ pkgs, ... }: { +{ pkgs, ... }: +{ # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. # Configure network proxy if necessary # networking.proxy.default = "http://user:password@proxy:port/"; diff --git a/system/nix-serve.nix b/system/nix-serve.nix index 0bd49c2..6cc7161 100644 --- a/system/nix-serve.nix +++ b/system/nix-serve.nix @@ -1,4 +1,10 @@ -{ config, pkgs, lib, ... }: { +{ + config, + pkgs, + lib, + ... +}: +{ services.nix-serve = { enable = true; secretKeyFile = config.age.secrets.monolith-nix-serve-privkey.path; diff --git a/system/nix.nix b/system/nix.nix index 38b2eb9..18ac258 100644 --- a/system/nix.nix +++ b/system/nix.nix @@ -1,7 +1,13 @@ -{ lib, config, pkgs, inputs, ... }: +{ + lib, + config, + pkgs, + inputs, + ... +}: let - collectFlakeInputs = input: - [ input ] ++ lib.concatMap collectFlakeInputs (builtins.attrValues (input.inputs or { })); + collectFlakeInputs = + input: [ input ] ++ lib.concatMap collectFlakeInputs (builtins.attrValues (input.inputs or { })); in { system.extraDependencies = collectFlakeInputs inputs.self; @@ -17,7 +23,10 @@ in optimise.automatic = true; settings = { auto-optimise-store = true; - trusted-users = [ "root" "@wheel" ]; + trusted-users = [ + "root" + "@wheel" + ]; substituters = [ "https://cache.nixos.org" "https://nix-community.cachix.org" diff --git a/system/rainbow-gitlab-runner.nix b/system/rainbow-gitlab-runner.nix index 2cae621..aa177de 100644 --- a/system/rainbow-gitlab-runner.nix +++ b/system/rainbow-gitlab-runner.nix @@ -1,4 +1,9 @@ -{ config, pkgs, lib, ... }: +{ + config, + pkgs, + lib, + ... +}: let inherit (pkgs.callPackage ./gitlab-runner.nix { }) mkNixRunner; in @@ -15,7 +20,8 @@ in # dockerPrivileged = true; # }; thoreb_builder = { - registrationConfigFile = config.age.secrets.rainbow-gitlab-runner-thoreb-itinerario-registrationConfigFile.path; + registrationConfigFile = + config.age.secrets.rainbow-gitlab-runner-thoreb-itinerario-registrationConfigFile.path; dockerImage = "debian"; dockerPrivileged = true; }; diff --git a/system/secrets.nix b/system/secrets.nix index c94581c..ca11fb4 100644 --- a/system/secrets.nix +++ b/system/secrets.nix @@ -1,18 +1,13 @@ -{ pkgs, ... }: { +{ pkgs, ... }: +{ age = { identityPaths = [ "/root/.ssh/id_rsa" ]; secrets.lelgenio-cachix.file = ../secrets/lelgenio-cachix.age; - secrets.monolith-gitlab-runner-thoreb-itinerario-registrationConfigFile.file = - ../secrets/monolith-gitlab-runner-thoreb-itinerario-registrationConfigFile.age; - secrets.gitlab-runner-thoreb-telemetria-registrationConfigFile.file = - ../secrets/gitlab-runner-thoreb-telemetria-registrationConfigFile.age; - secrets.monolith-forgejo-runner-token.file = - ../secrets/monolith-forgejo-runner-token.age; - secrets.rainbow-gitlab-runner-thoreb-itinerario-registrationConfigFile.file = - ../secrets/rainbow-gitlab-runner-thoreb-itinerario-registrationConfigFile.age; - secrets.monolith-nix-serve-privkey.file = - ../secrets/monolith-nix-serve-privkey.age; - secrets.phantom-forgejo-mailer-password.file = - ../secrets/phantom-forgejo-mailer-password.age; + secrets.monolith-gitlab-runner-thoreb-itinerario-registrationConfigFile.file = ../secrets/monolith-gitlab-runner-thoreb-itinerario-registrationConfigFile.age; + secrets.gitlab-runner-thoreb-telemetria-registrationConfigFile.file = ../secrets/gitlab-runner-thoreb-telemetria-registrationConfigFile.age; + secrets.monolith-forgejo-runner-token.file = ../secrets/monolith-forgejo-runner-token.age; + secrets.rainbow-gitlab-runner-thoreb-itinerario-registrationConfigFile.file = ../secrets/rainbow-gitlab-runner-thoreb-itinerario-registrationConfigFile.age; + secrets.monolith-nix-serve-privkey.file = ../secrets/monolith-nix-serve-privkey.age; + secrets.phantom-forgejo-mailer-password.file = ../secrets/phantom-forgejo-mailer-password.age; }; } diff --git a/system/sound.nix b/system/sound.nix index 3cdbf58..8ef55ab 100644 --- a/system/sound.nix +++ b/system/sound.nix @@ -1,4 +1,5 @@ -{ pkgs, ... }: { +{ pkgs, ... }: +{ sound.enable = true; hardware.pulseaudio.enable = false; services.pipewire = { diff --git a/system/specialisation.nix b/system/specialisation.nix index c0e1498..23b410f 100644 --- a/system/specialisation.nix +++ b/system/specialisation.nix @@ -1,10 +1,7 @@ -{ pkgs, ... }: { +{ pkgs, ... }: +{ specialisation.dark-theme.configuration = { - nixpkgs.overlays = [ - (final: prev: { - uservars = prev.uservars; - }) - ]; + nixpkgs.overlays = [ (final: prev: { uservars = prev.uservars; }) ]; }; specialisation.light-theme.configuration = { nixpkgs.overlays = [ diff --git a/system/steam.nix b/system/steam.nix index ce94c3d..ddc33c8 100644 --- a/system/steam.nix +++ b/system/steam.nix @@ -1,17 +1,27 @@ -{ config, pkgs, inputs, ... }: { +{ + config, + pkgs, + inputs, + ... +}: +{ programs.steam.enable = true; programs.steam.package = pkgs.steam.override { - extraLibraries = pkgs: with config.hardware.opengl; - if pkgs.hostPlatform.is64bit - then [ package ] ++ extraPackages - else [ package32 ] ++ extraPackages32; + extraLibraries = + pkgs: + with config.hardware.opengl; + if pkgs.hostPlatform.is64bit then + [ package ] ++ extraPackages + else + [ package32 ] ++ extraPackages32; - extraPkgs = pkgs: with pkgs; [ - capitaine-cursors - bibata-cursors - mangohud - xdg-user-dirs - ]; + extraPkgs = + pkgs: with pkgs; [ + capitaine-cursors + bibata-cursors + mangohud + xdg-user-dirs + ]; }; environment.systemPackages = with pkgs; [ protontricks diff --git a/system/thunar.nix b/system/thunar.nix index 5a14448..fcb9e3b 100644 --- a/system/thunar.nix +++ b/system/thunar.nix @@ -1,4 +1,10 @@ -{ config, pkgs, inputs, ... }: { +{ + config, + pkgs, + inputs, + ... +}: +{ programs.thunar = { enable = true; plugins = with pkgs.xfce; [ @@ -12,17 +18,15 @@ services.tumbler.enable = true; environment.systemPackages = [ - ( - pkgs.writeTextFile { - name = "thumbs"; - text = '' - [Thumbnailer Entry] - TryExec=unzip - Exec=sh -c "${pkgs.unzip}/bin/unzip -p %i preview.png > %o" - MimeType=application/x-krita; - ''; - destination = "/share/thumbnailers/kra.thumbnailer"; - } - ) + (pkgs.writeTextFile { + name = "thumbs"; + text = '' + [Thumbnailer Entry] + TryExec=unzip + Exec=sh -c "${pkgs.unzip}/bin/unzip -p %i preview.png > %o" + MimeType=application/x-krita; + ''; + destination = "/share/thumbnailers/kra.thumbnailer"; + }) ]; } diff --git a/system/users.nix b/system/users.nix index 2334897..ead5528 100644 --- a/system/users.nix +++ b/system/users.nix @@ -1,4 +1,5 @@ -{ pkgs, ... }: { +{ pkgs, ... }: +{ security.sudo.wheelNeedsPassword = false; # services.getty.autologinUser = "lelgenio"; @@ -10,7 +11,15 @@ isNormalUser = true; description = "Leonardo Eugênio"; hashedPassword = "$y$j9T$0e/rczjOVCy7PuwC3pG0V/$gTHZhfO4wQSlFvbDyfghbCnGI2uDI0a52zSrQ/yOA5A"; - extraGroups = [ "networkmanager" "wheel" "docker" "adbusers" "bluetooth" "corectrl" "vboxusers" ]; + extraGroups = [ + "networkmanager" + "wheel" + "docker" + "adbusers" + "bluetooth" + "corectrl" + "vboxusers" + ]; shell = pkgs.fish; openssh.authorizedKeys.keys = [ "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCxR/w+38b2lX90yNBqhq3mUmkn1WGu6GAPhN1tVp2ZjYRJNV/+5gWCnTtOWYtDx35HmK/spQ2Qy8X9ttkzORa24fysNx1Iqn/TiXhD7eIJjbGPnrOpIKTkW5/uB3SD/P5NBSa06//BaqJU4sBlG79hoXRpod052hQtdpTVDiMCIV+iboWPKqopmJJfWdBtVnHXs9rep0htPRExxGslImFk7Z6xjcaHyCpIQZPlOGf+sGsmUU7jRqzvZFV8ucIdbnAlMHrU4pepNFhuraESyZVTa/bi9sw0iozXp5Q5+5thMebEslmT1Z771kI4sieDy+O4r8c0Sx2/VY1UAzcpq1faggc3YB01MTh+tiEC6xdMvZLrQGL1NBWjHleMyL53GU5ERluC0vXJF3Hv3BGGBDfXWbrEm5n06DHr2apRVJGC0LwiQ7Woud1X4V4X1pKSusxCVMjT2lmcOwV6YhKhB2sowJc1OdMx4+tL0UWE+YKSZgBHfolwk6ml0F4EO9nnUHc= lelgenio@i15" diff --git a/user/alacritty.nix b/user/alacritty.nix index 8c7ec22..ae2e2fb 100644 --- a/user/alacritty.nix +++ b/user/alacritty.nix @@ -1,6 +1,16 @@ -{ config, pkgs, lib, ... }: +{ + config, + pkgs, + lib, + ... +}: let - inherit (pkgs.uservars) key theme accent font; + inherit (pkgs.uservars) + key + theme + accent + font + ; inherit (theme) color; in { @@ -10,7 +20,9 @@ in settings = { font = { size = font.size.small; - normal = { family = font.mono; }; + normal = { + family = font.mono; + }; }; colors = { primary = { @@ -40,31 +52,34 @@ in hints = { alphabet = key.hints; - enabled = [{ - regex = - let - mimes = - "(mailto:|gemini:|gopher:|https:|http:|news:|file:|git:|ssh:|ftp:)"; - # I fucking hate regex, look at this bullshit - delimiters = ''^\\u0000-\\u001F\\u007F-\\u009F<>"\\s{-}\\^⟨⟩`''; - # Kakoune uses these characters to represent whitespace, - # but alacritty doesn't know about them - whitespace_characters = ''¬·→''; - in - "${mimes}[${delimiters}${whitespace_characters}]+"; - command = "xdg-open"; - post_processing = true; - mouse = { - enabled = true; - mods = "None"; - }; - binding = { - key = "U"; - mods = "Control|Shift"; - }; - }]; + enabled = [ + { + regex = + let + mimes = "(mailto:|gemini:|gopher:|https:|http:|news:|file:|git:|ssh:|ftp:)"; + # I fucking hate regex, look at this bullshit + delimiters = ''^\\u0000-\\u001F\\u007F-\\u009F<>"\\s{-}\\^⟨⟩`''; + # Kakoune uses these characters to represent whitespace, + # but alacritty doesn't know about them + whitespace_characters = ''¬·→''; + in + "${mimes}[${delimiters}${whitespace_characters}]+"; + command = "xdg-open"; + post_processing = true; + mouse = { + enabled = true; + mods = "None"; + }; + binding = { + key = "U"; + mods = "Control|Shift"; + }; + } + ]; + }; + mouse = { + hide_when_typing = true; }; - mouse = { hide_when_typing = true; }; keyboard.bindings = [ { key = lib.toUpper key.up; @@ -141,7 +156,9 @@ in }; }; - home.sessionVariables = { TERMINAL = "alacritty"; }; + home.sessionVariables = { + TERMINAL = "alacritty"; + }; # Look at this fucking bullshit: # https://gitlab.gnome.org/GNOME/glib/-/blob/20c4fcb2a7246a2b205649eae3ebda4296217afc/gio/gdesktopappinfo.c#L2702 diff --git a/user/bmenu.nix b/user/bmenu.nix index 047da54..38c36c6 100644 --- a/user/bmenu.nix +++ b/user/bmenu.nix @@ -1,6 +1,17 @@ -{ config, pkgs, lib, inputs, ... }: +{ + config, + pkgs, + lib, + inputs, + ... +}: let - inherit (pkgs.uservars) key theme accent font; + inherit (pkgs.uservars) + key + theme + accent + font + ; inherit (theme) color; in { diff --git a/user/chat.nix b/user/chat.nix index 34ddd84..f0987ed 100644 --- a/user/chat.nix +++ b/user/chat.nix @@ -1,4 +1,11 @@ -{ config, pkgs, lib, inputs, ... }: { +{ + config, + pkgs, + lib, + inputs, + ... +}: +{ wayland.windowManager.sway = { extraConfig = '' exec thunderbird diff --git a/user/controller.nix b/user/controller.nix index 73ab483..6a756df 100644 --- a/user/controller.nix +++ b/user/controller.nix @@ -1,4 +1,11 @@ -{ config, pkgs, lib, inputs, ... }: { +{ + config, + pkgs, + lib, + inputs, + ... +}: +{ xdg.desktopEntries = { connect-controller = { name = "Connect Controller"; diff --git a/user/desktop-entries.nix b/user/desktop-entries.nix index eaa4c93..1b809d3 100644 --- a/user/desktop-entries.nix +++ b/user/desktop-entries.nix @@ -1,4 +1,10 @@ -{ config, pkgs, lib, ... }: { +{ + config, + pkgs, + lib, + ... +}: +{ xdg.desktopEntries = { kak = { name = "Kakoune"; @@ -8,7 +14,10 @@ terminal = true; type = "Application"; icon = "kak.desktop"; - categories = [ "Utility" "TextEditor" ]; + categories = [ + "Utility" + "TextEditor" + ]; startupNotify = true; mimeType = [ "text/english" @@ -40,10 +49,15 @@ terminal = true; type = "Application"; icon = "mutt"; - categories = [ "Network" "Email" ]; + categories = [ + "Network" + "Email" + ]; startupNotify = false; mimeType = [ "x-scheme-handler/mailto" ]; - settings = { Keywords = "Mail;E-mail;"; }; + settings = { + Keywords = "Mail;E-mail;"; + }; }; down_meme = { name = "DownMeme"; diff --git a/user/firefox.nix b/user/firefox.nix index b60f808..4c442e3 100644 --- a/user/firefox.nix +++ b/user/firefox.nix @@ -1,6 +1,16 @@ -{ config, pkgs, lib, font, ... }: -let inherit (pkgs.uservars) desktop browser; - bugfixedFirefox = pkgs.firefox-esr-unwrapped // { requireSigning = false; allowAddonSideload = true; }; +{ + config, + pkgs, + lib, + font, + ... +}: +let + inherit (pkgs.uservars) desktop browser; + bugfixedFirefox = pkgs.firefox-esr-unwrapped // { + requireSigning = false; + allowAddonSideload = true; + }; in { config = { diff --git a/user/fish/default.nix b/user/fish/default.nix index 913e514..07ba4c2 100644 --- a/user/fish/default.nix +++ b/user/fish/default.nix @@ -1,6 +1,21 @@ -{ config, pkgs, lib, ... }: -let inherit (pkgs.uservars) key theme color accent font editor desktop; -in { +{ + config, + pkgs, + lib, + ... +}: +let + inherit (pkgs.uservars) + key + theme + color + accent + font + editor + desktop + ; +in +{ config = { programs.fish = { enable = true; @@ -34,10 +49,12 @@ in { }; shellAbbrs = { off = "shutdown now"; - v = { - "helix" = "hx"; - "kakoune" = "kak"; - }.${editor}; + v = + { + "helix" = "hx"; + "kakoune" = "kak"; + } + .${editor}; ns = "nix develop --command $SHELL"; wcf = "wl-copy-file"; c = "cargo"; @@ -64,7 +81,9 @@ in { gr = "cd (git root)"; gri = "git rebase --interactive FETCH_HEAD"; }; - functions = { fish_greeting = ""; }; + functions = { + fish_greeting = ""; + }; }; programs = { zoxide.enable = true; @@ -85,13 +104,18 @@ in { }; # programs.command-not-found.enable = true; programs.nix-index.enable = true; - home.packages = (with pkgs; with fishPlugins;[ - trash-cli - wl-copy-file - foreign-env - ] ++ (lib.optionals (desktop == "sway") [ - async-prompt - done - ])); + home.packages = ( + with pkgs; + with fishPlugins; + [ + trash-cli + wl-copy-file + foreign-env + ] + ++ (lib.optionals (desktop == "sway") [ + async-prompt + done + ]) + ); }; } diff --git a/user/fzf.nix b/user/fzf.nix index fc7856a..a4113fa 100644 --- a/user/fzf.nix +++ b/user/fzf.nix @@ -1,6 +1,17 @@ -{ config, pkgs, lib, inputs, ... }: +{ + config, + pkgs, + lib, + inputs, + ... +}: let - inherit (pkgs.uservars) key theme accent font; + inherit (pkgs.uservars) + key + theme + accent + font + ; inherit (theme) color; colors = { @@ -15,22 +26,21 @@ let makeOptList = lib.mapAttrsToList makeKeyValue colors; makeColorValue = lib.strings.concatStringsSep "," makeOptList; color_opts = "--color=${makeColorValue}"; - preview_opts = - "--preview '${pkgs.bat}/bin/bat --style=numbers --color=always {}'"; - + preview_opts = "--preview '${pkgs.bat}/bin/bat --style=numbers --color=always {}'"; in { programs.fzf = { enable = true; fileWidgetCommand = "${pkgs.fd}/bin/fd --type f"; - fileWidgetOptions = - [ "--preview '${pkgs.bat}/bin/bat --style=numbers --color=always {}'" ]; + fileWidgetOptions = [ "--preview '${pkgs.bat}/bin/bat --style=numbers --color=always {}'" ]; changeDirWidgetCommand = "${pkgs.fd}/bin/fd --type d"; - changeDirWidgetOptions = - [ "--preview '${pkgs.eza}/bin/eza -T L3 | head -200'" ]; + changeDirWidgetOptions = [ "--preview '${pkgs.eza}/bin/eza -T L3 | head -200'" ]; - defaultOptions = [ color_opts preview_opts ]; + defaultOptions = [ + color_opts + preview_opts + ]; }; } diff --git a/user/git.nix b/user/git.nix index f5392df..f50a249 100644 --- a/user/git.nix +++ b/user/git.nix @@ -1,6 +1,13 @@ -{ config, pkgs, lib, ... }: -let inherit (pkgs.uservars) username mail; -in { +{ + config, + pkgs, + lib, + ... +}: +let + inherit (pkgs.uservars) username mail; +in +{ config = { programs.git = { enable = true; diff --git a/user/gnome.nix b/user/gnome.nix index 70438c3..d1f692d 100644 --- a/user/gnome.nix +++ b/user/gnome.nix @@ -1,4 +1,10 @@ -{ pkgs, lib, inputs, ... }: lib.mkIf (pkgs.uservars.desktop == "gnome") { +{ + pkgs, + lib, + inputs, + ... +}: +lib.mkIf (pkgs.uservars.desktop == "gnome") { home.pointerCursor = { name = "Adwaita"; @@ -14,9 +20,7 @@ cursor-theme = "Adwaita"; # color-scheme = "default"; }; - "org/gnome/desktop/wm/preferences" = lib.mkForce { - button-layout = "appmenu:close"; - }; + "org/gnome/desktop/wm/preferences" = lib.mkForce { button-layout = "appmenu:close"; }; "org/gnome/desktop/input-sources" = { xkb-options = [ "lv3:lsgt_switch" ]; }; @@ -40,7 +44,9 @@ qt6Packages.qtstyleplugin-kvantum ]; - home.sessionVariables = { QT_QPA_PLATFORMTHEME = "qt5ct"; }; + home.sessionVariables = { + QT_QPA_PLATFORMTHEME = "qt5ct"; + }; xdg.defaultApplications = { enable = true; diff --git a/user/gpg.nix b/user/gpg.nix index 5dc20d0..dc39066 100644 --- a/user/gpg.nix +++ b/user/gpg.nix @@ -1,4 +1,10 @@ -{ config, pkgs, lib, ... }: { +{ + config, + pkgs, + lib, + ... +}: +{ config = { services.gpg-agent = { enable = true; @@ -16,7 +22,9 @@ PartOf = [ "graphical-session.target" ]; After = [ "graphical-session.target" ]; }; - Service = { ExecStart = "${pkgs._gpg-unlock}/bin/_gpg-unlock"; }; + Service = { + ExecStart = "${pkgs._gpg-unlock}/bin/_gpg-unlock"; + }; }; }; systemd.user.timers = { @@ -31,9 +39,10 @@ OnUnitActiveSec = "300"; Unit = "gpg_unlock.service"; }; - Install = { WantedBy = [ "sway-session.target" ]; }; + Install = { + WantedBy = [ "sway-session.target" ]; + }; }; }; - }; } diff --git a/user/helix.nix b/user/helix.nix index 3e430fc..292cfb0 100644 --- a/user/helix.nix +++ b/user/helix.nix @@ -74,7 +74,9 @@ in g.n = "goto_line_start"; g.o = "goto_line_end"; }; - keys.insert = { "A-k" = "normal_mode"; }; + keys.insert = { + "A-k" = "normal_mode"; + }; }; languages.language = [ { @@ -96,14 +98,29 @@ in my-theme = { "inherits" = "gruvbox"; "ui.menu" = "none"; - "ui.background" = { bg = "none"; }; + "ui.background" = { + bg = "none"; + }; "ui.virtual.whitespace" = color.nontxt; - "ui.cursor.primary" = { fg = accent.fg; bg = accent.color; }; - "ui.cursorline.primary" = { bg = color.bg_dark; }; - "ui.cursorcolumn.primary" = { modifiers = [ "bold" ]; }; - "ui.cursorline" = { bg = "none"; }; - "ui.cursorcolumn" = { bg = "none"; }; - "ui.linenr.selected" = { fg = color.txt; }; + "ui.cursor.primary" = { + fg = accent.fg; + bg = accent.color; + }; + "ui.cursorline.primary" = { + bg = color.bg_dark; + }; + "ui.cursorcolumn.primary" = { + modifiers = [ "bold" ]; + }; + "ui.cursorline" = { + bg = "none"; + }; + "ui.cursorcolumn" = { + bg = "none"; + }; + "ui.linenr.selected" = { + fg = color.txt; + }; function = color.normal.orange; module = color.normal.brown; @@ -124,8 +141,6 @@ in }; }; }; - home.sessionVariables = lib.mkIf (editor == "helix") { - EDITOR = "hx"; - }; + home.sessionVariables = lib.mkIf (editor == "helix") { EDITOR = "hx"; }; }; } diff --git a/user/home.nix b/user/home.nix index 39a9ba2..7ec6061 100644 --- a/user/home.nix +++ b/user/home.nix @@ -1,4 +1,12 @@ -{ config, pkgs, lib, inputs, osConfig, ... }: { +{ + config, + pkgs, + lib, + inputs, + osConfig, + ... +}: +{ imports = [ ./controller.nix ./waybar @@ -70,9 +78,7 @@ comma # System monitors - (btop.override { - cudaSupport = true; - }) + (btop.override { cudaSupport = true; }) amdgpu_top inxi dmidecode @@ -140,10 +146,11 @@ }; }; home.sessionVariables = { - VOLUME_CHANGE_SOUND = - "${pkgs.sound-theme-freedesktop}/share/sounds/freedesktop/stereo/audio-volume-change.oga"; + VOLUME_CHANGE_SOUND = "${pkgs.sound-theme-freedesktop}/share/sounds/freedesktop/stereo/audio-volume-change.oga"; + }; + programs.bash = { + enable = true; }; - programs.bash = { enable = true; }; xdg.defaultApplications = { enable = true; @@ -154,7 +161,8 @@ { firefox = lib.mkDefault "firefox.desktop"; qutebrowser = lib.mkDefault "org.qutebrowser.qutebrowser.desktop"; - }.${pkgs.uservars.browser} + } + .${pkgs.uservars.browser} ); document-viewer = lib.mkDefault "org.pwmt.zathura.desktop"; file-manager = lib.mkDefault "thunar.desktop"; @@ -163,12 +171,14 @@ torrent-client = lib.mkDefault "torrent.desktop"; }; - wayland.windowManager.sway.extraConfig = lib.optionalString (osConfig.networking.hostName or "" == "monolith") '' - exec steam - exec obs --startreplaybuffer --disable-shutdown-check - exec deluge-gtk - exec nicotine - ''; + wayland.windowManager.sway.extraConfig = + lib.optionalString (osConfig.networking.hostName or "" == "monolith") + '' + exec steam + exec obs --startreplaybuffer --disable-shutdown-check + exec deluge-gtk + exec nicotine + ''; systemd.user.services.rm-target = { Unit = { @@ -182,12 +192,16 @@ }; }; systemd.user.timers.rm-target = { - Unit = { Description = "Remove directories named 'target'"; }; + Unit = { + Description = "Remove directories named 'target'"; + }; Timer = { OnCalendar = "weekly"; Unit = "rm-target.service"; }; - Install = { WantedBy = [ "timers.target" ]; }; + Install = { + WantedBy = [ "timers.target" ]; + }; }; # This value determines the Home Manager release that your diff --git a/user/hyprland.nix b/user/hyprland.nix index 992964a..e1a632b 100644 --- a/user/hyprland.nix +++ b/user/hyprland.nix @@ -1,4 +1,10 @@ -{ config, pkgs, lib, ... }: { +{ + config, + pkgs, + lib, + ... +}: +{ config = lib.mkIf (pkgs.uservars.desktop == "hyprland") { wayland.windowManager.hyprland = { enable = false; @@ -122,6 +128,9 @@ ''; }; home.file.".config/eww".source = ./eww; - home.packages = with pkgs; [ eww-wayland jq ]; + home.packages = with pkgs; [ + eww-wayland + jq + ]; }; } diff --git a/user/kakoune/colors.nix b/user/kakoune/colors.nix index dbac3e3..e9b9d07 100644 --- a/user/kakoune/colors.nix +++ b/user/kakoune/colors.nix @@ -1,4 +1,9 @@ -{ pkgs, lib, color, accent }: +{ + pkgs, + lib, + color, + accent, +}: let colors = lib.mapAttrs (_: lib.replaceStrings [ "#" ] [ "rgb:" ]) { accent_fg = accent.fg; @@ -94,8 +99,9 @@ with colors; face global InlayHint ${bg_light}+buif # Lsp -'' + ( - lib.concatStringsSep "\n" (lib.mapAttrsToList +'' ++ (lib.concatStringsSep "\n" ( + lib.mapAttrsToList (name: color: '' face global HighlightDiagnostic${name} ${color},default+bu face global Diagnostic${name} ${color},default+bu @@ -106,6 +112,5 @@ with colors; Error = "red"; Warning = "yellow"; Hint = "blue"; - }) -) - + } +)) diff --git a/user/kakoune/default.nix b/user/kakoune/default.nix index c39b61b..091fe1b 100644 --- a/user/kakoune/default.nix +++ b/user/kakoune/default.nix @@ -1,6 +1,17 @@ -{ config, pkgs, lib, ... }: +{ + config, + pkgs, + lib, + ... +}: let - inherit (pkgs.uservars) key dmenu editor theme accent; + inherit (pkgs.uservars) + key + dmenu + editor + theme + accent + ; inherit (theme) color; inherit (pkgs) kakounePlugins; inherit (pkgs.kakouneUtils) buildKakounePlugin; @@ -74,26 +85,39 @@ in }) ]; extraConfig = - lib.concatStringsSep "\n" - (map (lib.readFile) ([ - ./filetypes.kak - ./hooks.kak - ./indent.kak - ./keys.kak - ./lsp-config.kak - ./usermode.kak - ./git-mode.kak - ] ++ lib.optional (dmenu == "rofi") ./rofi-commands.kak)) + '' + lib.concatStringsSep "\n" ( + map (lib.readFile) ( + [ + ./filetypes.kak + ./hooks.kak + ./indent.kak + ./keys.kak + ./lsp-config.kak + ./usermode.kak + ./git-mode.kak + ] + ++ lib.optional (dmenu == "rofi") ./rofi-commands.kak + ) + ) + + '' - set global scrolloff 10,20 - set global autoreload yes - set global startup_info_version 99999999 + set global scrolloff 10,20 + set global autoreload yes + set global startup_info_version 99999999 - '' + (import ./colors.nix { - inherit pkgs lib color accent; + '' + + (import ./colors.nix { + inherit + pkgs + lib + color + accent + ; }); }; - home.file = { ".config/kak-lsp/kak-lsp.toml".source = ./kak-lsp.toml; }; + home.file = { + ".config/kak-lsp/kak-lsp.toml".source = ./kak-lsp.toml; + }; home.packages = with pkgs; [ terminal ranger @@ -123,4 +147,3 @@ in }; }; } - diff --git a/user/lf/default.nix b/user/lf/default.nix index 5bc0759..8dc04a2 100644 --- a/user/lf/default.nix +++ b/user/lf/default.nix @@ -1,4 +1,11 @@ -{ config, pkgs, lib, inputs, ... }: { +{ + config, + pkgs, + lib, + inputs, + ... +}: +{ programs.lf = { enable = true; keybindings = { diff --git a/user/man.nix b/user/man.nix index 5b80a4e..c77607e 100644 --- a/user/man.nix +++ b/user/man.nix @@ -1,5 +1,20 @@ -{ config, pkgs, lib, inputs, ... }: -let inherit (pkgs.uservars) key theme color accent font desktop editor; +{ + config, + pkgs, + lib, + inputs, + ... +}: +let + inherit (pkgs.uservars) + key + theme + color + accent + font + desktop + editor + ; pagers = rec { kak = kakoune; kakoune = { diff --git a/user/mangohud.nix b/user/mangohud.nix index 5e54f46..f43564f 100644 --- a/user/mangohud.nix +++ b/user/mangohud.nix @@ -1,6 +1,20 @@ -{ config, pkgs, lib, font, ... }: -let inherit (pkgs.uservars) key theme color accent font; -in { +{ + config, + pkgs, + lib, + font, + ... +}: +let + inherit (pkgs.uservars) + key + theme + color + accent + font + ; +in +{ config = { programs.mangohud = { enable = true; diff --git a/user/mimeapps.nix b/user/mimeapps.nix index 533b00f..ff39ea4 100644 --- a/user/mimeapps.nix +++ b/user/mimeapps.nix @@ -1,4 +1,10 @@ -{ config, pkgs, lib, font, ... }: +{ + config, + pkgs, + lib, + font, + ... +}: let inherit (pkgs.uservars) browser; cfg = config.xdg.defaultApplications; @@ -26,20 +32,21 @@ in xdg.mimeApps = let - createMimeAssociation = (mime_prefix: application: mime_suffix: { - "${mime_prefix}/${mime_suffix}" = application; - }); + createMimeAssociation = ( + mime_prefix: application: mime_suffix: { "${mime_prefix}/${mime_suffix}" = application; } + ); - createMimeAssociations = (mime_prefix: application: mime_suffixes: - lib.foldAttrs (n: _: n) { } - (map (createMimeAssociation mime_prefix application) mime_suffixes)); + createMimeAssociations = ( + mime_prefix: application: mime_suffixes: + lib.foldAttrs (n: _: n) { } (map (createMimeAssociation mime_prefix application) mime_suffixes) + ); - mimes = simple + mimes = + simple // (createMimeAssociations "text" cfg.text-editor text_suffixes) // (createMimeAssociations "image" cfg.image-viewer image_suffixes) // (createMimeAssociations "video" cfg.video-player video_suffixes) - // (createMimeAssociations "application" cfg.archive-manager archive-suffixes) - ; + // (createMimeAssociations "application" cfg.archive-manager archive-suffixes); simple = { "inode/directory" = cfg.file-manager; @@ -421,7 +428,6 @@ in "x-theora+ogg" ]; - archive-suffixes = [ "bzip2" "gzip" @@ -487,6 +493,5 @@ in enable = true; defaultApplications = mimes; }; - }; } diff --git a/user/mpd.nix b/user/mpd.nix index c100000..8a4c155 100644 --- a/user/mpd.nix +++ b/user/mpd.nix @@ -1,4 +1,10 @@ -{ lib, pkgs, config, ... }: { +{ + lib, + pkgs, + config, + ... +}: +{ config = lib.mkIf (pkgs.uservars.desktop != "gnome") { services.mpd = { enable = true; diff --git a/user/mpv.nix b/user/mpv.nix index b66b2ca..851860f 100644 --- a/user/mpv.nix +++ b/user/mpv.nix @@ -1,4 +1,5 @@ -{ pkgs, ... }: { +{ pkgs, ... }: +{ config = { programs.mpv = { enable = true; @@ -6,8 +7,7 @@ # ytdl-format='best'; # ytdl_path = "yt-dlp"; ytdl-format = "bestvideo[height<=1080][vcodec!=vp9]+bestaudio/best"; - ytdl-raw-options = - "cookies=~/.cache/cookies-youtube-com.txt,mark-watched="; + ytdl-raw-options = "cookies=~/.cache/cookies-youtube-com.txt,mark-watched="; osd-fractions = true; save-position-on-quit = true; keep-open = true; diff --git a/user/pass.nix b/user/pass.nix index e17b62a..e1c5bb8 100644 --- a/user/pass.nix +++ b/user/pass.nix @@ -1,10 +1,15 @@ -{ config, pkgs, lib, inputs, ... }: { +{ + config, + pkgs, + lib, + inputs, + ... +}: +{ config = { programs.password-store = { enable = true; - package = pkgs.pass.withExtensions (ex: with ex; [ - pass-otp - ]); + package = pkgs.pass.withExtensions (ex: with ex; [ pass-otp ]); }; services = { pass-secret-service.enable = true; diff --git a/user/pipewire.nix b/user/pipewire.nix index 8fd5188..5e87618 100644 --- a/user/pipewire.nix +++ b/user/pipewire.nix @@ -1,4 +1,10 @@ -{ config, pkgs, lib, ... }: { +{ + config, + pkgs, + lib, + ... +}: +{ # RNNoise is a noise supperssion neural network # Here we use it as a plugin for pipewire to create a virtual microphone config = { diff --git a/user/pqiv.nix b/user/pqiv.nix index dc5e8de..10e6c3d 100644 --- a/user/pqiv.nix +++ b/user/pqiv.nix @@ -1,8 +1,21 @@ -{ config, pkgs, lib, inputs, ... }: +{ + config, + pkgs, + lib, + inputs, + ... +}: let - inherit (pkgs.uservars) key theme color accent font; + inherit (pkgs.uservars) + key + theme + color + accent + font + ; - make_direction_binds = lib.imap0 (idx: direction: + make_direction_binds = lib.imap0 ( + idx: direction: let sign = if (idx < 2) then 1 else -1; axis = if ((lib.mod idx 2) != 0) then "y" else "x"; @@ -15,8 +28,8 @@ let montage_mode_shift_${axis}(${toString (sign * -1)}) } } - ''); - + '' + ); in { # My bemenu wrapper @@ -45,7 +58,12 @@ in { goto_file_relative(-1) } { goto_file_relative(1); } - ${lib.concatStrings (make_direction_binds [ "left" "up" "right" "down" ])} + ${lib.concatStrings (make_direction_binds [ + "left" + "up" + "right" + "down" + ])} ${key.tabL} { goto_file_relative(-1) } ${key.tabR} { goto_file_relative(1); } @@ -54,10 +72,7 @@ in d { send_keys(6) } y { send_keys(8) } - ${if (key.layout == "colemak") then - "\n t { toggle_scale_mode(0) }\n " - else - ""} + ${if (key.layout == "colemak") then "\n t { toggle_scale_mode(0) }\n " else ""} # vim: ft=ini ''; diff --git a/user/qutebrowser/colors.nix b/user/qutebrowser/colors.nix index 3a90888..999cc28 100644 --- a/user/qutebrowser/colors.nix +++ b/user/qutebrowser/colors.nix @@ -1,6 +1,18 @@ -{ config, pkgs, lib, font, ... }: +{ + config, + pkgs, + lib, + font, + ... +}: let - inherit (pkgs.uservars) key theme accent font browser; + inherit (pkgs.uservars) + key + theme + accent + font + browser + ; inherit (theme) color; in { @@ -38,9 +50,12 @@ in }; in { - bar = { bg = color.bg; }; + bar = { + bg = color.bg; + }; pinned = tabs_defaults; - } // tabs_defaults; + } + // tabs_defaults; ######################################################## # Completion for urls and commands @@ -48,10 +63,18 @@ in completion = { fg = color.txt; - even = { bg = color.bg; }; - odd = { bg = color.bg; }; - scrollbar = { bg = color.bg_dark; }; - match = { fg = accent.color; }; + even = { + bg = color.bg; + }; + odd = { + bg = color.bg; + }; + scrollbar = { + bg = color.bg_dark; + }; + match = { + fg = accent.color; + }; category = { fg = color.txt; bg = color.bg_dark; @@ -68,7 +91,9 @@ in top = color.bg_dark; bottom = color.bg_dark; }; - match = { fg = color.txt; }; + match = { + fg = color.txt; + }; }; }; }; @@ -102,10 +127,16 @@ in }; url = { success = { - https = { fg = color.txt; }; - http = { fg = color.normal.red; }; + https = { + fg = color.txt; + }; + http = { + fg = color.normal.red; + }; + }; + hover = { + fg = color.normal.cyan; }; - hover = { fg = color.normal.cyan; }; }; }; ######################################################## @@ -113,9 +144,15 @@ in ######################################################## downloads = { - start = { bg = color.normal.blue; }; - stop = { bg = color.normal.green; }; - bar = { bg = color.bg; }; + start = { + bg = color.normal.blue; + }; + stop = { + bg = color.normal.green; + }; + bar = { + bg = color.bg; + }; }; ######################################################## @@ -125,7 +162,9 @@ in hints = { fg = color.txt; bg = color.bg; - match = { fg = accent.color; }; + match = { + fg = accent.color; + }; }; ######################################################## @@ -135,7 +174,9 @@ in keyhint = { fg = color.txt; bg = color.bg; - suffix = { fg = accent.color; }; + suffix = { + fg = accent.color; + }; }; ######################################################## @@ -151,7 +192,9 @@ in fg = accent.fg; bg = accent.color; }; - disabled = { fg = color.bg_light; }; + disabled = { + fg = color.bg_light; + }; }; ######################################################## @@ -216,4 +259,3 @@ in ''; }; } - diff --git a/user/qutebrowser/dark-theme.nix b/user/qutebrowser/dark-theme.nix index a596251..6acd813 100644 --- a/user/qutebrowser/dark-theme.nix +++ b/user/qutebrowser/dark-theme.nix @@ -1,63 +1,71 @@ -{ config, pkgs, lib, font, ... }: +{ + config, + pkgs, + lib, + font, + ... +}: let inherit (pkgs.uservars) theme; inherit (theme) color; # ".config/qutebrowser/greasemonkey/darkreader.js".text = - darkThemeUserscript = enabled: pkgs.writeText "darkreader.js" '' - // ==UserScript== - // @name Dark Reader (Unofficial) - // @icon https://darkreader.org/images/darkreader-icon-256x256.png - // @namespace DarkReader - // @description Inverts the brightness of pages to reduce eye strain - // @version 4.7.15 - // @author https://github.com/darkreader/darkreader#contributors - // @homepageURL https://darkreader.org/ | https://github.com/darkreader/darkreader - // @run-at document-end - // @grant none - // @include http* - // @require https://cdn.jsdelivr.net/npm/darkreader/darkreader.min.js - // @noframes - // ==/UserScript== + darkThemeUserscript = + enabled: + pkgs.writeText "darkreader.js" '' + // ==UserScript== + // @name Dark Reader (Unofficial) + // @icon https://darkreader.org/images/darkreader-icon-256x256.png + // @namespace DarkReader + // @description Inverts the brightness of pages to reduce eye strain + // @version 4.7.15 + // @author https://github.com/darkreader/darkreader#contributors + // @homepageURL https://darkreader.org/ | https://github.com/darkreader/darkreader + // @run-at document-end + // @grant none + // @include http* + // @require https://cdn.jsdelivr.net/npm/darkreader/darkreader.min.js + // @noframes + // ==/UserScript== - DarkReader.setFetchMethod(window.fetch) + DarkReader.setFetchMethod(window.fetch) - if (${if enabled then "false" else "true"}) { - DarkReader.disable(); - return; - } + if (${if enabled then "false" else "true"}) { + DarkReader.disable(); + return; + } - const ignore_list = [ - "askubuntu.com", - "mathoverflow.com", - "mathoverflow.net", - "serverfault.com", - "stackapps.com", - "stackexchange.com", - "stackoverflow.com", - "superuser.com", - "hub.docker.com", - ]; + const ignore_list = [ + "askubuntu.com", + "mathoverflow.com", + "mathoverflow.net", + "serverfault.com", + "stackapps.com", + "stackexchange.com", + "stackoverflow.com", + "superuser.com", + "hub.docker.com", + ]; - for (let item of ignore_list) { - if (window.location.origin.indexOf(item) >= 0) { - console.log("URL matched dark-mode ignore list"); - return; - } - } + for (let item of ignore_list) { + if (window.location.origin.indexOf(item) >= 0) { + console.log("URL matched dark-mode ignore list"); + return; + } + } - DarkReader.enable({ - brightness: 100, - contrast: 100, - sepia: 0, + DarkReader.enable({ + brightness: 100, + contrast: 100, + sepia: 0, - darkSchemeBackgroundColor: "${color.bg}", - darkSchemeTextColor: "${color.txt}", + darkSchemeBackgroundColor: "${color.bg}", + darkSchemeTextColor: "${color.txt}", - lightSchemeBackgroundColor: "${color.bg}", - lightSchemeTextColor: "${color.txt}", - }); - ''; + lightSchemeBackgroundColor: "${color.bg}", + lightSchemeTextColor: "${color.txt}", + }); + ''; in { programs.qutebrowser.keyBindings = { @@ -87,4 +95,3 @@ in ''; }; } - diff --git a/user/qutebrowser/default.nix b/user/qutebrowser/default.nix index 0f2914a..c115cca 100644 --- a/user/qutebrowser/default.nix +++ b/user/qutebrowser/default.nix @@ -1,4 +1,10 @@ -{ config, pkgs, lib, font, ... }: +{ + config, + pkgs, + lib, + font, + ... +}: let inherit (pkgs.uservars) key browser editor; in @@ -59,7 +65,6 @@ in "${key.insertMode}" = "mode-enter insert"; }; - }; settings = { tabs.tree_tabs = true; @@ -78,7 +83,8 @@ in { kakoune = "kak"; helix = "hx"; - }.${editor} + } + .${editor} "{file}" "+{line}" ]; @@ -112,7 +118,9 @@ in ExecStart = "${pkgs.qutebrowser}/bin/qutebrowser"; Restart = "on-failure"; }; - Install = { WantedBy = [ "sway-session.target" ]; }; + Install = { + WantedBy = [ "sway-session.target" ]; + }; }; }; home.file = { @@ -149,4 +157,3 @@ in }; }; } - diff --git a/user/qutebrowser/fonts.nix b/user/qutebrowser/fonts.nix index e6eee6b..6ab43de 100644 --- a/user/qutebrowser/fonts.nix +++ b/user/qutebrowser/fonts.nix @@ -33,4 +33,3 @@ in }; }; } - diff --git a/user/ranger/default.nix b/user/ranger/default.nix index ec09936..4b97170 100644 --- a/user/ranger/default.nix +++ b/user/ranger/default.nix @@ -1,4 +1,11 @@ -{ config, pkgs, lib, inputs, ... }: { +{ + config, + pkgs, + lib, + inputs, + ... +}: +{ xdg.configFile = { "ranger/rc.conf".source = ./rc.conf; "ranger/rifle.conf".source = ./rifle.conf; diff --git a/user/rofi.nix b/user/rofi.nix index d9026d2..79307eb 100644 --- a/user/rofi.nix +++ b/user/rofi.nix @@ -1,6 +1,17 @@ -{ config, pkgs, lib, font, ... }: +{ + config, + pkgs, + lib, + font, + ... +}: let - inherit (pkgs.uservars) key theme accent font; + inherit (pkgs.uservars) + key + theme + accent + font + ; inherit (theme) color; in { @@ -42,14 +53,15 @@ in }; "#window" = { - background-color = mkLiteral - "${color.bg}${lib.toHexString (theme.opacity * 255 / 100)}"; + background-color = mkLiteral "${color.bg}${lib.toHexString (theme.opacity * 255 / 100)}"; # children = map mkLiteral [ "prompt" "entry" ]; border = mkLiteral "2px solid"; border-color = mkLiteral accent.color; padding = 0; }; - "#inputbar" = { margin = mkLiteral "10px"; }; + "#inputbar" = { + margin = mkLiteral "10px"; + }; "#listview" = { # fixed-height=0; border = mkLiteral "2px solid 0px 0px"; @@ -78,9 +90,7 @@ in margin-right = mkLiteral "20px"; size = 24; }; - }; - }; }; } diff --git a/user/ssh.nix b/user/ssh.nix index 8230dc1..3193876 100644 --- a/user/ssh.nix +++ b/user/ssh.nix @@ -1,6 +1,13 @@ -{ config, pkgs, lib, ... }: -let inherit (pkgs.uservars) username mail; -in { +{ + config, + pkgs, + lib, + ... +}: +let + inherit (pkgs.uservars) username mail; +in +{ config = { programs.ssh.enable = true; programs.ssh.matchBlocks = { diff --git a/user/sway/default.nix b/user/sway/default.nix index 7719370..d7afafd 100644 --- a/user/sway/default.nix +++ b/user/sway/default.nix @@ -1,6 +1,16 @@ -{ config, pkgs, lib, ... }: +{ + config, + pkgs, + lib, + ... +}: let - inherit (pkgs.uservars) key accent font theme; + inherit (pkgs.uservars) + key + accent + font + theme + ; inherit (theme) color; in { @@ -42,7 +52,13 @@ in bg_color = color.bg_dark; alert = "#000000"; client = border: background: text: indicator: childBorder: { - inherit border background text indicator childBorder; + inherit + border + background + text + indicator + childBorder + ; }; in { @@ -79,9 +95,7 @@ in }; # setup cursor based on home.pointerCursor seat."*" = { - xcursor_theme = "${config.home.pointerCursor.name} ${ - toString config.home.pointerCursor.size - }"; + xcursor_theme = "${config.home.pointerCursor.name} ${toString config.home.pointerCursor.size}"; hide_cursor = "when-typing enable"; }; }; @@ -132,7 +146,10 @@ in grim swappy (tesseract5.override { - enableLanguages = [ "eng" "por" ]; + enableLanguages = [ + "eng" + "por" + ]; }) ]; }; diff --git a/user/sway/kanshi.nix b/user/sway/kanshi.nix index 22d9550..f35fd4f 100644 --- a/user/sway/kanshi.nix +++ b/user/sway/kanshi.nix @@ -1,6 +1,16 @@ -{ config, pkgs, lib, ... }: +{ + config, + pkgs, + lib, + ... +}: let - inherit (pkgs.uservars) key accent font theme; + inherit (pkgs.uservars) + key + accent + font + theme + ; inherit (theme) color; in { @@ -26,11 +36,13 @@ in { profile = { name = "nomad"; - outputs = [{ - criteria = "eDP-1"; - status = "enable"; - position = "1920,312"; - }]; + outputs = [ + { + criteria = "eDP-1"; + status = "enable"; + position = "1920,312"; + } + ]; exec = [ "xrdb .Xresources" ]; }; } diff --git a/user/sway/mako.nix b/user/sway/mako.nix index 637a2d5..c8575ab 100644 --- a/user/sway/mako.nix +++ b/user/sway/mako.nix @@ -1,6 +1,16 @@ -{ config, pkgs, lib, ... }: +{ + config, + pkgs, + lib, + ... +}: let - inherit (pkgs.uservars) key accent font theme; + inherit (pkgs.uservars) + key + accent + font + theme + ; inherit (theme) color; in { @@ -48,6 +58,8 @@ in ExecStart = "${pkgs.mako}/bin/mako"; Restart = "on-failure"; }; - Install = { WantedBy = [ "sway-session.target" ]; }; + Install = { + WantedBy = [ "sway-session.target" ]; + }; }; } diff --git a/user/sway/sway-assigns.nix b/user/sway/sway-assigns.nix index ff46238..0d1eefd 100644 --- a/user/sway/sway-assigns.nix +++ b/user/sway/sway-assigns.nix @@ -1,20 +1,18 @@ { config, pkgs, ... }: let - # inherit (pkgs.uservars) key accent font theme; - # inherit (theme) color; - # inherit (pkgs) lib; - - # mod = "Mod4"; - # menu = "wlauncher"; - # terminal = "alacritty"; - - # locked_binds = - # lib.mapAttrs' (k: v: lib.nameValuePair "--locked ${k}" v); - # code_binds = - # lib.mapAttrs' (k: v: lib.nameValuePair "--to-code ${k}" v); - # return_mode = lib.mapAttrs (k: v: "${v}; mode default"); - # playerctl = "exec ${pkgs.playerctl}/bin/playerctl"; in +# inherit (pkgs.uservars) key accent font theme; +# inherit (theme) color; +# inherit (pkgs) lib; +# mod = "Mod4"; +# menu = "wlauncher"; +# terminal = "alacritty"; +# locked_binds = +# lib.mapAttrs' (k: v: lib.nameValuePair "--locked ${k}" v); +# code_binds = +# lib.mapAttrs' (k: v: lib.nameValuePair "--to-code ${k}" v); +# return_mode = lib.mapAttrs (k: v: "${v}; mode default"); +# playerctl = "exec ${pkgs.playerctl}/bin/playerctl"; { wayland.windowManager.sway.config = { assigns = { diff --git a/user/sway/sway-binds.nix b/user/sway/sway-binds.nix index 360ccdc..fe22594 100644 --- a/user/sway/sway-binds.nix +++ b/user/sway/sway-binds.nix @@ -1,6 +1,11 @@ { config, pkgs, ... }: let - inherit (pkgs.uservars) key accent font theme; + inherit (pkgs.uservars) + key + accent + font + theme + ; inherit (theme) color; inherit (pkgs) lib; @@ -21,29 +26,27 @@ let # mod+1 to swich to workspace 1 # mod+shift+1 to move to workspace 1 - workspace_binds = lib.forEachMerge (lib.range 1 10) (i: + workspace_binds = lib.forEachMerge (lib.range 1 10) ( + i: let key = toString (lib.mod i 10); workspaceNumber = toString i; in { "${mod}+${key}" = "workspace number ${workspaceNumber}"; - "${mod}+Shift+${key}" = - "move container to workspace number ${workspaceNumber}"; - }); + "${mod}+Shift+${key}" = "move container to workspace number ${workspaceNumber}"; + } + ); prev_next_binds = let - maybe_window = key: - if (lib.strings.hasInfix "button" key) then - "--whole-window" - else - ""; - makePrevNextBindFunction = (prev_or_next: + maybe_window = key: if (lib.strings.hasInfix "button" key) then "--whole-window" else ""; + makePrevNextBindFunction = ( + prev_or_next: map (key: { - "${maybe_window key} ${mod}+${key}" = - "workspace ${prev_or_next}_on_output"; - })); + "${maybe_window key} ${mod}+${key}" = "workspace ${prev_or_next}_on_output"; + }) + ); prev_binds = makePrevNextBindFunction "prev" [ key.tabL "bracketleft" @@ -67,36 +70,51 @@ let # for every direction with both arrow keys and vim keys movement_binds = let - directions = [ "Left" "Up" "Right" "Down" ]; + directions = [ + "Left" + "Up" + "Right" + "Down" + ]; makeVimKeys = (k: key.${lib.toLower k}); makeArrowKeys = (k: k); - makeResizeCommand = direction: + makeResizeCommand = + direction: { Left = "shrink width 20px"; Up = "shrink height 20px"; Right = "grow width 20px"; Down = "grow height 20px"; - }.${direction}; + } + .${direction}; in - lib.forEachMerge [ makeVimKeys makeArrowKeys ] (prefixFun: - lib.forEachMerge directions (direction: - let - resize_cmd = makeResizeCommand direction; - keyBind = prefixFun direction; - in - { - # Move focus - "${mod}+${keyBind}" = "focus ${direction}"; - # Move window - "${mod}+Shift+${keyBind}" = "move ${direction}"; - # Resize window - "${mod}+Control+${keyBind}" = "resize ${resize_cmd}"; - # focus output - "${mod}+mod1+${keyBind}" = "focus output ${direction}"; - # Move workspace to output - "${mod}+mod1+Shift+${keyBind}" = - "move workspace output ${direction}"; - })); + lib.forEachMerge + [ + makeVimKeys + makeArrowKeys + ] + ( + prefixFun: + lib.forEachMerge directions ( + direction: + let + resize_cmd = makeResizeCommand direction; + keyBind = prefixFun direction; + in + { + # Move focus + "${mod}+${keyBind}" = "focus ${direction}"; + # Move window + "${mod}+Shift+${keyBind}" = "move ${direction}"; + # Resize window + "${mod}+Control+${keyBind}" = "resize ${resize_cmd}"; + # focus output + "${mod}+mod1+${keyBind}" = "focus output ${direction}"; + # Move workspace to output + "${mod}+mod1+Shift+${keyBind}" = "move workspace output ${direction}"; + } + ) + ); parenting_binds = { "${mod}+equal" = "focus parent"; @@ -116,8 +134,7 @@ let XF86AudioRaiseVolume = "exec volumesh -i 10"; XF86AudioLowerVolume = "exec volumesh -d 10"; XF86AudioMute = "exec volumesh -t"; - XF86AudioMicMute = - "exec pactl set-source-mute @DEFAULT_SOURCE@ toggle"; + XF86AudioMicMute = "exec pactl set-source-mute @DEFAULT_SOURCE@ toggle"; # Control media XF86AudioPlay = "exec playerctl play-pause"; XF86AudioPause = "exec playerctl play-pause"; @@ -136,8 +153,7 @@ let # Screen area to file "Shift+Print" = "exec ${pkgs.screenshotsh}/bin/screenshotsh area"; # Screen area to clipboard - "Control+Shift+Print" = - "exec ${pkgs.screenshotsh}/bin/screenshotsh area-clip"; + "Control+Shift+Print" = "exec ${pkgs.screenshotsh}/bin/screenshotsh area-clip"; # Focused monitor to clipboard "Control+Print" = "exec ${pkgs.screenshotsh}/bin/screenshotsh clip"; }; @@ -155,8 +171,7 @@ let "${mod}+Alt+x" = "exec pkill wl-crosshair || exec wl-crosshair"; "${mod}+x" = "kill"; "${mod}+m" = "mode audio"; - "${mod}+escape" = - "mode passthrough;exec notify-send 'Passthrough on'"; + "${mod}+escape" = "mode passthrough;exec notify-send 'Passthrough on'"; "${mod}+ctrl+k" = "exec swaymsg input type:pointer events disabled"; "${mod}+ctrl+shift+k" = "exec swaymsg input type:pointer events enabled"; "${mod}+f" = "fullscreen toggle"; diff --git a/user/sway/sway-modes.nix b/user/sway/sway-modes.nix index 7cb82bd..ea75ca8 100644 --- a/user/sway/sway-modes.nix +++ b/user/sway/sway-modes.nix @@ -1,6 +1,11 @@ { config, pkgs, ... }: let - inherit (pkgs.uservars) key accent font theme; + inherit (pkgs.uservars) + key + accent + font + theme + ; inherit (theme) color; inherit (pkgs) lib; @@ -8,10 +13,8 @@ let menu = "wlauncher"; terminal = "alacritty"; - locked = - lib.mapAttrs' (k: v: lib.nameValuePair "--locked ${k}" v); - to-code = - lib.mapAttrs' (k: v: lib.nameValuePair "--to-code ${k}" v); + locked = lib.mapAttrs' (k: v: lib.nameValuePair "--locked ${k}" v); + to-code = lib.mapAttrs' (k: v: lib.nameValuePair "--to-code ${k}" v); quit-mode = lib.mapAttrs (k: v: "${v}; mode default"); playerctl = "exec ${pkgs.playerctl}/bin/playerctl"; @@ -20,20 +23,32 @@ in { wayland.windowManager.sway.config.modes = { audio = - (bind_group [ to-code locked ] { - ${key.tabR} = "exec volumesh -i 10"; - ${key.tabL} = "exec volumesh -d 10"; - ${key.right} = "exec mpc next"; - ${key.left} = "exec mpc prev"; - ${key.up} = "exec volumesh --mpd -i 10"; - ${key.down} = "exec volumesh --mpd -d 10"; - }) // - (bind_group [ locked quit-mode ] { - "space" = "exec mpc toggle"; - "escape" = ""; - "q" = ""; - }) // - (bind_group [ quit-mode ] { + (bind_group + [ + to-code + locked + ] + { + ${key.tabR} = "exec volumesh -i 10"; + ${key.tabL} = "exec volumesh -d 10"; + ${key.right} = "exec mpc next"; + ${key.left} = "exec mpc prev"; + ${key.up} = "exec volumesh --mpd -i 10"; + ${key.down} = "exec volumesh --mpd -d 10"; + } + ) + // (bind_group + [ + locked + quit-mode + ] + { + "space" = "exec mpc toggle"; + "escape" = ""; + "q" = ""; + } + ) + // (bind_group [ quit-mode ] { "m" = "exec volumesh -t"; "s" = "exec ${pkgs.pulse_sink}/bin/pulse_sink"; @@ -47,28 +62,38 @@ in "Ctrl+s" = "exec ${pkgs.musmenu}/bin/musmenu psave"; "Ctrl+o" = "exec ${pkgs.musmenu}/bin/musmenu pload"; "Ctrl+d" = "exec ${pkgs.musmenu}/bin/musmenu pdelete"; - }) // - { + }) + // { "p" = "mode playerctl"; "Ctrl+c" = "exec musmenu pclear"; - } - ; + }; playerctl = - (bind_group [ to-code locked ] { - ${key.left} = "${playerctl} previous"; - ${key.right} = "${playerctl} next"; - ${key.up} = "${playerctl} volume 10+"; - ${key.down} = "${playerctl} volume 10-"; - ${key.tabR} = "${playerctl} volume 10+"; - ${key.tabL} = "${playerctl} volume 10-"; - }) // - (bind_group [ to-code quit-mode ] { - "space" = "${playerctl} play-pause"; - "escape" = ""; - "q" = ""; - }) - ; + (bind_group + [ + to-code + locked + ] + { + ${key.left} = "${playerctl} previous"; + ${key.right} = "${playerctl} next"; + ${key.up} = "${playerctl} volume 10+"; + ${key.down} = "${playerctl} volume 10-"; + ${key.tabR} = "${playerctl} volume 10+"; + ${key.tabL} = "${playerctl} volume 10-"; + } + ) + // (bind_group + [ + to-code + quit-mode + ] + { + "space" = "${playerctl} play-pause"; + "escape" = ""; + "q" = ""; + } + ); passthrough = { "${mod}+escape" = "mode default;exec notify-send 'Passthrough off'"; diff --git a/user/sway/swayidle.nix b/user/sway/swayidle.nix index 7b659ed..b0bd455 100644 --- a/user/sway/swayidle.nix +++ b/user/sway/swayidle.nix @@ -1,6 +1,16 @@ -{ config, pkgs, lib, ... }: +{ + config, + pkgs, + lib, + ... +}: let - inherit (pkgs.uservars) key accent font theme; + inherit (pkgs.uservars) + key + accent + font + theme + ; inherit (theme) color; asScript = filename: text: toString (pkgs.writeShellScript filename text); diff --git a/user/sway/swaylock.nix b/user/sway/swaylock.nix index f9f06eb..eb6104e 100644 --- a/user/sway/swaylock.nix +++ b/user/sway/swaylock.nix @@ -1,6 +1,16 @@ -{ config, pkgs, lib, ... }: +{ + config, + pkgs, + lib, + ... +}: let - inherit (pkgs.uservars) key accent font theme; + inherit (pkgs.uservars) + key + accent + font + theme + ; inherit (theme) color; in { diff --git a/user/sway/theme.nix b/user/sway/theme.nix index 2fc1fc1..202eaff 100644 --- a/user/sway/theme.nix +++ b/user/sway/theme.nix @@ -1,38 +1,53 @@ -{ config, pkgs, lib, inputs, ... }: +{ + config, + pkgs, + lib, + inputs, + ... +}: let inherit (pkgs.uservars) theme font desktop; - inherit (theme) color gtk_theme icon_theme cursor_theme; + inherit (theme) + color + gtk_theme + icon_theme + cursor_theme + ; in -lib.mkIf (desktop == "sway") -{ +lib.mkIf (desktop == "sway") { home.pointerCursor = { name = cursor_theme; size = 24; package = pkgs.bibata-cursors; gtk.enable = true; }; - gtk = { - enable = true; - font = { - name = font.interface; - size = font.size.small; - }; - theme = { - name = gtk_theme; - package = pkgs.orchis_theme_compact; - }; - iconTheme = { - name = icon_theme; - package = pkgs.papirus_red; - }; - } // ( - let - shared.extraConfig = { - gtk-decoration-layout = "menu:"; + gtk = + { + enable = true; + font = { + name = font.interface; + size = font.size.small; }; - in - { gtk4 = shared; gtk3 = shared; } - ); + theme = { + name = gtk_theme; + package = pkgs.orchis_theme_compact; + }; + iconTheme = { + name = icon_theme; + package = pkgs.papirus_red; + }; + } + // ( + let + shared.extraConfig = { + gtk-decoration-layout = "menu:"; + }; + in + { + gtk4 = shared; + gtk3 = shared; + } + ); qt = { enable = true; platformTheme.name = "qtct"; diff --git a/user/syncthing.nix b/user/syncthing.nix index 8f36eeb..76e3584 100644 --- a/user/syncthing.nix +++ b/user/syncthing.nix @@ -1,4 +1,5 @@ -{ ... }: { +{ ... }: +{ services.syncthing = { enable = true; tray = { diff --git a/user/thunar.nix b/user/thunar.nix index 3921eb5..2a9fe5b 100644 --- a/user/thunar.nix +++ b/user/thunar.nix @@ -1,8 +1,12 @@ -{ pkgs, ... }: { +{ pkgs, ... }: +{ home.packages = with pkgs; [ _thunar-terminal (xfce.thunar.override { - thunarPlugins = with pkgs.xfce; [ thunar-volman thunar-archive-plugin ]; + thunarPlugins = with pkgs.xfce; [ + thunar-volman + thunar-archive-plugin + ]; }) ]; diff --git a/user/vdir.nix b/user/vdir.nix index 61170df..80e6145 100644 --- a/user/vdir.nix +++ b/user/vdir.nix @@ -1,19 +1,23 @@ { pkgs, lib, ... }: let inherit (pkgs.uservars) nextcloud; - pass_cmd = (pkgs.writeShellScript "get_pass" '' - pass "${nextcloud.pass}" | head -n1 - ''); + pass_cmd = ( + pkgs.writeShellScript "get_pass" '' + pass "${nextcloud.pass}" | head -n1 + '' + ); in { systemd.user.services.vdirsyncer = { Unit.Description = "vdirsyncer calendar and contacts synchronization"; Service = { Type = "oneshot"; - ExecStart = toString (pkgs.writeShellScript "run-vdirsyncer" '' - ${pkgs.coreutils}/bin/yes | ${pkgs.vdirsyncer}/bin/vdirsyncer discover - ${pkgs.coreutils}/bin/yes | ${pkgs.vdirsyncer}/bin/vdirsyncer sync - ''); + ExecStart = toString ( + pkgs.writeShellScript "run-vdirsyncer" '' + ${pkgs.coreutils}/bin/yes | ${pkgs.vdirsyncer}/bin/vdirsyncer discover + ${pkgs.coreutils}/bin/yes | ${pkgs.vdirsyncer}/bin/vdirsyncer sync + '' + ); }; }; systemd.user.timers.vdirsyncer = { @@ -45,9 +49,9 @@ in [storage contacts_remote] type = "carddav" - url = "https://${ nextcloud.host }/remote.php/dav/addressbooks/users/${ nextcloud.user }/" - username = "${ nextcloud.user }" - password.fetch = [ "command", "${ pass_cmd }" ] + url = "https://${nextcloud.host}/remote.php/dav/addressbooks/users/${nextcloud.user}/" + username = "${nextcloud.user}" + password.fetch = [ "command", "${pass_cmd}" ] [pair calendar] a = "calendar_local" @@ -63,9 +67,9 @@ in [storage calendar_remote] type = "caldav" - url = "https://${ nextcloud.host }/remote.php/dav/calendars/${ nextcloud.user }/" - username = "${ nextcloud.user }" - password.fetch = [ "command", "${ pass_cmd }" ] + url = "https://${nextcloud.host}/remote.php/dav/calendars/${nextcloud.user}/" + username = "${nextcloud.user}" + password.fetch = [ "command", "${pass_cmd}" ] ''; "todoman/config.py".text = '' path = "~/.local/share/calendars/*" @@ -76,10 +80,8 @@ in ''; }; - home.packages = with pkgs; [ vdirsyncer todoman ]; - } diff --git a/user/vscode/default.nix b/user/vscode/default.nix index 48851a0..35d972b 100644 --- a/user/vscode/default.nix +++ b/user/vscode/default.nix @@ -1,4 +1,5 @@ -{ pkgs, config, ... }: { +{ pkgs, config, ... }: +{ programs.vscode = { enable = true; diff --git a/user/waybar/default.nix b/user/waybar/default.nix index 5e4f329..95615fa 100644 --- a/user/waybar/default.nix +++ b/user/waybar/default.nix @@ -1,6 +1,18 @@ -{ config, osConfig, pkgs, lib, font, ... }: +{ + config, + osConfig, + pkgs, + lib, + font, + ... +}: let - inherit (pkgs.uservars) key theme accent font; + inherit (pkgs.uservars) + key + theme + accent + font + ; inherit (theme) color; in { @@ -9,184 +21,226 @@ in enable = true; systemd.enable = true; systemd.target = "sway-session.target"; - settings = [{ - layer = "top"; - modules-left = [ "sway/workspaces" "sway/mode" "sway/window" ]; - modules-center = [ "clock" ]; - modules-right = lib.flatten [ - "sway/language" - "mpd" - "custom/playerctl" - "tray" - "custom/caffeine" - "pulseaudio" - (lib.optional (osConfig.services.vpn.enable or false) "custom/vpn") - "network" - "battery" - ]; - battery = { - tooltip = true; - states = { - full = 100; - good = 95; - warning = 25; - }; - format = "{icon} "; - format-charging = ""; - format-plugged = ""; - format-full = ""; - format-warning = "{icon} {time}"; - format-icons = [ "" "" "" "" "" "" ]; - }; - network = { - interval = 5; - tooltip = false; - on-click = "terminal -e iwd"; - format-wifi = "{icon}"; - format-icons = [ "" "" "" "" "" ]; - format-ethernet = "󰈀"; - format-linked = "󰈀"; - format-disconnected = ""; - }; - "sway/workspaces" = { - enable-bar-scroll = true; - format = "{icon}"; - format-icons = { - "1" = ""; - "2" = ""; - "3" = "󰅩"; - "4" = ""; - "5" = ""; - "6" = ""; - "7" = "󰇮"; - "8" = ""; - "9" = ""; - "10" = ""; - urgent = ""; - # focused = ""; - default = ""; - }; - }; - "sway/window" = { max-length = 40; }; - "tray" = { - "spacing" = 7; - "icon-size" = 19; - }; - clock = { - interval = 60; - format = "{:%H:%M %a %d/%m}"; - tooltip-format = "{calendar}"; - calendar = { - mode = "year"; - mode-mon-col = 3; - weeks-pos = "right"; - on-scroll = 1; - on-click-right = "mode"; - format = { - months = "{}"; - days = "{}"; - weeks = "W{}"; - weekdays = "{}"; - today = "{}"; + settings = [ + { + layer = "top"; + modules-left = [ + "sway/workspaces" + "sway/mode" + "sway/window" + ]; + modules-center = [ "clock" ]; + modules-right = lib.flatten [ + "sway/language" + "mpd" + "custom/playerctl" + "tray" + "custom/caffeine" + "pulseaudio" + (lib.optional (osConfig.services.vpn.enable or false) "custom/vpn") + "network" + "battery" + ]; + battery = { + tooltip = true; + states = { + full = 100; + good = 95; + warning = 25; }; + format = "{icon} "; + format-charging = ""; + format-plugged = ""; + format-full = ""; + format-warning = "{icon} {time}"; + format-icons = [ + "" + "" + "" + "" + "" + "" + ]; }; - actions = { - on-click-right = "mode"; - on-click-forward = "tz_up"; - on-click-backward = "tz_down"; - on-scroll-up = "shift_up"; - on-scroll-down = "shift_down"; - }; - }; - mpd = - let - mpc = "${pkgs.mpc-cli}/bin/mpc"; - in - { - format = "{stateIcon} {title} - {artist}"; - format-paused = "{stateIcon}"; - format-stopped = ""; - state-icons = { - stopped = ""; - paused = ""; - playing = ""; - }; + network = { + interval = 5; tooltip = false; - on-click = "${mpc} toggle"; - on-scroll-up = "${mpc} vol +10"; - on-scroll-down = "${mpc} vol -10"; + on-click = "terminal -e iwd"; + format-wifi = "{icon}"; + format-icons = [ + "" + "" + "" + "" + "" + ]; + format-ethernet = "󰈀"; + format-linked = "󰈀"; + format-disconnected = ""; }; - "custom/playerctl" = { - format = "{} "; - exec = "${pkgs.playerctl-status}/bin/playerctl-status"; - on-click = "${pkgs.playerctl}/bin/playerctl --ignore-player=mpd play-pause"; - interval = 1; - tooltip = false; - }; - "sway/language" = { format = "{short} {variant}"; }; - "custom/caffeine" = { - format = "{}"; - exec = "systemctl --user status swayidle > /dev/null && echo 󰒲 || echo 󰒳"; - on-click = "${pkgs._sway_idle_toggle}/bin/_sway_idle_toggle"; - interval = 1; - tooltip = false; - }; - "custom/vpn" = lib.mkIf (osConfig.services.vpn.enable or false) { - format = "{}"; - exec = '' - ${pkgs.mullvad}/bin/mullvad status | ${pkgs.gnugrep}/bin/grep "^Connected" > /dev/null \ - && echo "" \ - || echo "" - ''; - on-click = "mullvad connect"; - on-click-right = "mullvad disconnect"; - interval = 1; - tooltip = false; - }; - pulseaudio = { - interval = 5; - tooltip = false; - scroll-step = 10; - format = "{icon}"; - format-bluetooth = ""; - format-bluetooth-muted = "󰝟"; - format-muted = "󰝟"; - format-icons = { - "rtp-sink" = - [ "󰕿" "󰖀" "󰕾" ]; - "alsa_output.usb-C-Media_Electronics_Inc._USB_Audio_Device-00.analog-stereo" = - [ " 󰕿" " 󰖀" " 󰕾" ]; - "alsa_output.pci-0000_09_00.4.analog-stereo" = - [ " 󰕿" " 󰖀" " 󰕾" ]; - headphone = [ " 󰕿" " 󰖀" " 󰕾" ]; - handsfree = ""; - headset = ""; - phone = ""; - portable = ""; - car = ""; - default = [ "󰕿" "󰖀" "󰕾" ]; + "sway/workspaces" = { + enable-bar-scroll = true; + format = "{icon}"; + format-icons = { + "1" = ""; + "2" = ""; + "3" = "󰅩"; + "4" = ""; + "5" = ""; + "6" = ""; + "7" = "󰇮"; + "8" = ""; + "9" = ""; + "10" = ""; + urgent = ""; + # focused = ""; + default = ""; + }; }; - on-click = "pavucontrol"; - on-click-right = "${pkgs.pulse_sink}/bin/pulse_sink"; - on-scroll-up = "${pkgs.volumesh}/bin/volumesh -i 10"; - on-scroll-down = "${pkgs.volumesh}/bin/volumesh -d 10"; - }; - }]; - style = builtins.readFile (pkgs.substituteAll { - src = ./style.css; + "sway/window" = { + max-length = 40; + }; + "tray" = { + "spacing" = 7; + "icon-size" = 19; + }; + clock = { + interval = 60; + format = "{:%H:%M %a %d/%m}"; + tooltip-format = "{calendar}"; + calendar = { + mode = "year"; + mode-mon-col = 3; + weeks-pos = "right"; + on-scroll = 1; + on-click-right = "mode"; + format = { + months = "{}"; + days = "{}"; + weeks = "W{}"; + weekdays = "{}"; + today = "{}"; + }; + }; + actions = { + on-click-right = "mode"; + on-click-forward = "tz_up"; + on-click-backward = "tz_down"; + on-scroll-up = "shift_up"; + on-scroll-down = "shift_down"; + }; + }; + mpd = + let + mpc = "${pkgs.mpc-cli}/bin/mpc"; + in + { + format = "{stateIcon} {title} - {artist}"; + format-paused = "{stateIcon}"; + format-stopped = ""; + state-icons = { + stopped = ""; + paused = ""; + playing = ""; + }; + tooltip = false; + on-click = "${mpc} toggle"; + on-scroll-up = "${mpc} vol +10"; + on-scroll-down = "${mpc} vol -10"; + }; + "custom/playerctl" = { + format = "{} "; + exec = "${pkgs.playerctl-status}/bin/playerctl-status"; + on-click = "${pkgs.playerctl}/bin/playerctl --ignore-player=mpd play-pause"; + interval = 1; + tooltip = false; + }; + "sway/language" = { + format = "{short} {variant}"; + }; + "custom/caffeine" = { + format = "{}"; + exec = "systemctl --user status swayidle > /dev/null && echo 󰒲 || echo 󰒳"; + on-click = "${pkgs._sway_idle_toggle}/bin/_sway_idle_toggle"; + interval = 1; + tooltip = false; + }; + "custom/vpn" = lib.mkIf (osConfig.services.vpn.enable or false) { + format = "{}"; + exec = '' + ${pkgs.mullvad}/bin/mullvad status | ${pkgs.gnugrep}/bin/grep "^Connected" > /dev/null \ + && echo "" \ + || echo "" + ''; + on-click = "mullvad connect"; + on-click-right = "mullvad disconnect"; + interval = 1; + tooltip = false; + }; + pulseaudio = { + interval = 5; + tooltip = false; + scroll-step = 10; + format = "{icon}"; + format-bluetooth = ""; + format-bluetooth-muted = "󰝟"; + format-muted = "󰝟"; + format-icons = { + "rtp-sink" = [ + "󰕿" + "󰖀" + "󰕾" + ]; + "alsa_output.usb-C-Media_Electronics_Inc._USB_Audio_Device-00.analog-stereo" = [ + " 󰕿" + " 󰖀" + " 󰕾" + ]; + "alsa_output.pci-0000_09_00.4.analog-stereo" = [ + " 󰕿" + " 󰖀" + " 󰕾" + ]; + headphone = [ + " 󰕿" + " 󰖀" + " 󰕾" + ]; + handsfree = ""; + headset = ""; + phone = ""; + portable = ""; + car = ""; + default = [ + "󰕿" + "󰖀" + "󰕾" + ]; + }; + on-click = "pavucontrol"; + on-click-right = "${pkgs.pulse_sink}/bin/pulse_sink"; + on-scroll-up = "${pkgs.volumesh}/bin/volumesh -i 10"; + on-scroll-down = "${pkgs.volumesh}/bin/volumesh -d 10"; + }; + } + ]; + style = builtins.readFile ( + pkgs.substituteAll { + src = ./style.css; - accent_color = accent.color; + accent_color = accent.color; - color_bg = color.bg; - color_bg_dark = color.bg_dark; - color_bg_light = color.bg_light; - color_txt = color.txt; + color_bg = color.bg; + color_bg_dark = color.bg_dark; + color_bg_light = color.bg_light; + color_txt = color.txt; - font_interface = font.interface; + font_interface = font.interface; - font_size_big = "${toString font.size.big}px"; - font_size_medium = "${toString font.size.medium}px"; - }); + font_size_big = "${toString font.size.big}px"; + font_size_medium = "${toString font.size.medium}px"; + } + ); }; home.packages = with pkgs; [ waybar ]; }; diff --git a/user/xdg-dirs.nix b/user/xdg-dirs.nix index d95d6de..a9e1c9b 100644 --- a/user/xdg-dirs.nix +++ b/user/xdg-dirs.nix @@ -1,4 +1,10 @@ -{ config, pkgs, lib, inputs, ... }: +{ + config, + pkgs, + lib, + inputs, + ... +}: let HOME = config.home.homeDirectory; in diff --git a/user/zathura.nix b/user/zathura.nix index d3c9f5e..ccb4c42 100644 --- a/user/zathura.nix +++ b/user/zathura.nix @@ -1,6 +1,17 @@ -{ config, pkgs, lib, font, ... }: +{ + config, + pkgs, + lib, + font, + ... +}: let - inherit (pkgs.uservars) key accent font theme; + inherit (pkgs.uservars) + key + accent + font + theme + ; inherit (theme) color; in {