diff --git a/flake.nix b/flake.nix index 8f847b0..7b042c9 100644 --- a/flake.nix +++ b/flake.nix @@ -68,14 +68,11 @@ 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; }; @@ -88,37 +85,32 @@ 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 = { @@ -152,16 +144,11 @@ }; 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; @@ -182,6 +169,6 @@ packages.${system} = pkgs // packages; - formatter.${system} = pkgs.nixfmt-rfc-style; + formatter.${system} = pkgs.nixpkgs-fmt; }; } diff --git a/hosts/double-rainbow.nix b/hosts/double-rainbow.nix index be5dd48..7725898 100644 --- a/hosts/double-rainbow.nix +++ b/hosts/double-rainbow.nix @@ -1,32 +1,13 @@ -{ - 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 = [ ]; @@ -37,7 +18,8 @@ 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"; @@ -55,7 +37,8 @@ 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 c318665..e6f0e75 100644 --- a/hosts/i15.nix +++ b/hosts/i15.nix @@ -1,30 +1,15 @@ # 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 = [ ]; @@ -60,12 +45,10 @@ 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 @@ -76,6 +59,7 @@ 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 213765b..c447c45 100644 --- a/hosts/monolith.nix +++ b/hosts/monolith.nix @@ -1,38 +1,21 @@ # 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" @@ -105,34 +88,22 @@ 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"; @@ -142,20 +113,8 @@ 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; - }; - # 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 # still possible to use this option, but it's recommended to use it in conjunction @@ -163,7 +122,8 @@ 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 @@ -180,10 +140,8 @@ 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 462e070..a0e99b7 100644 --- a/hosts/phantom/default.nix +++ b/hosts/phantom/default.nix @@ -1,10 +1,4 @@ -{ - config, - pkgs, - inputs, - ... -}: -{ +{ config, pkgs, inputs, ... }: { imports = [ ./vpsadminos.nix inputs.agenix.nixosModules.default @@ -55,16 +49,10 @@ 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"; }; - networking.firewall.allowedTCPPorts = [ 8745 ]; - system.stateVersion = "23.05"; # Never change this } + diff --git a/hosts/phantom/email.nix b/hosts/phantom/email.nix index 23f18fc..e0a135e 100644 --- a/hosts/phantom/email.nix +++ b/hosts/phantom/email.nix @@ -1,14 +1,10 @@ -{ - 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; @@ -58,4 +54,5 @@ $config['plugins'] = [ "carddav", "archive" ]; ''; }; + } diff --git a/hosts/phantom/forgejo.nix b/hosts/phantom/forgejo.nix index eefb003..61f0a51 100644 --- a/hosts/phantom/forgejo.nix +++ b/hosts/phantom/forgejo.nix @@ -1,9 +1,4 @@ -{ - 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 683a684..1a89a15 100644 --- a/hosts/phantom/hardware-config.nix +++ b/hosts/phantom/hardware-config.nix @@ -1,14 +1,7 @@ -{ - 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 f984c65..9d15d6b 100644 --- a/hosts/phantom/mastodon.nix +++ b/hosts/phantom/mastodon.nix @@ -1,10 +1,4 @@ -{ - 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 de1bd6d..20c7173 100644 --- a/hosts/phantom/nextcloud.nix +++ b/hosts/phantom/nextcloud.nix @@ -1,10 +1,4 @@ -{ - config, - pkgs, - inputs, - ... -}: -{ +{ config, pkgs, inputs, ... }: { services.nextcloud = { enable = true; package = pkgs.nextcloud27; @@ -28,4 +22,6 @@ group = "nextcloud"; }; }; + } + diff --git a/hosts/phantom/nginx.nix b/hosts/phantom/nginx.nix index 0153fa6..8692134 100644 --- a/hosts/phantom/nginx.nix +++ b/hosts/phantom/nginx.nix @@ -1,10 +1,4 @@ -{ - config, - pkgs, - lib, - ... -}: -{ +{ config, pkgs, lib, ... }: { services.nginx = { enable = true; recommendedProxySettings = true; @@ -14,33 +8,21 @@ }; # 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 abbda7d..55e4cbc 100644 --- a/hosts/phantom/syncthing.nix +++ b/hosts/phantom/syncthing.nix @@ -1,10 +1,4 @@ -{ - config, - pkgs, - inputs, - ... -}: -{ +{ config, pkgs, inputs, ... }: { services.syncthing = { enable = true; @@ -20,10 +14,11 @@ 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 6291321..75aee27 100644 --- a/hosts/phantom/users.nix +++ b/hosts/phantom/users.nix @@ -1,12 +1,8 @@ -{ pkgs, ... }: -{ +{ pkgs, ... }: { security.rtkit.enable = true; services.openssh = { enable = true; - ports = [ - 9022 - 22 - ]; + ports = [ 9022 22 ]; settings = { PasswordAuthentication = false; KbdInteractiveAuthentication = false; @@ -19,15 +15,7 @@ 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" @@ -44,5 +32,7 @@ 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 8102fbb..40401cd 100644 --- a/hosts/phantom/vpsadminos.nix +++ b/hosts/phantom/vpsadminos.nix @@ -6,12 +6,7 @@ # # https://github.com/vpsfreecz/vpsadminos/blob/staging/os/lib/nixos-container/vpsadminos.nix -{ - config, - pkgs, - lib, - ... -}: +{ config, pkgs, lib, ... }: with lib; let nameservers = [ @@ -27,19 +22,16 @@ 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 5608c0f..3530e06 100644 --- a/hosts/phantom/writefreely.nix +++ b/hosts/phantom/writefreely.nix @@ -1,10 +1,4 @@ -{ - config, - pkgs, - inputs, - ... -}: -{ +{ config, pkgs, inputs, ... }: { services.writefreely = { enable = true; acme.enable = true; @@ -28,3 +22,4 @@ }; }; } + diff --git a/hosts/pixie.nix b/hosts/pixie.nix index 9aa5a1e..5f8ce66 100644 --- a/hosts/pixie.nix +++ b/hosts/pixie.nix @@ -1,25 +1,13 @@ # 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 = [ ]; @@ -30,7 +18,8 @@ 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"; @@ -57,7 +46,8 @@ # 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 b977ee6..776ebec 100644 --- a/hosts/rainbow.nix +++ b/hosts/rainbow.nix @@ -1,34 +1,16 @@ # 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 = [ ]; @@ -64,12 +46,10 @@ 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 @@ -79,7 +59,8 @@ 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 14257ba..060a0c0 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -1,5 +1,4 @@ -{ inputs, packages, ... }: -rec { +{ inputs, packages, ... }: rec { all = [ scripts sway @@ -14,87 +13,68 @@ rec { 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 - ''; + 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 ]; }); - 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="; - }) - ]; - }); - } - ); + }; + 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 f824066..adf2d7f 100644 --- a/pkgs/blade-formatter/default.nix +++ b/pkgs/blade-formatter/default.nix @@ -1,12 +1,11 @@ -{ - lib, - mkYarnPackage, - fetchFromGitHub, - fetchYarnDeps, - testers, - writeText, - runCommand, - blade-formatter, +{ lib +, mkYarnPackage +, fetchFromGitHub +, fetchYarnDeps +, testers +, writeText +, runCommand +, blade-formatter }: mkYarnPackage rec { @@ -41,17 +40,15 @@ mkYarnPackage rec { Hello world! @endif ''; - actual = - runCommand "actual" - { - nativeBuildInputs = [ blade-formatter ]; - base = writeText "base" '' - @if( true ) Hello world! @endif - ''; - } - '' - blade-formatter $base > $out + actual = runCommand "actual" + { + nativeBuildInputs = [ blade-formatter ]; + base = writeText "base" '' + @if( true ) Hello world! @endif ''; + } '' + blade-formatter $base > $out + ''; }; }; diff --git a/pkgs/cargo-checkmate.nix b/pkgs/cargo-checkmate.nix index a85ff80..0620667 100644 --- a/pkgs/cargo-checkmate.nix +++ b/pkgs/cargo-checkmate.nix @@ -1,12 +1,11 @@ -{ - lib, - rustPlatform, - fetchFromGitHub, - pkg-config, - openssl, - zlib, - stdenv, - Security ? null, +{ lib +, rustPlatform +, fetchFromGitHub +, pkg-config +, openssl +, zlib +, stdenv +, Security ? null }: rustPlatform.buildRustPackage rec { @@ -23,7 +22,9 @@ 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 00600fc..0fdc3eb 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -1,8 +1,7 @@ # 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 043aff6..c7fce2e 100644 --- a/pkgs/emmet-cli.nix +++ b/pkgs/emmet-cli.nix @@ -1,7 +1,6 @@ -{ - lib, - buildNpmPackage, - fetchFromGitHub, +{ lib +, buildNpmPackage +, fetchFromGitHub }: buildNpmPackage rec { diff --git a/pkgs/lipsum.nix b/pkgs/lipsum.nix index 427f04e..e1dabe5 100644 --- a/pkgs/lipsum.nix +++ b/pkgs/lipsum.nix @@ -11,7 +11,9 @@ pkgs.stdenv.mkDerivation rec { wrapGAppsHook ]; - makeFlags = [ "PRG=${pname}" ]; + makeFlags = [ + "PRG=${pname}" + ]; installPhase = '' install -Dm 755 "$pname" "$out/bin/$pname" @@ -19,3 +21,4 @@ pkgs.stdenv.mkDerivation rec { glib-compile-schemas "$out/share/glib-2.0/schemas/" ''; } + diff --git a/scripts/default.nix b/scripts/default.nix index f509e37..bc2ac3d 100644 --- a/scripts/default.nix +++ b/scripts/default.nix @@ -1,134 +1,59 @@ -( - 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 368b837..90de405 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -2,12 +2,8 @@ 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 1bcea1f..20eb72e 100644 --- a/system/bluetooth.nix +++ b/system/bluetooth.nix @@ -1,5 +1,4 @@ -{ pkgs, ... }: -{ +{ pkgs, ... }: { services.blueman.enable = true; hardware.bluetooth = { enable = true; @@ -9,9 +8,7 @@ # Discoverable = true; AlwaysPairable = true; }; - Policy = { - AutoEnable = true; - }; + Policy = { AutoEnable = true; }; }; }; } diff --git a/system/boot.nix b/system/boot.nix index 81d838e..25e9a11 100644 --- a/system/boot.nix +++ b/system/boot.nix @@ -1,11 +1,4 @@ -{ - config, - pkgs, - lib, - inputs, - ... -}: -{ +{ config, pkgs, lib, inputs, ... }: { console = { font = "${pkgs.terminus_font}/share/consolefonts/ter-120n.psf.gz"; packages = [ pkgs.terminus_font ]; @@ -45,7 +38,9 @@ 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 7ff9b29..07af177 100644 --- a/system/cachix.nix +++ b/system/cachix.nix @@ -1,10 +1,4 @@ -{ - 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 8054fa9..130ca7d 100644 --- a/system/configuration.nix +++ b/system/configuration.nix @@ -1,13 +1,7 @@ # 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 377647d..c2c2941 100644 --- a/system/containers.nix +++ b/system/containers.nix @@ -1,5 +1,4 @@ -{ 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 d8bff5a..e6d4ccd 100644 --- a/system/fonts.nix +++ b/system/fonts.nix @@ -1,5 +1,4 @@ -{ pkgs, ... }: -{ +{ pkgs, ... }: { fonts.enableDefaultPackages = true; fonts.packages = with pkgs; [ noto-fonts diff --git a/system/gamemode.nix b/system/gamemode.nix index 92207cd..d9445ea 100644 --- a/system/gamemode.nix +++ b/system/gamemode.nix @@ -1,16 +1,8 @@ -{ - 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 335bc5a..1cc46a7 100644 --- a/system/gitlab-runner.nix +++ b/system/gitlab-runner.nix @@ -1,52 +1,40 @@ -{ 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"; - }; - tagList = [ "nix" ]; + ${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" ]; + }; } diff --git a/system/gnome.nix b/system/gnome.nix index 72b98c5..cb8c106 100644 --- a/system/gnome.nix +++ b/system/gnome.nix @@ -1,8 +1,7 @@ # 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. @@ -20,14 +19,11 @@ }; # 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 6bc6297..8293c64 100644 --- a/system/greetd.nix +++ b/system/greetd.nix @@ -1,17 +1,6 @@ -{ - 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 c5ef277..66aa2a2 100644 --- a/system/kde.nix +++ b/system/kde.nix @@ -1,5 +1,4 @@ -{ 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 07e7175..bb344c7 100644 --- a/system/locale.nix +++ b/system/locale.nix @@ -1,5 +1,4 @@ -{ 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 818b78b..e72ea0a 100644 --- a/system/media-packages.nix +++ b/system/media-packages.nix @@ -1,13 +1,6 @@ -{ - 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 fa2b3c6..ee07410 100644 --- a/system/monolith-forgejo-runner.nix +++ b/system/monolith-forgejo-runner.nix @@ -1,5 +1,4 @@ -{ 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 8e419d1..37b16dd 100644 --- a/system/monolith-gitlab-runner.nix +++ b/system/monolith-gitlab-runner.nix @@ -1,9 +1,4 @@ -{ - config, - pkgs, - lib, - ... -}: +{ config, pkgs, lib, ... }: let inherit (pkgs.callPackage ./gitlab-runner.nix { }) mkNixRunner; in @@ -20,8 +15,7 @@ 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 aee7518..c8ebdd9 100644 --- a/system/network.nix +++ b/system/network.nix @@ -1,5 +1,4 @@ -{ 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 6cc7161..0bd49c2 100644 --- a/system/nix-serve.nix +++ b/system/nix-serve.nix @@ -1,10 +1,4 @@ -{ - 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 18ac258..f9b0a82 100644 --- a/system/nix.nix +++ b/system/nix.nix @@ -1,13 +1,7 @@ -{ - 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,16 +11,13 @@ in nixPath = [ "nixpkgs=${inputs.nixpkgs}" ]; gc = { automatic = true; - dates = "weekly"; - options = "--delete-older-than 7d"; + dates = "daily"; + options = "--delete-older-than 3d"; }; 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 aa177de..2cae621 100644 --- a/system/rainbow-gitlab-runner.nix +++ b/system/rainbow-gitlab-runner.nix @@ -1,9 +1,4 @@ -{ - config, - pkgs, - lib, - ... -}: +{ config, pkgs, lib, ... }: let inherit (pkgs.callPackage ./gitlab-runner.nix { }) mkNixRunner; in @@ -20,8 +15,7 @@ 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 ca11fb4..c94581c 100644 --- a/system/secrets.nix +++ b/system/secrets.nix @@ -1,13 +1,18 @@ -{ 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 8ef55ab..3cdbf58 100644 --- a/system/sound.nix +++ b/system/sound.nix @@ -1,5 +1,4 @@ -{ pkgs, ... }: -{ +{ pkgs, ... }: { sound.enable = true; hardware.pulseaudio.enable = false; services.pipewire = { diff --git a/system/specialisation.nix b/system/specialisation.nix index 23b410f..c0e1498 100644 --- a/system/specialisation.nix +++ b/system/specialisation.nix @@ -1,7 +1,10 @@ -{ 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 ddc33c8..ce94c3d 100644 --- a/system/steam.nix +++ b/system/steam.nix @@ -1,27 +1,17 @@ -{ - 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 fcb9e3b..5a14448 100644 --- a/system/thunar.nix +++ b/system/thunar.nix @@ -1,10 +1,4 @@ -{ - config, - pkgs, - inputs, - ... -}: -{ +{ config, pkgs, inputs, ... }: { programs.thunar = { enable = true; plugins = with pkgs.xfce; [ @@ -18,15 +12,17 @@ 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 ead5528..2334897 100644 --- a/system/users.nix +++ b/system/users.nix @@ -1,5 +1,4 @@ -{ pkgs, ... }: -{ +{ pkgs, ... }: { security.sudo.wheelNeedsPassword = false; # services.getty.autologinUser = "lelgenio"; @@ -11,15 +10,7 @@ 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 ae2e2fb..8c7ec22 100644 --- a/user/alacritty.nix +++ b/user/alacritty.nix @@ -1,16 +1,6 @@ -{ - 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 { @@ -20,9 +10,7 @@ in settings = { font = { size = font.size.small; - normal = { - family = font.mono; - }; + normal = { family = font.mono; }; }; colors = { primary = { @@ -52,34 +40,31 @@ 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"; - }; - } - ]; - }; - mouse = { - hide_when_typing = true; + 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; }; keyboard.bindings = [ { key = lib.toUpper key.up; @@ -156,9 +141,7 @@ 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 38c36c6..047da54 100644 --- a/user/bmenu.nix +++ b/user/bmenu.nix @@ -1,17 +1,6 @@ -{ - 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 f0987ed..34ddd84 100644 --- a/user/chat.nix +++ b/user/chat.nix @@ -1,11 +1,4 @@ -{ - 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 6a756df..73ab483 100644 --- a/user/controller.nix +++ b/user/controller.nix @@ -1,11 +1,4 @@ -{ - 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 1b809d3..eaa4c93 100644 --- a/user/desktop-entries.nix +++ b/user/desktop-entries.nix @@ -1,10 +1,4 @@ -{ - config, - pkgs, - lib, - ... -}: -{ +{ config, pkgs, lib, ... }: { xdg.desktopEntries = { kak = { name = "Kakoune"; @@ -14,10 +8,7 @@ terminal = true; type = "Application"; icon = "kak.desktop"; - categories = [ - "Utility" - "TextEditor" - ]; + categories = [ "Utility" "TextEditor" ]; startupNotify = true; mimeType = [ "text/english" @@ -49,15 +40,10 @@ 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 4c442e3..b60f808 100644 --- a/user/firefox.nix +++ b/user/firefox.nix @@ -1,16 +1,6 @@ -{ - 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 07ba4c2..913e514 100644 --- a/user/fish/default.nix +++ b/user/fish/default.nix @@ -1,21 +1,6 @@ -{ - 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; @@ -49,12 +34,10 @@ 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"; @@ -81,9 +64,7 @@ in gr = "cd (git root)"; gri = "git rebase --interactive FETCH_HEAD"; }; - functions = { - fish_greeting = ""; - }; + functions = { fish_greeting = ""; }; }; programs = { zoxide.enable = true; @@ -104,18 +85,13 @@ 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 a4113fa..fc7856a 100644 --- a/user/fzf.nix +++ b/user/fzf.nix @@ -1,17 +1,6 @@ -{ - 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 = { @@ -26,21 +15,22 @@ 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 f50a249..f5392df 100644 --- a/user/git.nix +++ b/user/git.nix @@ -1,13 +1,6 @@ -{ - 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 d1f692d..70438c3 100644 --- a/user/gnome.nix +++ b/user/gnome.nix @@ -1,10 +1,4 @@ -{ - pkgs, - lib, - inputs, - ... -}: -lib.mkIf (pkgs.uservars.desktop == "gnome") { +{ pkgs, lib, inputs, ... }: lib.mkIf (pkgs.uservars.desktop == "gnome") { home.pointerCursor = { name = "Adwaita"; @@ -20,7 +14,9 @@ lib.mkIf (pkgs.uservars.desktop == "gnome") { 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" ]; }; @@ -44,9 +40,7 @@ lib.mkIf (pkgs.uservars.desktop == "gnome") { 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 dc39066..5dc20d0 100644 --- a/user/gpg.nix +++ b/user/gpg.nix @@ -1,10 +1,4 @@ -{ - config, - pkgs, - lib, - ... -}: -{ +{ config, pkgs, lib, ... }: { config = { services.gpg-agent = { enable = true; @@ -22,9 +16,7 @@ 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 = { @@ -39,10 +31,9 @@ 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 292cfb0..3e430fc 100644 --- a/user/helix.nix +++ b/user/helix.nix @@ -74,9 +74,7 @@ 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 = [ { @@ -98,29 +96,14 @@ 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; @@ -141,6 +124,8 @@ 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 7ec6061..d7a00a3 100644 --- a/user/home.nix +++ b/user/home.nix @@ -1,12 +1,4 @@ -{ - config, - pkgs, - lib, - inputs, - osConfig, - ... -}: -{ +{ config, pkgs, lib, inputs, osConfig, ... }: { imports = [ ./controller.nix ./waybar @@ -78,7 +70,9 @@ comma # System monitors - (btop.override { cudaSupport = true; }) + (btop.override { + cudaSupport = true; + }) amdgpu_top inxi dmidecode @@ -134,7 +128,7 @@ rust-analyzer # rust analyzer blade-formatter - nixfmt-rfc-style + nixpkgs-fmt ]; fonts.fontconfig.enable = true; @@ -146,11 +140,10 @@ }; }; home.sessionVariables = { - VOLUME_CHANGE_SOUND = "${pkgs.sound-theme-freedesktop}/share/sounds/freedesktop/stereo/audio-volume-change.oga"; - }; - programs.bash = { - enable = true; + VOLUME_CHANGE_SOUND = + "${pkgs.sound-theme-freedesktop}/share/sounds/freedesktop/stereo/audio-volume-change.oga"; }; + programs.bash = { enable = true; }; xdg.defaultApplications = { enable = true; @@ -161,8 +154,7 @@ { 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"; @@ -171,14 +163,12 @@ 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 = { @@ -192,16 +182,12 @@ }; }; 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 e1a632b..992964a 100644 --- a/user/hyprland.nix +++ b/user/hyprland.nix @@ -1,10 +1,4 @@ -{ - config, - pkgs, - lib, - ... -}: -{ +{ config, pkgs, lib, ... }: { config = lib.mkIf (pkgs.uservars.desktop == "hyprland") { wayland.windowManager.hyprland = { enable = false; @@ -128,9 +122,6 @@ ''; }; 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 e9b9d07..dbac3e3 100644 --- a/user/kakoune/colors.nix +++ b/user/kakoune/colors.nix @@ -1,9 +1,4 @@ -{ - pkgs, - lib, - color, - accent, -}: +{ pkgs, lib, color, accent }: let colors = lib.mapAttrs (_: lib.replaceStrings [ "#" ] [ "rgb:" ]) { accent_fg = accent.fg; @@ -99,9 +94,8 @@ 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 @@ -112,5 +106,6 @@ with colors; Error = "red"; Warning = "yellow"; Hint = "blue"; - } -)) + }) +) + diff --git a/user/kakoune/default.nix b/user/kakoune/default.nix index 091fe1b..c39b61b 100644 --- a/user/kakoune/default.nix +++ b/user/kakoune/default.nix @@ -1,17 +1,6 @@ -{ - 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; @@ -85,39 +74,26 @@ 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 @@ -147,3 +123,4 @@ in }; }; } + diff --git a/user/kakoune/filetypes.kak b/user/kakoune/filetypes.kak index b384bfe..cd93b49 100644 --- a/user/kakoune/filetypes.kak +++ b/user/kakoune/filetypes.kak @@ -12,7 +12,7 @@ hook global WinSetOption filetype=c %{ } hook global WinSetOption filetype=nix %{ - set buffer formatcmd 'nixfmt' + set buffer formatcmd 'nixpkgs-fmt' } hook global BufCreate .*\.html %{ diff --git a/user/lf/default.nix b/user/lf/default.nix index 8dc04a2..5bc0759 100644 --- a/user/lf/default.nix +++ b/user/lf/default.nix @@ -1,11 +1,4 @@ -{ - config, - pkgs, - lib, - inputs, - ... -}: -{ +{ config, pkgs, lib, inputs, ... }: { programs.lf = { enable = true; keybindings = { diff --git a/user/man.nix b/user/man.nix index c77607e..5b80a4e 100644 --- a/user/man.nix +++ b/user/man.nix @@ -1,20 +1,5 @@ -{ - 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 f43564f..5e54f46 100644 --- a/user/mangohud.nix +++ b/user/mangohud.nix @@ -1,20 +1,6 @@ -{ - 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 ff39ea4..533b00f 100644 --- a/user/mimeapps.nix +++ b/user/mimeapps.nix @@ -1,10 +1,4 @@ -{ - config, - pkgs, - lib, - font, - ... -}: +{ config, pkgs, lib, font, ... }: let inherit (pkgs.uservars) browser; cfg = config.xdg.defaultApplications; @@ -32,21 +26,20 @@ 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; @@ -428,6 +421,7 @@ in "x-theora+ogg" ]; + archive-suffixes = [ "bzip2" "gzip" @@ -493,5 +487,6 @@ in enable = true; defaultApplications = mimes; }; + }; } diff --git a/user/mpd.nix b/user/mpd.nix index 8a4c155..c100000 100644 --- a/user/mpd.nix +++ b/user/mpd.nix @@ -1,10 +1,4 @@ -{ - 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 851860f..b66b2ca 100644 --- a/user/mpv.nix +++ b/user/mpv.nix @@ -1,5 +1,4 @@ -{ pkgs, ... }: -{ +{ pkgs, ... }: { config = { programs.mpv = { enable = true; @@ -7,7 +6,8 @@ # 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 e1c5bb8..e17b62a 100644 --- a/user/pass.nix +++ b/user/pass.nix @@ -1,15 +1,10 @@ -{ - 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 5e87618..8fd5188 100644 --- a/user/pipewire.nix +++ b/user/pipewire.nix @@ -1,10 +1,4 @@ -{ - 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 10e6c3d..dc5e8de 100644 --- a/user/pqiv.nix +++ b/user/pqiv.nix @@ -1,21 +1,8 @@ -{ - 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"; @@ -28,8 +15,8 @@ let montage_mode_shift_${axis}(${toString (sign * -1)}) } } - '' - ); + ''); + in { # My bemenu wrapper @@ -58,12 +45,7 @@ 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); } @@ -72,7 +54,10 @@ 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 999cc28..3a90888 100644 --- a/user/qutebrowser/colors.nix +++ b/user/qutebrowser/colors.nix @@ -1,18 +1,6 @@ -{ - 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 { @@ -50,12 +38,9 @@ in }; in { - bar = { - bg = color.bg; - }; + bar = { bg = color.bg; }; pinned = tabs_defaults; - } - // tabs_defaults; + } // tabs_defaults; ######################################################## # Completion for urls and commands @@ -63,18 +48,10 @@ 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; @@ -91,9 +68,7 @@ in top = color.bg_dark; bottom = color.bg_dark; }; - match = { - fg = color.txt; - }; + match = { fg = color.txt; }; }; }; }; @@ -127,16 +102,10 @@ in }; url = { success = { - https = { - fg = color.txt; - }; - http = { - fg = color.normal.red; - }; - }; - hover = { - fg = color.normal.cyan; + https = { fg = color.txt; }; + http = { fg = color.normal.red; }; }; + hover = { fg = color.normal.cyan; }; }; }; ######################################################## @@ -144,15 +113,9 @@ 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; }; }; ######################################################## @@ -162,9 +125,7 @@ in hints = { fg = color.txt; bg = color.bg; - match = { - fg = accent.color; - }; + match = { fg = accent.color; }; }; ######################################################## @@ -174,9 +135,7 @@ in keyhint = { fg = color.txt; bg = color.bg; - suffix = { - fg = accent.color; - }; + suffix = { fg = accent.color; }; }; ######################################################## @@ -192,9 +151,7 @@ in fg = accent.fg; bg = accent.color; }; - disabled = { - fg = color.bg_light; - }; + disabled = { fg = color.bg_light; }; }; ######################################################## @@ -259,3 +216,4 @@ in ''; }; } + diff --git a/user/qutebrowser/dark-theme.nix b/user/qutebrowser/dark-theme.nix index 6acd813..a596251 100644 --- a/user/qutebrowser/dark-theme.nix +++ b/user/qutebrowser/dark-theme.nix @@ -1,71 +1,63 @@ -{ - 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 = { @@ -95,3 +87,4 @@ in ''; }; } + diff --git a/user/qutebrowser/default.nix b/user/qutebrowser/default.nix index c115cca..0f2914a 100644 --- a/user/qutebrowser/default.nix +++ b/user/qutebrowser/default.nix @@ -1,10 +1,4 @@ -{ - config, - pkgs, - lib, - font, - ... -}: +{ config, pkgs, lib, font, ... }: let inherit (pkgs.uservars) key browser editor; in @@ -65,6 +59,7 @@ in "${key.insertMode}" = "mode-enter insert"; }; + }; settings = { tabs.tree_tabs = true; @@ -83,8 +78,7 @@ in { kakoune = "kak"; helix = "hx"; - } - .${editor} + }.${editor} "{file}" "+{line}" ]; @@ -118,9 +112,7 @@ in ExecStart = "${pkgs.qutebrowser}/bin/qutebrowser"; Restart = "on-failure"; }; - Install = { - WantedBy = [ "sway-session.target" ]; - }; + Install = { WantedBy = [ "sway-session.target" ]; }; }; }; home.file = { @@ -157,3 +149,4 @@ in }; }; } + diff --git a/user/qutebrowser/fonts.nix b/user/qutebrowser/fonts.nix index 6ab43de..e6eee6b 100644 --- a/user/qutebrowser/fonts.nix +++ b/user/qutebrowser/fonts.nix @@ -33,3 +33,4 @@ in }; }; } + diff --git a/user/ranger/default.nix b/user/ranger/default.nix index 4b97170..ec09936 100644 --- a/user/ranger/default.nix +++ b/user/ranger/default.nix @@ -1,11 +1,4 @@ -{ - 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 79307eb..d9026d2 100644 --- a/user/rofi.nix +++ b/user/rofi.nix @@ -1,17 +1,6 @@ -{ - 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 { @@ -53,15 +42,14 @@ 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"; @@ -90,7 +78,9 @@ in margin-right = mkLiteral "20px"; size = 24; }; + }; + }; }; } diff --git a/user/ssh.nix b/user/ssh.nix index 3193876..8230dc1 100644 --- a/user/ssh.nix +++ b/user/ssh.nix @@ -1,13 +1,6 @@ -{ - 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 d7afafd..7719370 100644 --- a/user/sway/default.nix +++ b/user/sway/default.nix @@ -1,16 +1,6 @@ -{ - 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 { @@ -52,13 +42,7 @@ 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 { @@ -95,7 +79,9 @@ 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"; }; }; @@ -146,10 +132,7 @@ in grim swappy (tesseract5.override { - enableLanguages = [ - "eng" - "por" - ]; + enableLanguages = [ "eng" "por" ]; }) ]; }; diff --git a/user/sway/kanshi.nix b/user/sway/kanshi.nix index f35fd4f..22d9550 100644 --- a/user/sway/kanshi.nix +++ b/user/sway/kanshi.nix @@ -1,16 +1,6 @@ -{ - 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 { @@ -36,13 +26,11 @@ 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 c8575ab..637a2d5 100644 --- a/user/sway/mako.nix +++ b/user/sway/mako.nix @@ -1,16 +1,6 @@ -{ - 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 { @@ -58,8 +48,6 @@ 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 0d1eefd..ff46238 100644 --- a/user/sway/sway-assigns.nix +++ b/user/sway/sway-assigns.nix @@ -1,18 +1,20 @@ { 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 fe22594..360ccdc 100644 --- a/user/sway/sway-binds.nix +++ b/user/sway/sway-binds.nix @@ -1,11 +1,6 @@ { config, pkgs, ... }: let - inherit (pkgs.uservars) - key - accent - font - theme - ; + inherit (pkgs.uservars) key accent font theme; inherit (theme) color; inherit (pkgs) lib; @@ -26,27 +21,29 @@ 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" @@ -70,51 +67,36 @@ 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"; @@ -134,7 +116,8 @@ 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"; @@ -153,7 +136,8 @@ 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"; }; @@ -171,7 +155,8 @@ 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 ea75ca8..7cb82bd 100644 --- a/user/sway/sway-modes.nix +++ b/user/sway/sway-modes.nix @@ -1,11 +1,6 @@ { config, pkgs, ... }: let - inherit (pkgs.uservars) - key - accent - font - theme - ; + inherit (pkgs.uservars) key accent font theme; inherit (theme) color; inherit (pkgs) lib; @@ -13,8 +8,10 @@ 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"; @@ -23,32 +20,20 @@ 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"; @@ -62,38 +47,28 @@ 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 b0bd455..7b659ed 100644 --- a/user/sway/swayidle.nix +++ b/user/sway/swayidle.nix @@ -1,16 +1,6 @@ -{ - 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 eb6104e..f9f06eb 100644 --- a/user/sway/swaylock.nix +++ b/user/sway/swaylock.nix @@ -1,16 +1,6 @@ -{ - 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 202eaff..2fc1fc1 100644 --- a/user/sway/theme.nix +++ b/user/sway/theme.nix @@ -1,53 +1,38 @@ -{ - 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; + 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:"; }; - 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; - } - ); + in + { gtk4 = shared; gtk3 = shared; } + ); qt = { enable = true; platformTheme.name = "qtct"; diff --git a/user/syncthing.nix b/user/syncthing.nix index 76e3584..8f36eeb 100644 --- a/user/syncthing.nix +++ b/user/syncthing.nix @@ -1,5 +1,4 @@ -{ ... }: -{ +{ ... }: { services.syncthing = { enable = true; tray = { diff --git a/user/thunar.nix b/user/thunar.nix index 2a9fe5b..3921eb5 100644 --- a/user/thunar.nix +++ b/user/thunar.nix @@ -1,12 +1,8 @@ -{ 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 80e6145..61170df 100644 --- a/user/vdir.nix +++ b/user/vdir.nix @@ -1,23 +1,19 @@ { 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 = { @@ -49,9 +45,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" @@ -67,9 +63,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/*" @@ -80,8 +76,10 @@ in ''; }; + home.packages = with pkgs; [ vdirsyncer todoman ]; + } diff --git a/user/vscode/default.nix b/user/vscode/default.nix index 35d972b..48851a0 100644 --- a/user/vscode/default.nix +++ b/user/vscode/default.nix @@ -1,5 +1,4 @@ -{ pkgs, config, ... }: -{ +{ pkgs, config, ... }: { programs.vscode = { enable = true; diff --git a/user/vscode/settings.json b/user/vscode/settings.json index 2ff41eb..9ac0729 100644 --- a/user/vscode/settings.json +++ b/user/vscode/settings.json @@ -9,18 +9,4 @@ "git.confirmSync": false, "editor.suggest.snippetsPreventQuickSuggestions": false, "update.mode": "none", - "intelephense.files.exclude": [ - "**/.git/**", - "**/.svn/**", - "**/.hg/**", - "**/CVS/**", - "**/.DS_Store/**", - "**/node_modules/**", - "**/bower_components/**", - "**/vendor/**/{Tests,tests}/**", - "**/.history/**", - "**/vendor/**/vendor/**", - "**/.direnv/**" - ], - "intelephense.format.braces": "k&r", -} +} \ No newline at end of file diff --git a/user/waybar/default.nix b/user/waybar/default.nix index 95615fa..5e4f329 100644 --- a/user/waybar/default.nix +++ b/user/waybar/default.nix @@ -1,18 +1,6 @@ -{ - 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 { @@ -21,226 +9,184 @@ 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 = [ - "" - "" - "" - "" - "" - "" - ]; + 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; }; - network = { - interval = 5; + 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 = "{}"; + }; + }; + 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 = "terminal -e iwd"; - format-wifi = "{icon}"; - format-icons = [ - "" - "" - "" - "" - "" - ]; - format-ethernet = "󰈀"; - format-linked = "󰈀"; - format-disconnected = ""; + on-click = "${mpc} toggle"; + on-scroll-up = "${mpc} vol +10"; + on-scroll-down = "${mpc} vol -10"; }; - "sway/workspaces" = { - enable-bar-scroll = true; - format = "{icon}"; - format-icons = { - "1" = ""; - "2" = ""; - "3" = "󰅩"; - "4" = ""; - "5" = ""; - "6" = ""; - "7" = "󰇮"; - "8" = ""; - "9" = ""; - "10" = ""; - urgent = ""; - # focused = ""; - default = ""; - }; + "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/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; + 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 a9e1c9b..d95d6de 100644 --- a/user/xdg-dirs.nix +++ b/user/xdg-dirs.nix @@ -1,10 +1,4 @@ -{ - 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 ccb4c42..d3c9f5e 100644 --- a/user/zathura.nix +++ b/user/zathura.nix @@ -1,17 +1,6 @@ -{ - 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 {