forked from fabian/nix
		
	finish flake and remove old trash
This commit is contained in:
		
							parent
							
								
									c8791adf39
								
							
						
					
					
						commit
						34e3cdaf81
					
				
					 32 changed files with 117 additions and 1799 deletions
				
			
		
							
								
								
									
										106
									
								
								base/default.nix
									
										
									
									
									
								
							
							
						
						
									
										106
									
								
								base/default.nix
									
										
									
									
									
								
							|  | @ -1,106 +0,0 @@ | ||||||
| # Edet 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, |  | ||||||
|   lib, |  | ||||||
|   ... |  | ||||||
| }: { |  | ||||||
|   imports = [ |  | ||||||
|     # Include the results of the hardware scan. |  | ||||||
|     ./hardware-configuration-custom.nix |  | ||||||
|   ]; |  | ||||||
| 
 |  | ||||||
|   # Use the systemd-boot EFI boot loader. |  | ||||||
|   boot.loader.systemd-boot.enable = true; |  | ||||||
|   boot.loader.efi.canTouchEfiVariables = true; |  | ||||||
|   boot.tmp.useTmpfs = true; |  | ||||||
|   boot.kernelPackages = pkgs.linuxPackages_latest; |  | ||||||
| 
 |  | ||||||
|   networking.hostName = "posixlycorrect"; # Define your hostname. !!mover esto a platform |  | ||||||
|   networking.networkmanager.enable = true; |  | ||||||
| 
 |  | ||||||
|   # Set your time zone. |  | ||||||
|   time.timeZone = "America/Costa_Rica"; |  | ||||||
| 
 |  | ||||||
|   # The global useDHCP flag is deprecated, therefore explicitly set to false here. |  | ||||||
|   # Per-interface useDHCP will be mandatory in the future, so this generated config |  | ||||||
|   # replicates the default behaviour. |  | ||||||
|   networking.useDHCP = false; |  | ||||||
|   networking.interfaces.enp7s0.useDHCP = true; |  | ||||||
|   networking.interfaces.wlp6s0.useDHCP = true; |  | ||||||
| 
 |  | ||||||
|   # Select internationalisation properties. |  | ||||||
|   i18n.defaultLocale = "en_US.UTF-8"; |  | ||||||
|   console = { |  | ||||||
|     font = "Lat2-Terminus16"; |  | ||||||
|     keyMap = "us"; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   # Enable the X11 windowing system. |  | ||||||
|   services.xserver = { |  | ||||||
|     enable = true; |  | ||||||
|     xkb.layout = "us"; |  | ||||||
|     displayManager.startx.enable = true; |  | ||||||
|   }; |  | ||||||
|   services.libinput.enable = true; |  | ||||||
| 
 |  | ||||||
|   hardware.opengl.enable = true; |  | ||||||
| 
 |  | ||||||
|   # Enable sound. |  | ||||||
|   sound.enable = true; |  | ||||||
|   hardware.pulseaudio.enable = true; |  | ||||||
| 
 |  | ||||||
|   programs.zsh.enable = true; |  | ||||||
|   environment.pathsToLink = ["/share/zsh"]; |  | ||||||
| 
 |  | ||||||
|   users = { |  | ||||||
|     users.fabian = { |  | ||||||
|       isNormalUser = true; |  | ||||||
|       uid = 1002; # nunca cambiar mi ID de usuario |  | ||||||
|       group = "fabian"; |  | ||||||
|       shell = pkgs.zsh; |  | ||||||
|       extraGroups = ["users" "wheel" "networkmanager" "dialout" "libvirtd"]; |  | ||||||
|     }; |  | ||||||
|     groups.fabian.gid = 1002; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   services.udev.packages = [ |  | ||||||
|     pkgs.android-udev-rules |  | ||||||
|   ]; |  | ||||||
| 
 |  | ||||||
|   users.users.temp = { |  | ||||||
|     isNormalUser = true; |  | ||||||
|     extraGroups = ["wheel"]; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   nixpkgs.config.allowUnfree = true; |  | ||||||
| 
 |  | ||||||
|   virtualisation.libvirtd.qemu.package = pkgs.qemu_kvm; |  | ||||||
|   virtualisation.libvirtd.qemu.ovmf.enable = true; |  | ||||||
|   virtualisation.libvirtd.qemu.ovmf.packages = [pkgs.OVMFFull.fd]; |  | ||||||
|   virtualisation.libvirtd.enable = true; |  | ||||||
|   programs.dconf.enable = true; |  | ||||||
|   # boot.kernelModules = [ "vfio" "vfio_iommu_type1" "vfio_pci" "vfio_virqfd" ]; |  | ||||||
|   # boot.kernelParams = [ "amd_iommu=on" "iommu=pt" "vfio-pci.ids=1002:699f,1002:aae0" "video=efifb:off" ]; |  | ||||||
|   virtualisation.libvirtd.onBoot = "start"; |  | ||||||
| 
 |  | ||||||
|   nix = { |  | ||||||
|     package = pkgs.nixFlakes; |  | ||||||
|     extraOptions = '' |  | ||||||
|       experimental-features = nix-command flakes repl-flake |  | ||||||
|     ''; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   hardware.opengl.driSupport32Bit = true; |  | ||||||
| 
 |  | ||||||
|   services.openssh.enable = true; |  | ||||||
| 
 |  | ||||||
|   services.earlyoom = { |  | ||||||
|     enable = true; |  | ||||||
|     enableNotifications = true; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   system.stateVersion = "21.11"; # No tocar esto |  | ||||||
| } |  | ||||||
|  | @ -1,43 +0,0 @@ | ||||||
| { |  | ||||||
|   config, |  | ||||||
|   lib, |  | ||||||
|   pkgs, |  | ||||||
|   modulesPath, |  | ||||||
|   ... |  | ||||||
| }: let |  | ||||||
|   subvol = subvol: { |  | ||||||
|     device = "/dev/disk/by-uuid/645fdba0-5c03-4285-926b-facded1ee259"; |  | ||||||
|     fsType = "btrfs"; |  | ||||||
|     options = ["subvol=${subvol}" "compress=zstd" "noatime" "ssd"]; |  | ||||||
|   }; |  | ||||||
| in { |  | ||||||
|   imports = [ |  | ||||||
|     (modulesPath + "/installer/scan/not-detected.nix") |  | ||||||
|   ]; |  | ||||||
| 
 |  | ||||||
|   boot.initrd = { |  | ||||||
|     availableKernelModules = ["xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod"]; |  | ||||||
|     luks.devices."toplevel" = { |  | ||||||
|       device = "/dev/disk/by-uuid/58277baa-90d4-4a5e-a658-1b918b89130a"; |  | ||||||
|       preLVM = false; |  | ||||||
|     }; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   fileSystems = { |  | ||||||
|     "/" = subvol "root"; |  | ||||||
|     "/toplevel" = subvol "/"; |  | ||||||
|     "/boot" = { |  | ||||||
|       device = "/dev/disk/by-uuid/B007-B007"; |  | ||||||
|       fsType = "vfat"; |  | ||||||
|       options = ["umask=027"]; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     "/extern" = { |  | ||||||
|       device = "/dev/disk/by-uuid/7d8d3ec9-b456-4e2a-9396-551dcaf7705b"; |  | ||||||
|       fsType = "btrfs"; |  | ||||||
|       options = ["noatime" "compress=zstd"]; |  | ||||||
|     }; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; |  | ||||||
| } |  | ||||||
|  | @ -1 +0,0 @@ | ||||||
| {} |  | ||||||
							
								
								
									
										148
									
								
								flake.lock
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										148
									
								
								flake.lock
									
										
									
										generated
									
									
									
								
							|  | @ -1,148 +0,0 @@ | ||||||
| { |  | ||||||
|   "nodes": { |  | ||||||
|     "flake-utils": { |  | ||||||
|       "locked": { |  | ||||||
|         "lastModified": 1659877975, |  | ||||||
|         "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", |  | ||||||
|         "owner": "numtide", |  | ||||||
|         "repo": "flake-utils", |  | ||||||
|         "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", |  | ||||||
|         "type": "github" |  | ||||||
|       }, |  | ||||||
|       "original": { |  | ||||||
|         "owner": "numtide", |  | ||||||
|         "repo": "flake-utils", |  | ||||||
|         "type": "github" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "hm-isolation": { |  | ||||||
|       "locked": { |  | ||||||
|         "lastModified": 1675806557, |  | ||||||
|         "narHash": "sha256-39NPKKwU7JflyDG9Cn36UPPelkcNATsrCaoazuIO5PA=", |  | ||||||
|         "owner": "3442", |  | ||||||
|         "repo": "hm-isolation", |  | ||||||
|         "rev": "0b435299c3735231bf4faf1ea7de32d03f070056", |  | ||||||
|         "type": "github" |  | ||||||
|       }, |  | ||||||
|       "original": { |  | ||||||
|         "owner": "3442", |  | ||||||
|         "repo": "hm-isolation", |  | ||||||
|         "type": "github" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "home-manager": { |  | ||||||
|       "inputs": { |  | ||||||
|         "nixpkgs": [ |  | ||||||
|           "nixpkgs" |  | ||||||
|         ] |  | ||||||
|       }, |  | ||||||
|       "locked": { |  | ||||||
|         "lastModified": 1720042825, |  | ||||||
|         "narHash": "sha256-A0vrUB6x82/jvf17qPCpxaM+ulJnD8YZwH9Ci0BsAzE=", |  | ||||||
|         "owner": "nix-community", |  | ||||||
|         "repo": "home-manager", |  | ||||||
|         "rev": "e1391fb22e18a36f57e6999c7a9f966dc80ac073", |  | ||||||
|         "type": "github" |  | ||||||
|       }, |  | ||||||
|       "original": { |  | ||||||
|         "owner": "nix-community", |  | ||||||
|         "ref": "release-24.05", |  | ||||||
|         "repo": "home-manager", |  | ||||||
|         "type": "github" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "nixGL": { |  | ||||||
|       "inputs": { |  | ||||||
|         "flake-utils": "flake-utils", |  | ||||||
|         "nixpkgs": "nixpkgs" |  | ||||||
|       }, |  | ||||||
|       "locked": { |  | ||||||
|         "lastModified": 1713543440, |  | ||||||
|         "narHash": "sha256-lnzZQYG0+EXl/6NkGpyIz+FEOc/DSEG57AP1VsdeNrM=", |  | ||||||
|         "owner": "guibou", |  | ||||||
|         "repo": "nixGL", |  | ||||||
|         "rev": "310f8e49a149e4c9ea52f1adf70cdc768ec53f8a", |  | ||||||
|         "type": "github" |  | ||||||
|       }, |  | ||||||
|       "original": { |  | ||||||
|         "owner": "guibou", |  | ||||||
|         "repo": "nixGL", |  | ||||||
|         "type": "github" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "nixpkgs": { |  | ||||||
|       "locked": { |  | ||||||
|         "lastModified": 1660551188, |  | ||||||
|         "narHash": "sha256-a1LARMMYQ8DPx1BgoI/UN4bXe12hhZkCNqdxNi6uS0g=", |  | ||||||
|         "owner": "nixos", |  | ||||||
|         "repo": "nixpkgs", |  | ||||||
|         "rev": "441dc5d512153039f19ef198e662e4f3dbb9fd65", |  | ||||||
|         "type": "github" |  | ||||||
|       }, |  | ||||||
|       "original": { |  | ||||||
|         "owner": "nixos", |  | ||||||
|         "repo": "nixpkgs", |  | ||||||
|         "type": "github" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "nixpkgs_2": { |  | ||||||
|       "locked": { |  | ||||||
|         "lastModified": 1725001927, |  | ||||||
|         "narHash": "sha256-eV+63gK0Mp7ygCR0Oy4yIYSNcum2VQwnZamHxYTNi+M=", |  | ||||||
|         "owner": "nixos", |  | ||||||
|         "repo": "nixpkgs", |  | ||||||
|         "rev": "6e99f2a27d600612004fbd2c3282d614bfee6421", |  | ||||||
|         "type": "github" |  | ||||||
|       }, |  | ||||||
|       "original": { |  | ||||||
|         "owner": "nixos", |  | ||||||
|         "ref": "nixos-24.05", |  | ||||||
|         "repo": "nixpkgs", |  | ||||||
|         "type": "github" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "nur": { |  | ||||||
|       "locked": { |  | ||||||
|         "lastModified": 1725475632, |  | ||||||
|         "narHash": "sha256-is3Pft+K3MLR+nFQcjzmfvi4SVrguP7yDadfcFM0tQo=", |  | ||||||
|         "owner": "nix-community", |  | ||||||
|         "repo": "NUR", |  | ||||||
|         "rev": "d7ea0f74c7194ded318f12320724f481899d196a", |  | ||||||
|         "type": "github" |  | ||||||
|       }, |  | ||||||
|       "original": { |  | ||||||
|         "owner": "nix-community", |  | ||||||
|         "repo": "NUR", |  | ||||||
|         "type": "github" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "root": { |  | ||||||
|       "inputs": { |  | ||||||
|         "hm-isolation": "hm-isolation", |  | ||||||
|         "home-manager": "home-manager", |  | ||||||
|         "nixGL": "nixGL", |  | ||||||
|         "nixpkgs": "nixpkgs_2", |  | ||||||
|         "nur": "nur", |  | ||||||
|         "unstable": "unstable" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "unstable": { |  | ||||||
|       "locked": { |  | ||||||
|         "lastModified": 1725103162, |  | ||||||
|         "narHash": "sha256-Ym04C5+qovuQDYL/rKWSR+WESseQBbNAe5DsXNx5trY=", |  | ||||||
|         "owner": "nixos", |  | ||||||
|         "repo": "nixpkgs", |  | ||||||
|         "rev": "12228ff1752d7b7624a54e9c1af4b222b3c1073b", |  | ||||||
|         "type": "github" |  | ||||||
|       }, |  | ||||||
|       "original": { |  | ||||||
|         "owner": "nixos", |  | ||||||
|         "ref": "nixos-unstable", |  | ||||||
|         "repo": "nixpkgs", |  | ||||||
|         "type": "github" |  | ||||||
|       } |  | ||||||
|     } |  | ||||||
|   }, |  | ||||||
|   "root": "root", |  | ||||||
|   "version": 7 |  | ||||||
| } |  | ||||||
							
								
								
									
										161
									
								
								flake.nix
									
										
									
									
									
								
							
							
						
						
									
										161
									
								
								flake.nix
									
										
									
									
									
								
							|  | @ -12,77 +12,150 @@ | ||||||
|     impermanence.url = "github:nix-community/impermanence"; |     impermanence.url = "github:nix-community/impermanence"; | ||||||
|     hm-isolation.url = "github:3442/hm-isolation"; |     hm-isolation.url = "github:3442/hm-isolation"; | ||||||
|     nixGL.url = "github:guibou/nixGL"; |     nixGL.url = "github:guibou/nixGL"; | ||||||
| 
 |  | ||||||
|     flake-utils.url = "github:numtide/flake-utils"; |     flake-utils.url = "github:numtide/flake-utils"; | ||||||
|  |     vpsadminos.url = "github:vpsfreecz/vpsadminos"; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     homepage.url = "git+https://git.posixlycorrect.com/fabian/homepage.git?ref=master"; | ||||||
|  | 
 | ||||||
|  |     conduwuit = { | ||||||
|  |       url = "github:girlbossceo/conduwuit?ref=v0.4.5"; | ||||||
|  |       #FIXME: Podrá volver a "nixpkgs" una vez que rocksdb.enableLiburing llegue a stable | ||||||
|  |       inputs.nixpkgs.follows = "unstable"; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     authentik-nix = { | ||||||
|  |       url = "github:nix-community/authentik-nix"; | ||||||
|  |       inputs.nixpkgs.follows = "nixpkgs"; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     mediawikiSkinCitizen = { | ||||||
|  |       url = "github:StarCitizenTools/mediawiki-skins-Citizen/v2.27.0"; | ||||||
|  |       flake = false; | ||||||
|  |     }; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   outputs = { |   outputs = flakes @ { | ||||||
|     self, |     self, | ||||||
|     nixpkgs, |     nixpkgs, | ||||||
|     unstable, |     unstable, | ||||||
|     home-manager, |     home-manager, | ||||||
|     nur, |     nur, | ||||||
|  |     impermanence, | ||||||
|     hm-isolation, |     hm-isolation, | ||||||
|     nixGL, |     nixGL, | ||||||
|     ... |     flake-utils, | ||||||
|  |     vpsadminos, | ||||||
|  |     homepage, | ||||||
|  |     conduwuit, | ||||||
|  |     mediawikiSkinCitizen, | ||||||
|  |     authentik-nix, | ||||||
|   }: let |   }: let | ||||||
|     system = "x86_64-linux"; |     system = "x86_64-linux"; | ||||||
| 
 | 
 | ||||||
|     pkgs = import nixpkgs { |     importPkgs = flake: import flake { | ||||||
|       inherit system; |       inherit system; | ||||||
|  | 
 | ||||||
|  |       config = import ./pkgs/config nixpkgs.lib; | ||||||
|  |       overlays = [ nur.overlay self.overlays.default ]; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     inherit (pkgs) lib; |     pkgs = importPkgs nixpkgs; | ||||||
| 
 | 
 | ||||||
|     base = platform: { |     inherit (pkgs.local.lib) importAll; | ||||||
|       name = platform; |  | ||||||
|       value = nixpkgs.lib.nixosSystem { |  | ||||||
|         inherit system; |  | ||||||
| 
 | 
 | ||||||
|         modules = [(import ./base)]; |     local = import ./pkgs; | ||||||
|  | 
 | ||||||
|  |   in | ||||||
|  |   with pkgs.lib; { | ||||||
|  |     formatter.${system} = pkgs.alejandra; | ||||||
|  |     packages.${system} = pkgs.local; | ||||||
|  | 
 | ||||||
|  |     overlays.default = final: prev: | ||||||
|  |       let | ||||||
|  |         locals = local final prev; | ||||||
|  |       in | ||||||
|  |       locals.override // { | ||||||
|  |         local = locals; | ||||||
|  |         unstable = importPkgs unstable; | ||||||
|       }; |       }; | ||||||
|     }; |  | ||||||
| 
 | 
 | ||||||
|     home = platform: { |   nixosConfigurations =  | ||||||
|       name = "fabian@${platform}"; |     let | ||||||
|       value = home-manager.lib.homeManagerConfiguration { |       nixosSystem = { modules }: makeOverridable nixpkgs.lib.nixosSystem { | ||||||
|         inherit pkgs; |         inherit modules pkgs system; | ||||||
| 
 | 
 | ||||||
|  |         specialArgs = { | ||||||
|  |           inherit flakes; | ||||||
|  |         }; | ||||||
|  |       }; | ||||||
|  | 
 | ||||||
|  |       hostConfig = host: nixosSystem { | ||||||
|         modules = [ |         modules = [ | ||||||
|           (import ./home { |           ./sys | ||||||
|             inherit self nixpkgs unstable hm-isolation nixGL; |           host | ||||||
|           }) |  | ||||||
| 
 |  | ||||||
|           ./home/platforms/${platform}.nix |  | ||||||
| 
 |  | ||||||
|           { |  | ||||||
|             config.local = {inherit platform;}; |  | ||||||
|           } |  | ||||||
|         ]; |         ]; | ||||||
|       }; |       }; | ||||||
|  | 
 | ||||||
|  |     in | ||||||
|  |     mapAttrs (_: hostConfig) (importAll { root = ./sys/platforms; }); | ||||||
|  |      | ||||||
|  | 
 | ||||||
|  |   homeConfigurations =  | ||||||
|  |   let | ||||||
|  |     registry = { ... }: { | ||||||
|  |       config.nix.registry = mapAttrs ( | ||||||
|  |         _: value { | ||||||
|  |           flake = value; | ||||||
|  |         } | ||||||
|  |       ) flakes; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     localPkgs = import ./pkgs; |     home = platform: home-manager.lib.homeManagerConfiguration { | ||||||
|  |       inherit pkgs; | ||||||
| 
 | 
 | ||||||
|     platforms = domain: |       modules = [ | ||||||
|       map |         ./home | ||||||
|       (lib.removeSuffix ".nix") |         platforms | ||||||
|       (lib.attrNames (builtins.readDir ./${domain}/platforms)); |         registry | ||||||
| 
 |         hm-isolation.homeManagerModule | ||||||
|     configs = domain: builder: |       ]; | ||||||
|       lib.listToAttrs |  | ||||||
|       (map builder (platforms domain)); |  | ||||||
|   in { |  | ||||||
|     nixosConfigurations = configs "base" base; |  | ||||||
|     homeConfigurations = configs "home" home; |  | ||||||
|     packages.${system} = localPkgs pkgs; |  | ||||||
|     formatter.${system} = pkgs.alejandra; |  | ||||||
| 
 |  | ||||||
|     overlay = self: super: { |  | ||||||
|       unstable = import unstable { |  | ||||||
|         inherit (super) config system; |  | ||||||
|       }; |  | ||||||
|       local = localPkgs self; |  | ||||||
|     }; |     }; | ||||||
|  | 
 | ||||||
|  |     platformHome = platform: | ||||||
|  |     let | ||||||
|  |       value = home platform; | ||||||
|  |     in | ||||||
|  |     { | ||||||
|  |       inherit value; | ||||||
|  |       name = "${value.config.home.username}@${value.config.local.hostname}"; | ||||||
|  |     }; | ||||||
|  |   in | ||||||
|  |   mapAttrs' (_: platformHome) (importAll { root = ./home/platforms; }); | ||||||
|   }; |   }; | ||||||
|  | 
 | ||||||
|  |      | ||||||
|  |      | ||||||
|  |      | ||||||
|  |      | ||||||
|  |      | ||||||
|  |      | ||||||
|  |      | ||||||
|  |      | ||||||
|  |      | ||||||
|  |      | ||||||
|  |      | ||||||
|  |      | ||||||
|  |      | ||||||
|  |      | ||||||
|  |      | ||||||
|  |      | ||||||
|  |      | ||||||
|  |      | ||||||
|  |      | ||||||
|  |      | ||||||
|  |      | ||||||
|  |      | ||||||
|  |      | ||||||
|  |      | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -1,82 +0,0 @@ | ||||||
| { |  | ||||||
|   lib, |  | ||||||
|   config, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| with lib; { |  | ||||||
|   config = mkIf (!config.home.isolation.active) { |  | ||||||
|     accounts.email.maildirBasePath = "${config.home.homeDirectory}/mail"; |  | ||||||
|     accounts.email.accounts = { |  | ||||||
|       "default" = { |  | ||||||
|         address = "fabian@posixlycorrect.com"; |  | ||||||
|         userName = "fabianmontero@fastmail.com"; |  | ||||||
|         realName = "fabian"; |  | ||||||
|         primary = true; |  | ||||||
|         flavor = "fastmail.com"; |  | ||||||
| 
 |  | ||||||
|         smtp = { |  | ||||||
|           host = "smtp.fastmail.com"; |  | ||||||
|           port = 465; |  | ||||||
|         }; |  | ||||||
|         imap = { |  | ||||||
|           host = "imap.fastmail.com"; |  | ||||||
|           port = 993; |  | ||||||
|           tls.enable = true; |  | ||||||
|         }; |  | ||||||
| 
 |  | ||||||
|         passwordCommand = "gpg -d ${config.home.homeDirectory}/secrets/fastmail.password.gpg 2> /dev/null"; |  | ||||||
| 
 |  | ||||||
|         gpg = { |  | ||||||
|           encryptByDefault = true; |  | ||||||
|           signByDefault = true; |  | ||||||
|           key = "7AA277E604A4173916BBB4E91FFAC35E1798174F"; |  | ||||||
|         }; |  | ||||||
| 
 |  | ||||||
|         thunderbird = { |  | ||||||
|           enable = true; |  | ||||||
|           settings = id: { |  | ||||||
|             "mail.openpgp.allow_external_gnupg" = true; |  | ||||||
|           }; |  | ||||||
|         }; |  | ||||||
|         neomutt = { |  | ||||||
|           enable = true; |  | ||||||
|         }; |  | ||||||
| 
 |  | ||||||
|         mbsync = { |  | ||||||
|           enable = true; |  | ||||||
|           create = "both"; |  | ||||||
|           expunge = "both"; |  | ||||||
|           remove = "both"; |  | ||||||
|         }; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     programs = { |  | ||||||
|       mbsync.enable = true; |  | ||||||
|       thunderbird = { |  | ||||||
|         enable = true; |  | ||||||
|         profiles = { |  | ||||||
|           "default" = { |  | ||||||
|             isDefault = true; |  | ||||||
|           }; |  | ||||||
|         }; |  | ||||||
|       }; |  | ||||||
|       neomutt = { |  | ||||||
|         enable = true; |  | ||||||
|         sort = "date-received"; |  | ||||||
|         vimKeys = true; |  | ||||||
|         sidebar = { |  | ||||||
|           enable = true; |  | ||||||
|         }; |  | ||||||
|         #settings = { |  | ||||||
|         #  maildir_check_cur = "yes"; |  | ||||||
|         #}; |  | ||||||
|         extraConfig = '' |  | ||||||
|           mailboxes `find ~/mail/ -type d -name cur -printf '%h '` |  | ||||||
|           timeout-hook 'echo `mbsync -a`' |  | ||||||
|           startup-hook 'echo `mbsync -a`' |  | ||||||
|         ''; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
|   }; |  | ||||||
| } |  | ||||||
|  | @ -1,23 +0,0 @@ | ||||||
| { |  | ||||||
|   pkgs, |  | ||||||
|   config, |  | ||||||
|   lib, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| with lib; { |  | ||||||
|   nixpkgs.config.allowUnfreePredicate = pkg: |  | ||||||
|     builtins.elem (lib.getName pkg) [ |  | ||||||
|       "discord" |  | ||||||
|       "pycharm-professional" |  | ||||||
|       "rar" |  | ||||||
|       "spotify" |  | ||||||
|       "spotify-unwrapped" |  | ||||||
|       "steam" |  | ||||||
|       "steam-original" |  | ||||||
|       "steam-run" |  | ||||||
|       "teams" |  | ||||||
|       "vscode-extension-ms-vscode-cpptools" |  | ||||||
|       "vmware-horizon-client" |  | ||||||
|       "zoom" |  | ||||||
|     ]; |  | ||||||
| } |  | ||||||
|  | @ -1,17 +0,0 @@ | ||||||
| { |  | ||||||
|   config, |  | ||||||
|   lib, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| with lib; let |  | ||||||
|   cfg = config.local.apps; |  | ||||||
| in { |  | ||||||
|   options.local.apps.enable = mkEnableOption "Applications and tools"; |  | ||||||
|   imports = [ |  | ||||||
|     ./library.nix |  | ||||||
|     ./steam |  | ||||||
|     ./terminal |  | ||||||
|     ./virtmanager.nix |  | ||||||
|   ]; |  | ||||||
| } |  | ||||||
|  | @ -1,55 +0,0 @@ | ||||||
| { |  | ||||||
|   config, |  | ||||||
|   lib, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| with lib; let |  | ||||||
|   cfg = config.local.apps.defaultApps; |  | ||||||
| in { |  | ||||||
|   options.local.apps.defaultApps.enable = mkEnableOption "Default app library"; |  | ||||||
|   config = mkIf cfg.enable { |  | ||||||
|     home.packages = with pkgs; [ |  | ||||||
|       chromium |  | ||||||
|       darktable |  | ||||||
|       deluge |  | ||||||
|       discord |  | ||||||
|       element-desktop |  | ||||||
|       firefox |  | ||||||
|       gperftools |  | ||||||
|       gwenview |  | ||||||
|       helix |  | ||||||
|       libreoffice-fresh |  | ||||||
|       lutris |  | ||||||
|       mpv |  | ||||||
|       neovim |  | ||||||
|       obs-studio |  | ||||||
|       openrct2 |  | ||||||
|       pavucontrol |  | ||||||
|       pdfarranger |  | ||||||
|       prismlauncher |  | ||||||
|       qpdfview |  | ||||||
|       runelite |  | ||||||
|       spotify |  | ||||||
|       tdesktop |  | ||||||
|       vlc |  | ||||||
|       vpsfree-client |  | ||||||
|       vscodium-fhs |  | ||||||
|       zola |  | ||||||
|       zoom-us |  | ||||||
|     ]; |  | ||||||
| 
 |  | ||||||
|     xdg.mimeApps.defaultApplications = { |  | ||||||
|       "application/x-extension-htm" = ["firefox.desktop"]; |  | ||||||
|       "application/x-extension-html" = ["firefox.desktop"]; |  | ||||||
|       "application/x-extension-shtml" = ["firefox.desktop"]; |  | ||||||
|       "application/x-extension-xht" = ["firefox.desktop"]; |  | ||||||
|       "application/x-extension-xhtml" = ["firefox.desktop"]; |  | ||||||
|       "application/xhtml+xml" = ["firefox.desktop"]; |  | ||||||
|       "text/html" = ["firefox.desktop"]; |  | ||||||
|       "x-scheme-handler/http" = ["firefox.desktop"]; |  | ||||||
|       "x-scheme-handler/https" = ["firefox.desktop"]; |  | ||||||
|       "application/pdf" = ["qpdfview.desktop"]; |  | ||||||
|     }; |  | ||||||
|   }; |  | ||||||
| } |  | ||||||
|  | @ -1,19 +0,0 @@ | ||||||
| { |  | ||||||
|   pkgs, |  | ||||||
|   lib, |  | ||||||
|   config, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| with lib; let |  | ||||||
|   cfg = config.local.apps.steam; |  | ||||||
| in { |  | ||||||
|   options.local.apps.steam.enable = mkEnableOption "Steam"; |  | ||||||
|   config = mkIf cfg.enable { |  | ||||||
|     home.packages = [ |  | ||||||
|       (pkgs.callPackage ./package.nix {}) |  | ||||||
|       pkgs.protonup |  | ||||||
|       pkgs.winetricks |  | ||||||
|       pkgs.protontricks |  | ||||||
|     ]; |  | ||||||
|   }; |  | ||||||
| } |  | ||||||
|  | @ -1,9 +0,0 @@ | ||||||
| { |  | ||||||
|   writeShellScriptBin, |  | ||||||
|   steam-run, |  | ||||||
|   steam, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| writeShellScriptBin "steam" '' |  | ||||||
|   exec ${steam-run}/bin/steam-run ${steam}/bin/steam -console |  | ||||||
| '' |  | ||||||
|  | @ -1,35 +0,0 @@ | ||||||
| { |  | ||||||
|   config, |  | ||||||
|   lib, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| with lib; let |  | ||||||
|   cfg = config.local.apps.terminal; |  | ||||||
| in { |  | ||||||
|   options.local.apps.terminal.enable = mkEnableOption "Terminal emulator settings"; |  | ||||||
|   config.programs = mkIf cfg.enable { |  | ||||||
|     kitty = { |  | ||||||
|       enable = true; |  | ||||||
|       extraConfig = import ./kitty.conf.nix; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     tmux = { |  | ||||||
|       enable = true; |  | ||||||
|       aggressiveResize = true; |  | ||||||
|       clock24 = true; |  | ||||||
|       escapeTime = 10; |  | ||||||
|       terminal = "xterm-256color"; |  | ||||||
|       keyMode = "emacs"; |  | ||||||
| 
 |  | ||||||
|       extraConfig = '' |  | ||||||
|         set -g mouse on |  | ||||||
|         set -ga update-environment " LIFT_PID" |  | ||||||
|         set -g set-titles on |  | ||||||
|         set -g renumber-windows on |  | ||||||
|         set -sa terminal-overrides ',xterm-termite:RGB' |  | ||||||
|         set -g status-right "#{?window_bigger,[#{window_offset_x}#,#{window_offset_y}] ,} %H:%M %d-%b-%y" |  | ||||||
|       ''; |  | ||||||
|     }; |  | ||||||
|   }; |  | ||||||
| } |  | ||||||
|  | @ -1,87 +0,0 @@ | ||||||
| '' |  | ||||||
|   # Fonts |  | ||||||
|   font_family      JetBrains Mono Medium |  | ||||||
|   bold_font        JetBrains Mono Bold |  | ||||||
|   italic_font      JetBrains Mono Italic |  | ||||||
|   bold_italic_font JetBrains Mono Bold Italic |  | ||||||
| 
 |  | ||||||
|   font_size 15 |  | ||||||
|   disable_ligatures cursor |  | ||||||
| 
 |  | ||||||
|   initial_window_width  1200 |  | ||||||
|   initial_window_height 600 |  | ||||||
| 
 |  | ||||||
|   # Cursor |  | ||||||
|   cursor_shape beam |  | ||||||
|   cursor_beam_thickness 1.9 |  | ||||||
|   cursor_stop_blinking_after 0 |  | ||||||
| 
 |  | ||||||
|   # Audio |  | ||||||
|   enable_audio_bell no |  | ||||||
| 
 |  | ||||||
|   # Tabs |  | ||||||
|   tab_bar_style separator |  | ||||||
|   tab_separator " | " |  | ||||||
|   tab_title_template "{index}: {title}" |  | ||||||
| 
 |  | ||||||
|   # Color |  | ||||||
|   # special |  | ||||||
|   foreground       #ffffff |  | ||||||
|   foreground_bold  #ffffff |  | ||||||
|   cursor           #ffffff |  | ||||||
|   background       #000000 |  | ||||||
|   background_opacity 1 |  | ||||||
| 
 |  | ||||||
|   # Shortcuts |  | ||||||
|   map ctrl+shift+c copy_to_clipboard |  | ||||||
|   map ctrl+shift+v paste_from_clipboard |  | ||||||
|   map ctrl+shift+s paste_from_selection |  | ||||||
|   map shift+insert paste_from_selection |  | ||||||
| 
 |  | ||||||
|   map ctrl+shift+up scroll_line_up |  | ||||||
|   map ctrl+shift+down scroll_line_down |  | ||||||
|   map ctrl+shift+page_up scroll_page_up |  | ||||||
|   map ctrl+shift+page_down scroll_page_down |  | ||||||
|   map ctrl+shift+home scroll_home |  | ||||||
|   map ctrl+shift+end scroll_end |  | ||||||
| 
 |  | ||||||
|   map ctrl+shift+enter new_window |  | ||||||
|   map ctrl+alt+enter    launch --cwd=current |  | ||||||
|   map ctrl+shift+w close_window |  | ||||||
|   map ctrl+shift+] next_window |  | ||||||
|   map ctrl+shift+[ previous_window |  | ||||||
|   map ctrl+shift+1 first_window |  | ||||||
|   map ctrl+shift+2 second_window |  | ||||||
|   map ctrl+shift+3 third_window |  | ||||||
|   map ctrl+shift+4 fourth_window |  | ||||||
|   map ctrl+shift+5 fifth_window |  | ||||||
|   map ctrl+shift+6 sixth_window |  | ||||||
|   map ctrl+shift+7 seventh_window |  | ||||||
|   map ctrl+shift+8 eighth_window |  | ||||||
|   map ctrl+shift+9 ninth_window |  | ||||||
|   map ctrl+shift+0 tenth_window |  | ||||||
| 
 |  | ||||||
|   map ctrl+shift+right next_tab |  | ||||||
|   map ctrl+shift+left previous_tab |  | ||||||
|   map ctrl+shift+t new_tab |  | ||||||
|   map ctrl+shift+q close_tab |  | ||||||
|   map ctrl+shift+. move_tab_forward |  | ||||||
|   map ctrl+shift+, move_tab_backward |  | ||||||
|   map ctrl+shift+alt+t set_tab_title |  | ||||||
|   map ctrl+alt+1 goto_tab 1 |  | ||||||
|   map ctrl+alt+2 goto_tab 2 |  | ||||||
|   map ctrl+alt+3 goto_tab 3 |  | ||||||
|   map ctrl+alt+4 goto_tab 4 |  | ||||||
|   map ctrl+alt+5 goto_tab 5 |  | ||||||
|   map ctrl+alt+6 goto_tab 6 |  | ||||||
|   map ctrl+alt+7 goto_tab 7 |  | ||||||
|   map ctrl+alt+8 goto_tab 8 |  | ||||||
|   map ctrl+alt+9 goto_tab 9 |  | ||||||
|   map ctrl+alt+0 goto_tab 10 |  | ||||||
| 
 |  | ||||||
|   map ctrl+shift+equal change_font_size all +1.0 |  | ||||||
|   map ctrl+shift+minus change_font_size all -1.0 |  | ||||||
|   map ctrl+shift+backspace change_font_size all 0 |  | ||||||
| 
 |  | ||||||
|   map ctrl+shift+delete clear_terminal reset active |  | ||||||
| '' |  | ||||||
|  | @ -1,16 +0,0 @@ | ||||||
| { |  | ||||||
|   config, |  | ||||||
|   lib, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| with lib; let |  | ||||||
|   cfg = config.local.apps.virtmanager; |  | ||||||
| in { |  | ||||||
|   options.local.apps.virtmanager.enable = mkEnableOption "Virtmanager"; |  | ||||||
|   config = mkIf cfg.enable { |  | ||||||
|     home.packages = with pkgs; [ |  | ||||||
|       virt-manager |  | ||||||
|     ]; |  | ||||||
|   }; |  | ||||||
| } |  | ||||||
							
								
								
									
										54
									
								
								home/cli.nix
									
										
									
									
									
								
							
							
						
						
									
										54
									
								
								home/cli.nix
									
										
									
									
									
								
							|  | @ -1,54 +0,0 @@ | ||||||
| { |  | ||||||
|   config, |  | ||||||
|   lib, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| with lib; { |  | ||||||
|   programs = { |  | ||||||
|     ## talvez esto debería moverse a base |  | ||||||
|     zsh = { |  | ||||||
|       enable = true; |  | ||||||
|       syntaxHighlighting.enable = true; |  | ||||||
|       initExtra = import ./zshrc.nix pkgs; |  | ||||||
|     }; |  | ||||||
|     git = { |  | ||||||
|       enable = true; |  | ||||||
|       userEmail = "fabian@posixlycorrect.com"; |  | ||||||
|       userName = "Fabian Montero"; |  | ||||||
|       signing = { |  | ||||||
|         key = "7AA277E604A4173916BBB4E91FFAC35E1798174F"; |  | ||||||
|         signByDefault = true; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
|     gpg = { |  | ||||||
|       enable = true; |  | ||||||
|       settings = { |  | ||||||
|         default-key = "7AA277E604A4173916BBB4E91FFAC35E1798174F"; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   services.gpg-agent = { |  | ||||||
|     enable = true; |  | ||||||
|     enableZshIntegration = true; |  | ||||||
|     pinentryPackage = pkgs.pinentry-emacs; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   home.packages = with pkgs; [ |  | ||||||
|     calc |  | ||||||
|     file |  | ||||||
|     gcc |  | ||||||
|     htop |  | ||||||
|     killall |  | ||||||
|     man-pages |  | ||||||
|     man-pages-posix |  | ||||||
|     neovim |  | ||||||
|     rar |  | ||||||
|     tree |  | ||||||
|     units |  | ||||||
|     unzip |  | ||||||
|     usbutils |  | ||||||
|     zip |  | ||||||
|   ]; |  | ||||||
| } |  | ||||||
|  | @ -1,66 +0,0 @@ | ||||||
| { |  | ||||||
|   self, |  | ||||||
|   nixpkgs, |  | ||||||
|   unstable, |  | ||||||
|   hm-isolation, |  | ||||||
|   nixGL, |  | ||||||
| }: { |  | ||||||
|   config, |  | ||||||
|   pkgs, |  | ||||||
|   lib, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| with lib; { |  | ||||||
|   imports = [ |  | ||||||
|     (hm-isolation.homeManagerModule) |  | ||||||
|     ./accounts.nix |  | ||||||
|     ./apps |  | ||||||
|     ./allowUnfreeWhitelist.nix |  | ||||||
|     ./gui |  | ||||||
|     ./isolation.nix |  | ||||||
|     ./options.nix |  | ||||||
|     ./cli.nix |  | ||||||
|     ./systemd |  | ||||||
|   ]; |  | ||||||
| 
 |  | ||||||
|   nixpkgs.overlays = [self.overlay nixGL.overlay]; |  | ||||||
| 
 |  | ||||||
|   services.ssh-agent.enable = true; |  | ||||||
| 
 |  | ||||||
|   home = { |  | ||||||
|     stateVersion = "21.11"; # No tocar esto |  | ||||||
|     username = "fabian"; |  | ||||||
|     homeDirectory = "/home/fabian"; |  | ||||||
|     sessionVariables = { |  | ||||||
|       "EDITOR" = "nvim"; |  | ||||||
|       "TERMINAL" = "kitty"; |  | ||||||
|     }; |  | ||||||
|     keyboard = { |  | ||||||
|       layout = "us"; |  | ||||||
|       variant = "altgr-intl"; |  | ||||||
|     }; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   xdg.enable = true; |  | ||||||
| 
 |  | ||||||
|   nix.registry = { |  | ||||||
|     "system".to = { |  | ||||||
|       type = "path"; |  | ||||||
|       path = "/home/fabian/nix"; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     "nixpkgs".flake = nixpkgs; |  | ||||||
|     "unstable".flake = unstable; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   programs.home-manager.enable = true; |  | ||||||
| 
 |  | ||||||
|   local = { |  | ||||||
|     apps.enable = mkDefault (!config.home.isolation.active); |  | ||||||
| 
 |  | ||||||
|     gui = { |  | ||||||
|       enable = mkDefault true; |  | ||||||
|       desktop = mkDefault (!config.home.isolation.active); |  | ||||||
|     }; |  | ||||||
|   }; |  | ||||||
| } |  | ||||||
|  | @ -1,17 +0,0 @@ | ||||||
| { |  | ||||||
|   config, |  | ||||||
|   pkgs, |  | ||||||
|   lib, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| with lib; let |  | ||||||
|   cfg = config.local.gui.autorandr; |  | ||||||
| in { |  | ||||||
|   options.local.gui.autorandr.enable = mkEnableOption "Autorandr"; |  | ||||||
|   config = mkIf cfg.enable { |  | ||||||
|     programs.autorandr = { |  | ||||||
|       enable = true; |  | ||||||
|       profiles."${config.local.platform}" = config.local.display.autorandrProfile; |  | ||||||
|     }; |  | ||||||
|   }; |  | ||||||
| } |  | ||||||
|  | @ -1,51 +0,0 @@ | ||||||
| { |  | ||||||
|   config, |  | ||||||
|   pkgs, |  | ||||||
|   lib, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| with lib; let |  | ||||||
|   cfg = config.local.gui; |  | ||||||
| in { |  | ||||||
|   options.local.gui = { |  | ||||||
|     enable = mkEnableOption "GUI settings and programs"; |  | ||||||
|     desktop = mkEnableOption "i3 desktop envirorment"; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   imports = [ |  | ||||||
|     ./autorandr.nix |  | ||||||
|     ./fonts.nix |  | ||||||
|     ./gtk.nix |  | ||||||
|     ./i3.nix |  | ||||||
|     ./polybar.nix |  | ||||||
|     ./startx.nix |  | ||||||
|   ]; |  | ||||||
| 
 |  | ||||||
|   config = mkIf cfg.enable { |  | ||||||
|     local.gui = { |  | ||||||
|       fonts.enable = mkDefault true; |  | ||||||
|       gtk.enable = mkDefault true; |  | ||||||
| 
 |  | ||||||
|       autorandr.enable = mkDefault cfg.desktop; |  | ||||||
|       i3.enable = mkDefault cfg.desktop; |  | ||||||
|       polybar.enable = mkDefault cfg.desktop; |  | ||||||
|       startx.enable = mkDefault cfg.desktop; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     services = mkIf cfg.desktop { |  | ||||||
|       picom = { |  | ||||||
|         enable = true; |  | ||||||
|       }; |  | ||||||
| 
 |  | ||||||
|       dunst = { |  | ||||||
|         enable = true; |  | ||||||
|       }; |  | ||||||
| 
 |  | ||||||
|       betterlockscreen = { |  | ||||||
|         enable = true; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     xdg.mimeApps.enable = true; |  | ||||||
|   }; |  | ||||||
| } |  | ||||||
|  | @ -1,18 +0,0 @@ | ||||||
| { |  | ||||||
|   config, |  | ||||||
|   pkgs, |  | ||||||
|   lib, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| with lib; let |  | ||||||
|   cfg = config.local.gui.fonts; |  | ||||||
| in { |  | ||||||
|   options.local.gui.fonts.enable = mkEnableOption "Font management"; |  | ||||||
|   config = mkIf cfg.enable { |  | ||||||
|     fonts.fontconfig.enable = true; |  | ||||||
| 
 |  | ||||||
|     home.packages = with pkgs; [ |  | ||||||
|       jetbrains-mono |  | ||||||
|     ]; |  | ||||||
|   }; |  | ||||||
| } |  | ||||||
|  | @ -1,17 +0,0 @@ | ||||||
| { |  | ||||||
|   config, |  | ||||||
|   lib, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| with lib; let |  | ||||||
|   cfg = config.local.gui.gtk; |  | ||||||
| in { |  | ||||||
|   options.local.gui.gtk.enable = mkEnableOption "GTK related programs"; |  | ||||||
|   config = mkIf cfg.enable { |  | ||||||
|     home.packages = with pkgs; [ |  | ||||||
|       gruvbox-dark-icons-gtk |  | ||||||
|       libsForQt5.breeze-gtk |  | ||||||
|     ]; |  | ||||||
|   }; |  | ||||||
| } |  | ||||||
							
								
								
									
										110
									
								
								home/gui/i3.nix
									
										
									
									
									
								
							
							
						
						
									
										110
									
								
								home/gui/i3.nix
									
										
									
									
									
								
							|  | @ -1,110 +0,0 @@ | ||||||
| { |  | ||||||
|   config, |  | ||||||
|   pkgs, |  | ||||||
|   lib, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| with lib; let |  | ||||||
|   cfg = config.local.gui.i3; |  | ||||||
| in { |  | ||||||
|   options.local.gui.i3.enable = mkEnableOption "i3 window manager"; |  | ||||||
|   config = mkIf cfg.enable { |  | ||||||
|     xsession.windowManager.i3 = { |  | ||||||
|       enable = true; |  | ||||||
|       package = pkgs.i3-gaps; |  | ||||||
| 
 |  | ||||||
|       config = let |  | ||||||
|         mod = "Mod4"; |  | ||||||
|       in { |  | ||||||
|         modifier = mod; |  | ||||||
|         # revisar luego si config.bars tiene un default danino |  | ||||||
| 
 |  | ||||||
|         fonts = { |  | ||||||
|           names = ["JetBrains Mono"]; |  | ||||||
|           style = "Regular"; |  | ||||||
|           size = 8.0; |  | ||||||
|         }; |  | ||||||
| 
 |  | ||||||
|         gaps = { |  | ||||||
|           inner = 10; |  | ||||||
|           outer = -10; |  | ||||||
|         }; |  | ||||||
| 
 |  | ||||||
|         window = { |  | ||||||
|           hideEdgeBorders = "both"; |  | ||||||
|         }; |  | ||||||
| 
 |  | ||||||
|         colors = { |  | ||||||
|           focused = { |  | ||||||
|             background = "#222222"; |  | ||||||
|             border = "#4c7899"; |  | ||||||
|             childBorder = "#222222"; |  | ||||||
|             indicator = "#292d2e"; |  | ||||||
|             text = "#888888"; |  | ||||||
|           }; |  | ||||||
|         }; |  | ||||||
| 
 |  | ||||||
|         # mkOptionDefault hace que se ponga la config por default |  | ||||||
|         # y se sobreescriba las cosas que pongo acA |  | ||||||
|         # NO QUITARLO. ver man home-configuration.nix |  | ||||||
|         keybindings = mkOptionDefault { |  | ||||||
|           "${mod}+Return" = "exec ${pkgs.kitty}/bin/kitty ${pkgs.tmux}/bin/tmux"; |  | ||||||
|           "${mod}+Tab" = "focus right"; |  | ||||||
|           "${mod}+Shift+Tab" = "focus left"; |  | ||||||
|           "${mod}+Shift+s" = "exec ${pkgs.maim}/bin/maim -s -u | ${pkgs.xclip}/bin/xclip -selection clipboard -t image/png -i"; |  | ||||||
|           "${mod}+Shift+w" = "move workspace to output right"; |  | ||||||
|           "${mod}+l" = "exec ${pkgs.betterlockscreen}/bin/betterlockscreen -l"; |  | ||||||
|         }; |  | ||||||
| 
 |  | ||||||
|         startup = [ |  | ||||||
|           { |  | ||||||
|             command = "${pkgs.xss-lock}/bin/xss-lock --transfer-sleep-lock -- ${pkgs.i3lock}/bin/i3lock --nofork"; |  | ||||||
|             notification = false; |  | ||||||
|           } |  | ||||||
|           { |  | ||||||
|             command = "${pkgs.networkmanagerapplet}/bin/nm-applet"; |  | ||||||
|             notification = false; |  | ||||||
|           } |  | ||||||
|           { |  | ||||||
|             command = "${pkgs.feh}/bin/feh --bg-fill ${config.home.homeDirectory}/Pictures/wallpapers/jupiter.png"; |  | ||||||
|             notification = false; |  | ||||||
|             always = true; |  | ||||||
|           } |  | ||||||
|           { |  | ||||||
|             command = "${pkgs.i3-gaps}/bin/i3-msg 'workspace 1; exec ${pkgs.firefox}/bin/firefox'"; |  | ||||||
|           } |  | ||||||
|           { |  | ||||||
|             command = "${pkgs.i3-gaps}/bin/i3-msg 'workspace 2; exec ${pkgs.tdesktop}/bin/telegram-desktop'"; |  | ||||||
|           } |  | ||||||
|           #{ |  | ||||||
|           #  command = "${pkgs.i3-gaps}/bin/i3-msg 'workspace 2; exec ${pkgs.element-desktop}/bin/element-desktop'"; |  | ||||||
|           #} |  | ||||||
|           { |  | ||||||
|             command = "${pkgs.systemd}/bin/systemctl --user restart polybar.service"; |  | ||||||
|             notification = false; |  | ||||||
|             always = true; |  | ||||||
|           } |  | ||||||
|           { |  | ||||||
|             command = "${pkgs.autorandr}/bin/autorandr -c"; |  | ||||||
|             notification = false; |  | ||||||
|             always = true; |  | ||||||
|           } |  | ||||||
|         ]; |  | ||||||
| 
 |  | ||||||
|         workspaceOutputAssign = |  | ||||||
|           [ |  | ||||||
|             { |  | ||||||
|               output = config.local.display."0"; |  | ||||||
|               workspace = "1"; |  | ||||||
|             } |  | ||||||
|           ] |  | ||||||
|           ++ optional (config.local.display."1" != null) { |  | ||||||
|             output = config.local.display."1"; |  | ||||||
|             workspace = "10"; |  | ||||||
|           }; |  | ||||||
| 
 |  | ||||||
|         bars = []; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
|   }; |  | ||||||
| } |  | ||||||
|  | @ -1,464 +0,0 @@ | ||||||
| { |  | ||||||
|   config, |  | ||||||
|   pkgs, |  | ||||||
|   lib, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| with lib; let |  | ||||||
|   cfg = config.local.gui.polybar; |  | ||||||
| in { |  | ||||||
|   options.local.gui.polybar.enable = mkEnableOption "Polybar"; |  | ||||||
|   config = mkIf cfg.enable { |  | ||||||
|     services.polybar = mkIf (!config.home.isolation.active) { |  | ||||||
|       enable = true; |  | ||||||
|       package = pkgs.polybarFull; |  | ||||||
|       script = '' |  | ||||||
|         # Terminate already running bar instances |  | ||||||
|         killall -q polybar |  | ||||||
| 
 |  | ||||||
|         # Wait until the processes have been shut down |  | ||||||
|         while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done |  | ||||||
| 
 |  | ||||||
|         # Launch Polybar, using default config location ~/.config/polybar/config |  | ||||||
|         polybar -r main & polybar -r secondary & |  | ||||||
|       ''; |  | ||||||
| 
 |  | ||||||
|       settings = { |  | ||||||
|         "colors" = { |  | ||||||
|           # background = "\${xrdb:color0:#222}"; |  | ||||||
|           background = "#AA000000"; |  | ||||||
|           background-alt = "#00000000"; |  | ||||||
|           # foreground = "\${xrdb:color7:#222}"; |  | ||||||
|           foreground = "#ffffff"; |  | ||||||
|           foreground-alt = "#ffffff"; |  | ||||||
|           primary = "#ffffff"; |  | ||||||
|           secondary = "#e60053"; |  | ||||||
|           alert = "#bd2c40"; |  | ||||||
|         }; |  | ||||||
| 
 |  | ||||||
|         "bar/main" = { |  | ||||||
|           monitor = "${config.local.display."0"}"; |  | ||||||
|           width = "100%"; |  | ||||||
|           height = 30; |  | ||||||
|           offset-x = "0%"; |  | ||||||
|           offset-y = "0%"; |  | ||||||
|           radius = 0.0; |  | ||||||
|           fixed-center = false; |  | ||||||
| 
 |  | ||||||
|           background = "\${colors.background}"; |  | ||||||
|           foreground = "\${colors.foreground}"; |  | ||||||
| 
 |  | ||||||
|           line-size = 1; |  | ||||||
|           line-color = "#f0000000"; |  | ||||||
| 
 |  | ||||||
|           border-size = 0; |  | ||||||
|           border-color = "#00000000"; |  | ||||||
| 
 |  | ||||||
|           padding-left = 0; |  | ||||||
|           padding-right = 0; |  | ||||||
| 
 |  | ||||||
|           module-margin-left = 1; |  | ||||||
|           module-margin-right = 1; |  | ||||||
| 
 |  | ||||||
|           # font-0 = "fixed:pixelsize=10;1"; |  | ||||||
|           font-0 = "JetBrains Mono Light:size=10;0"; |  | ||||||
|           font-1 = "unifont:fontformat=truetype:size=8:antialias=false;0"; |  | ||||||
|           font-2 = "siji:pixelsize=10;1"; |  | ||||||
|           # font-2 = "FontAwesome5Free:style=Regular:size=10;4"; |  | ||||||
| 
 |  | ||||||
|           modules-left = "i3"; |  | ||||||
|           modules-center = "xwindow"; |  | ||||||
|           modules-right = "xkeyboard pulseaudio filesystem memory cpu temperature gputemperature nvmetemperature wlan eth date semanatec"; |  | ||||||
|           separator = "|"; |  | ||||||
| 
 |  | ||||||
|           tray-position = "right"; |  | ||||||
|           tray-padding = 2; |  | ||||||
| 
 |  | ||||||
|           # To allow other windows to be placed above the bar, or to avoid having the bar visible when in fullscreen mode, |  | ||||||
|           # you need to use the following two parameters. Note that it will tell the window manager to back off so no |  | ||||||
|           # area will be reserved, etc. |  | ||||||
|           # |  | ||||||
|           # wm-restack = "i3"; |  | ||||||
|           # override-redirect = true; |  | ||||||
| 
 |  | ||||||
|           cursor-click = "pointer"; |  | ||||||
|           cursor-scroll = "ns-resize"; |  | ||||||
|         }; |  | ||||||
| 
 |  | ||||||
|         "bar/secondary" = optionalAttrs (config.local.display."1" != null) { |  | ||||||
|           monitor = "${config.local.display."1"}"; |  | ||||||
|           "inherit" = "bar/main"; |  | ||||||
| 
 |  | ||||||
|           modules-left = "i3"; |  | ||||||
|           modules-center = "xwindow"; |  | ||||||
|           modules-right = "xkeyboard pulseaudio date"; |  | ||||||
|           tray-position = "none"; |  | ||||||
|         }; |  | ||||||
| 
 |  | ||||||
|         "module/xwindow" = { |  | ||||||
|           type = "internal/xwindow"; |  | ||||||
|           label = "%title:0:30:...%"; |  | ||||||
|         }; |  | ||||||
| 
 |  | ||||||
|         "module/xkeyboard" = { |  | ||||||
|           type = "internal/xkeyboard"; |  | ||||||
|           blacklist-0 = "num lock"; |  | ||||||
| 
 |  | ||||||
|           format-prefix = ""; |  | ||||||
|           format-prefix-foreground = "\${colors.foreground-alt}"; |  | ||||||
| 
 |  | ||||||
|           label-layout = "%layout%"; |  | ||||||
| 
 |  | ||||||
|           label-indicator-padding = 2; |  | ||||||
|           label-indicator-margin = 1; |  | ||||||
|           label-indicator-background = "\${colors.secondary}"; |  | ||||||
|         }; |  | ||||||
| 
 |  | ||||||
|         "module/filesystem" = { |  | ||||||
|           type = "internal/fs"; |  | ||||||
|           interval = 10; |  | ||||||
| 
 |  | ||||||
|           mount-0 = "/"; |  | ||||||
| 
 |  | ||||||
|           label-mounted = "%{F#0a81f5}%mountpoint%%{F-}: %used%/%total%"; |  | ||||||
|           label-unmounted = ""; |  | ||||||
|         }; |  | ||||||
| 
 |  | ||||||
|         "module/i3" = { |  | ||||||
|           type = "internal/i3"; |  | ||||||
|           format = "<label-state> <label-mode>"; |  | ||||||
|           index-sort = true; |  | ||||||
|           wrapping-scroll = false; |  | ||||||
| 
 |  | ||||||
|           # Only show workspaces on the same output as the bar |  | ||||||
|           # pin-workspaces = true |  | ||||||
| 
 |  | ||||||
|           label-mode-padding = 1; |  | ||||||
|           label-mode-foreground = "#000"; |  | ||||||
|           label-mode-background = "\${colors.primary}"; |  | ||||||
| 
 |  | ||||||
|           # focused = Active workspace on focused monitor |  | ||||||
|           label-focused = "%index%"; |  | ||||||
|           label-focused-background = "\${colors.background}"; |  | ||||||
|           label-focused-underline = "\${colors.primary}"; |  | ||||||
|           label-focused-padding = 1; |  | ||||||
| 
 |  | ||||||
|           # unfocused = Inactive workspace on any monitor |  | ||||||
|           label-unfocused = "%index%"; |  | ||||||
|           label-unfocused-padding = 1; |  | ||||||
| 
 |  | ||||||
|           # visible = Active workspace on unfocused monitor |  | ||||||
|           label-visible = "%index%"; |  | ||||||
|           label-visible-background = "\${self.label-focused-background}"; |  | ||||||
|           label-visible-underline = "\${self.label-focused-underline}"; |  | ||||||
|           label-visible-padding = "\${self.label-focused-padding}"; |  | ||||||
| 
 |  | ||||||
|           # urgent = Workspace with urgency hint set |  | ||||||
|           label-urgent = "%index%"; |  | ||||||
|           label-urgent-background = "\${colors.alert}"; |  | ||||||
|           label-urgent-padding = 1; |  | ||||||
|         }; |  | ||||||
| 
 |  | ||||||
|         "module/xbacklight" = { |  | ||||||
|           type = "internal/xbacklight"; |  | ||||||
| 
 |  | ||||||
|           format = "<label> <bar>"; |  | ||||||
|           label = "BL"; |  | ||||||
| 
 |  | ||||||
|           bar-width = 10; |  | ||||||
|           bar-indicator = "|"; |  | ||||||
|           bar-indicator-foreground = "#fff"; |  | ||||||
|           bar-indicator-font = 2; |  | ||||||
|           bar-fill = "─"; |  | ||||||
|           bar-fill-font = 2; |  | ||||||
|           bar-fill-foreground = "#9f78e1"; |  | ||||||
|           bar-empty = "─"; |  | ||||||
|           bar-empty-font = 2; |  | ||||||
|           bar-empty-foreground = "\${colors.foreground-alt}"; |  | ||||||
|         }; |  | ||||||
| 
 |  | ||||||
|         "module/backlight-acpi" = { |  | ||||||
|           "inherit" = "module/xbacklight"; |  | ||||||
|           type = "internal/backlight"; |  | ||||||
|           card = "intel_backlight"; |  | ||||||
|         }; |  | ||||||
| 
 |  | ||||||
|         "module/cpu" = { |  | ||||||
|           type = "internal/cpu"; |  | ||||||
|           interval = 2; |  | ||||||
|           format-prefix = "cpu "; |  | ||||||
|           format-prefix-foreground = "\${colors.foreground-alt}"; |  | ||||||
|           label = "%percentage:2%%"; |  | ||||||
|         }; |  | ||||||
| 
 |  | ||||||
|         "module/memory" = { |  | ||||||
|           type = "internal/memory"; |  | ||||||
|           interval = 2; |  | ||||||
|           format-prefix = "mem "; |  | ||||||
|           format-prefix-foreground = "\${colors.foreground-alt}"; |  | ||||||
|           label = "%percentage_used%%"; |  | ||||||
|         }; |  | ||||||
| 
 |  | ||||||
|         "module/wlan" = { |  | ||||||
|           type = "internal/network"; |  | ||||||
|           interface = "wlp7s0"; |  | ||||||
|           interval = 3.0; |  | ||||||
| 
 |  | ||||||
|           format-connected = "<ramp-signal> <label-connected>"; |  | ||||||
|           label-connected = "%essid%"; |  | ||||||
| 
 |  | ||||||
|           format-disconnected = ""; |  | ||||||
|           # format-disconnected = "<label-disconnected>"; |  | ||||||
|           # format-disconnected-underline = "\${self.format-connected-underline}"; |  | ||||||
|           # label-disconnected = "%ifname% disconnected"; |  | ||||||
|           # label-disconnected-foreground = "\${colors.foreground-alt}"; |  | ||||||
| 
 |  | ||||||
|           ramp-signal-0 = ""; |  | ||||||
|           ramp-signal-1 = ""; |  | ||||||
|           ramp-signal-2 = ""; |  | ||||||
|           ramp-signal-3 = ""; |  | ||||||
|           ramp-signal-4 = ""; |  | ||||||
|           ramp-signal-foreground = "\${colors.foreground-alt}"; |  | ||||||
|         }; |  | ||||||
| 
 |  | ||||||
|         "module/eth" = { |  | ||||||
|           type = "internal/network"; |  | ||||||
|           interface = "enp8s0"; |  | ||||||
|           interval = 3.0; |  | ||||||
| 
 |  | ||||||
|           format-connected-prefix = ""; |  | ||||||
|           format-connected-prefix-foreground = "\${colors.foreground-alt}"; |  | ||||||
|           label-connected = "%local_ip%"; |  | ||||||
| 
 |  | ||||||
|           format-disconnected = ""; |  | ||||||
|           # format-disconnected = "<label-disconnected>"; |  | ||||||
|           # format-disconnected-underline = "\${self.format-connected-underline}"; |  | ||||||
|           # label-disconnected = "%ifname% disconnected"; |  | ||||||
|           # label-disconnected-foreground = "\${colors.foreground-alt}"; |  | ||||||
|         }; |  | ||||||
| 
 |  | ||||||
|         "module/date" = { |  | ||||||
|           type = "internal/date"; |  | ||||||
|           interval = 1; |  | ||||||
| 
 |  | ||||||
|           date = " %d/%m/%Y"; |  | ||||||
|           date-alt = " %c"; |  | ||||||
| 
 |  | ||||||
|           time = "%H:%M"; |  | ||||||
|           time-alt = " [%s]"; |  | ||||||
| 
 |  | ||||||
|           format-prefix = ""; |  | ||||||
|           format-prefix-foreground = "\${colors.foreground-alt}"; |  | ||||||
| 
 |  | ||||||
|           label = "%date% %time%"; |  | ||||||
|         }; |  | ||||||
| 
 |  | ||||||
|         #      "module/semanatec" = { |  | ||||||
|         #        type = "custom/script" |  | ||||||
|         #        exec = "/home/fabian/bin/semanatec/target/release/semanatec" |  | ||||||
|         #        interval = 3600 |  | ||||||
|         #        format-prefix = "" |  | ||||||
|         #      }; |  | ||||||
| 
 |  | ||||||
|         "module/pulseaudio" = { |  | ||||||
|           type = "internal/pulseaudio"; |  | ||||||
| 
 |  | ||||||
|           format-volume = "<label-volume>"; |  | ||||||
|           label-volume = "vol %percentage%%"; |  | ||||||
|           label-volume-foreground = "\${root.foreground}"; |  | ||||||
| 
 |  | ||||||
|           label-muted = "vol 0%"; |  | ||||||
|           label-muted-foreground = "\${root.foreground}"; |  | ||||||
| 
 |  | ||||||
|           bar-volume-width = 10; |  | ||||||
|           bar-volume-foreground-0 = "#55aa55"; |  | ||||||
|           bar-volume-foreground-1 = "#55aa55"; |  | ||||||
|           bar-volume-foreground-2 = "#55aa55"; |  | ||||||
|           bar-volume-foreground-3 = "#55aa55"; |  | ||||||
|           bar-volume-foreground-4 = "#55aa55"; |  | ||||||
|           bar-volume-foreground-5 = "#f5a70a"; |  | ||||||
|           bar-volume-foreground-6 = "#ff5555"; |  | ||||||
|           bar-volume-gradient = false; |  | ||||||
|           bar-volume-indicator = "|"; |  | ||||||
|           bar-volume-indicator-font = 2; |  | ||||||
|           bar-volume-fill = "─"; |  | ||||||
|           bar-volume-fill-font = 2; |  | ||||||
|           bar-volume-empty = "─"; |  | ||||||
|           bar-volume-empty-font = 2; |  | ||||||
|           bar-volume-empty-foreground = "\${colors.foreground-alt}"; |  | ||||||
|         }; |  | ||||||
| 
 |  | ||||||
|         "module/alsa" = { |  | ||||||
|           type = "internal/alsa"; |  | ||||||
| 
 |  | ||||||
|           format-volume = "<label-volume> <bar-volume>"; |  | ||||||
|           label-volume = "VOL"; |  | ||||||
|           label-volume-foreground = "\${root.foreground}"; |  | ||||||
| 
 |  | ||||||
|           format-muted-prefix = "vol "; |  | ||||||
|           format-muted-foreground = "\${colors.foreground-alt}"; |  | ||||||
|           label-muted = "sound muted"; |  | ||||||
| 
 |  | ||||||
|           bar-volume-width = 10; |  | ||||||
|           bar-volume-foreground-0 = "#55aa55"; |  | ||||||
|           bar-volume-foreground-1 = "#55aa55"; |  | ||||||
|           bar-volume-foreground-2 = "#55aa55"; |  | ||||||
|           bar-volume-foreground-3 = "#55aa55"; |  | ||||||
|           bar-volume-foreground-4 = "#55aa55"; |  | ||||||
|           bar-volume-foreground-5 = "#f5a70a"; |  | ||||||
|           bar-volume-foreground-6 = "#ff5555"; |  | ||||||
|           bar-volume-gradient = false; |  | ||||||
|           bar-volume-indicator = "|"; |  | ||||||
|           bar-volume-indicator-font = 2; |  | ||||||
|           bar-volume-fill = "─"; |  | ||||||
|           bar-volume-fill-font = 2; |  | ||||||
|           bar-volume-empty = "─"; |  | ||||||
|           bar-volume-empty-font = 2; |  | ||||||
|           bar-volume-empty-foreground = "\${colors.foreground-alt}"; |  | ||||||
|         }; |  | ||||||
| 
 |  | ||||||
|         "module/battery" = { |  | ||||||
|           type = "internal/battery"; |  | ||||||
|           battery = "BAT0"; |  | ||||||
|           adapter = "ADP1"; |  | ||||||
|           full-at = 98; |  | ||||||
| 
 |  | ||||||
|           format-charging = "<animation-charging> <label-charging>"; |  | ||||||
|           format-charging-underline = "#ffb52a"; |  | ||||||
| 
 |  | ||||||
|           format-discharging = "<animation-discharging> <label-discharging>"; |  | ||||||
|           format-discharging-underline = "\${self.format-charging-underline}"; |  | ||||||
| 
 |  | ||||||
|           format-full-prefix = " "; |  | ||||||
|           format-full-prefix-foreground = "\${colors.foreground-alt}"; |  | ||||||
|           format-full-underline = "\${self.format-charging-underline}"; |  | ||||||
| 
 |  | ||||||
|           ramp-capacity-0 = ""; |  | ||||||
|           ramp-capacity-1 = ""; |  | ||||||
|           ramp-capacity-2 = ""; |  | ||||||
|           ramp-capacity-foreground = "\${colors.foreground-alt}"; |  | ||||||
| 
 |  | ||||||
|           animation-charging-0 = ""; |  | ||||||
|           animation-charging-1 = ""; |  | ||||||
|           animation-charging-2 = ""; |  | ||||||
|           animation-charging-foreground = "\${colors.foreground-alt}"; |  | ||||||
|           animation-charging-framerate = 750; |  | ||||||
| 
 |  | ||||||
|           animation-discharging-0 = ""; |  | ||||||
|           animation-discharging-1 = ""; |  | ||||||
|           animation-discharging-2 = ""; |  | ||||||
|           animation-discharging-foreground = "\${colors.foreground-alt}"; |  | ||||||
|           animation-discharging-framerate = 750; |  | ||||||
|         }; |  | ||||||
| 
 |  | ||||||
|         "module/temperature" = { |  | ||||||
|           type = "internal/temperature"; |  | ||||||
|           warn-temperature = 60; |  | ||||||
|           hwmon-path = "/sys/devices/pci0000:00/0000:00:18.3/hwmon/hwmon1/temp2_input"; |  | ||||||
| 
 |  | ||||||
|           format = "<ramp> <label>"; |  | ||||||
|           format-warn = "<ramp> <label-warn>"; |  | ||||||
| 
 |  | ||||||
|           label = "cpu %temperature-c%"; |  | ||||||
|           label-warn = "cpu %temperature-c%"; |  | ||||||
|           label-warn-foreground = "\${colors.secondary}"; |  | ||||||
| 
 |  | ||||||
|           ramp-0 = ""; |  | ||||||
|           ramp-1 = ""; |  | ||||||
|           ramp-2 = ""; |  | ||||||
|           ramp-foreground = "\${colors.foreground-alt}"; |  | ||||||
|         }; |  | ||||||
| 
 |  | ||||||
|         "module/gputemperature" = { |  | ||||||
|           type = "internal/temperature"; |  | ||||||
|           warn-temperature = 60; |  | ||||||
|           hwmon-path = "/sys/devices/pci0000:00/0000:00:03.1/0000:09:00.0/hwmon/hwmon3/temp1_input"; |  | ||||||
| 
 |  | ||||||
|           format = "<ramp> <label>"; |  | ||||||
|           format-warn = "<ramp> <label-warn>"; |  | ||||||
| 
 |  | ||||||
|           label = "gpu %temperature-c%"; |  | ||||||
|           label-warn = "gpu %temperature-c%"; |  | ||||||
|           label-warn-foreground = "\${colors.secondary}"; |  | ||||||
| 
 |  | ||||||
|           ramp-0 = ""; |  | ||||||
|           ramp-1 = ""; |  | ||||||
|           ramp-2 = ""; |  | ||||||
|           ramp-foreground = "\${colors.foreground-alt}"; |  | ||||||
|         }; |  | ||||||
| 
 |  | ||||||
|         "module/nvmetemperature" = { |  | ||||||
|           type = "internal/temperature"; |  | ||||||
|           warn-temperature = 60; |  | ||||||
|           hwmon-path = "/sys/devices/pci0000:00/0000:00:01.1/0000:01:00.0/hwmon/hwmon0/temp1_input"; |  | ||||||
| 
 |  | ||||||
|           format = "<ramp> <label>"; |  | ||||||
|           format-warn = "<ramp> <label-warn>"; |  | ||||||
| 
 |  | ||||||
|           label = "M.2 %temperature-c%"; |  | ||||||
|           label-warn = "M.2 %temperature-c%"; |  | ||||||
|           label-warn-foreground = "\${colors.secondary}"; |  | ||||||
| 
 |  | ||||||
|           ramp-0 = ""; |  | ||||||
|           ramp-1 = ""; |  | ||||||
|           ramp-2 = ""; |  | ||||||
|           ramp-foreground = "\${colors.foreground-alt}"; |  | ||||||
|         }; |  | ||||||
| 
 |  | ||||||
|         "module/powermenu" = { |  | ||||||
|           type = "custom/menu"; |  | ||||||
| 
 |  | ||||||
|           expand-right = true; |  | ||||||
| 
 |  | ||||||
|           format-spacing = 1; |  | ||||||
| 
 |  | ||||||
|           label-open = ""; |  | ||||||
|           label-open-foreground = "\${colors.secondary}"; |  | ||||||
|           label-close = " cancel"; |  | ||||||
|           label-close-foreground = "\${colors.secondary}"; |  | ||||||
|           label-separator = "|"; |  | ||||||
|           label-separator-foreground = "\${colors.foreground-alt}"; |  | ||||||
| 
 |  | ||||||
|           menu-0-0 = "reboot"; |  | ||||||
|           menu-0-0-exec = "menu-open-1"; |  | ||||||
|           menu-0-1 = "power off"; |  | ||||||
|           menu-0-1-exec = "menu-open-2"; |  | ||||||
| 
 |  | ||||||
|           menu-1-0 = "cancel"; |  | ||||||
|           menu-1-0-exec = "menu-open-0"; |  | ||||||
|           menu-1-1 = "reboot"; |  | ||||||
|           menu-1-1-exec = "sudo reboot"; |  | ||||||
| 
 |  | ||||||
|           menu-2-0 = "power off"; |  | ||||||
|           menu-2-0-exec = "sudo poweroff"; |  | ||||||
|           menu-2-1 = "cancel"; |  | ||||||
|           menu-2-1-exec = "menu-open-0"; |  | ||||||
|         }; |  | ||||||
| 
 |  | ||||||
|         "module/sink_changer" = { |  | ||||||
|           type = "custom/script"; |  | ||||||
|           exec = "/home/fabian/bin/polybar_scripts/info.sh"; |  | ||||||
|           label = "%output%"; |  | ||||||
|           click-left = "/home/fabian/bin/polybar_scripts/sink_changer.sh"; |  | ||||||
|           # format-prefix = " "; |  | ||||||
|           interval = "0"; |  | ||||||
|           # format-prefix-foreground = "${colors.foreground-alt}"; |  | ||||||
|         }; |  | ||||||
| 
 |  | ||||||
|         "settings" = { |  | ||||||
|           screenchange-reload = true; |  | ||||||
|           # compositing-background = "xor"; |  | ||||||
|           # compositing-background = "screen"; |  | ||||||
|           # compositing-foreground = "source"; |  | ||||||
|           # compositing-border = "over"; |  | ||||||
|           # pseudo-transparency = false; |  | ||||||
|         }; |  | ||||||
| 
 |  | ||||||
|         "global/wm" = { |  | ||||||
|           margin-top = 5; |  | ||||||
|           margin-bottom = 5; |  | ||||||
|         }; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
|   }; |  | ||||||
| } |  | ||||||
|  | @ -1,26 +0,0 @@ | ||||||
| { |  | ||||||
|   config, |  | ||||||
|   pkgs, |  | ||||||
|   lib, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| with lib; let |  | ||||||
|   cfg = config.local.gui.startx; |  | ||||||
| in { |  | ||||||
|   options.local.gui.startx.enable = mkEnableOption "startx"; |  | ||||||
|   config = mkIf cfg.enable { |  | ||||||
|     xsession.enable = true; |  | ||||||
| 
 |  | ||||||
|     home.file.".xinitrc".source = let |  | ||||||
|       content = |  | ||||||
|         if config.local.nixos |  | ||||||
|         then '' |  | ||||||
|           exec ~/.xsession |  | ||||||
|         '' |  | ||||||
|         else '' |  | ||||||
|           exec ${pkgs.nixgl.nixGLIntel}/bin/nixGLIntel ~/.xsession |  | ||||||
|         ''; |  | ||||||
|     in |  | ||||||
|       pkgs.writeShellScript "xinitrc" content; |  | ||||||
|   }; |  | ||||||
| } |  | ||||||
|  | @ -1,22 +0,0 @@ | ||||||
| { |  | ||||||
|   pkgs, |  | ||||||
|   config, |  | ||||||
|   lib, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| with lib; { |  | ||||||
|   home.isolation = { |  | ||||||
|     enable = true; |  | ||||||
|     btrfsSupport = true; |  | ||||||
|     defaults = { |  | ||||||
|       static = true; |  | ||||||
|       bindHome = "home/"; |  | ||||||
|       persist = { |  | ||||||
|         base = "shenvs"; |  | ||||||
|         btrfs = true; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     modulesUnder = ./shenvs; |  | ||||||
|   }; |  | ||||||
| } |  | ||||||
|  | @ -1,30 +0,0 @@ | ||||||
| { |  | ||||||
|   config, |  | ||||||
|   lib, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| with lib; { |  | ||||||
|   options.local = with types; { |  | ||||||
|     platform = mkOption { |  | ||||||
|       type = str; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     display = { |  | ||||||
|       "0" = mkOption { |  | ||||||
|         type = str; |  | ||||||
|       }; |  | ||||||
| 
 |  | ||||||
|       "1" = mkOption { |  | ||||||
|         type = nullOr str; |  | ||||||
|       }; |  | ||||||
| 
 |  | ||||||
|       autorandrProfile = mkOption { |  | ||||||
|         type = attrs; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     nixos = mkOption { |  | ||||||
|       type = bool; |  | ||||||
|     }; |  | ||||||
|   }; |  | ||||||
| } |  | ||||||
|  | @ -1,42 +0,0 @@ | ||||||
| { |  | ||||||
|   config.local = { |  | ||||||
|     nixos = true; |  | ||||||
| 
 |  | ||||||
|     apps = { |  | ||||||
|       steam.enable = true; |  | ||||||
|       virtmanager.enable = true; |  | ||||||
|       defaultApps.enable = true; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     display = { |  | ||||||
|       "0" = "DP-1"; |  | ||||||
|       "1" = "DP-2"; |  | ||||||
| 
 |  | ||||||
|       autorandrProfile = { |  | ||||||
|         fingerprint = { |  | ||||||
|           DP-1 = "00ffffffffffff003669a03bd4040000231e0104a5341d783bd005ac5048a627125054bfcf00814081809500714f81c0b30001010101023a801871382d40582c450009252100001e0882805070384d400820f80c09252100001a000000fd003090b4b422010a202020202020000000fc004d53492047323443340a20202001a2020320f14d010304131f120211900e0f1d1e230907078301000065030c001000866f80a0703840403020350009252100001a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e9"; |  | ||||||
|           DP-2 = "00ffffffffffff0009d1e77845540000061f0104a5351e783a0565a756529c270f5054a56b80d1c0b300a9c08180810081c001010101023a801871382d40582c45000f282100001e000000ff0039324d30303033323031510a20000000fd00324c1e5311010a202020202020000000fc0042656e51204757323438300a20019b02031cf14f901f041303120211011406071516052309070783010000023a801871382d40582c45000f282100001f011d8018711c1620582c25000f282100009f011d007251d01e206e2855000f282100001e8c0ad08a20e02d10103e96000f28210000180000000000000000000000000000000000000000000000000000008d"; |  | ||||||
|         }; |  | ||||||
|         config = { |  | ||||||
|           DP-1 = { |  | ||||||
|             enable = true; |  | ||||||
|             primary = true; |  | ||||||
|             position = "0x0"; |  | ||||||
|             mode = "1920x1080"; |  | ||||||
|             rate = "143.85"; |  | ||||||
|             rotate = "normal"; |  | ||||||
|           }; |  | ||||||
| 
 |  | ||||||
|           DP-2 = { |  | ||||||
|             enable = true; |  | ||||||
|             primary = false; |  | ||||||
|             position = "1920x0"; |  | ||||||
|             mode = "1920x1080"; |  | ||||||
|             rate = "59.94"; |  | ||||||
|             rotate = "normal"; |  | ||||||
|           }; |  | ||||||
|         }; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
|   }; |  | ||||||
| } |  | ||||||
|  | @ -1,25 +0,0 @@ | ||||||
| { |  | ||||||
|   config.local = { |  | ||||||
|     nixos = false; |  | ||||||
| 
 |  | ||||||
|     display = { |  | ||||||
|       "0" = "eDP-1"; |  | ||||||
|       "1" = null; |  | ||||||
| 
 |  | ||||||
|       autorandrProfile = { |  | ||||||
|         fingerprint = { |  | ||||||
|           eDP-1 = "00ffffffffffff000dae0a1400000000291d0104a51f11780328659759548e271e505400000001010101010101010101010101010101363680a0703820403020a60035ad10000018000000fe004e3134304843412d4541450a20000000fe00434d4e0a202020202020202020000000fe004e3134304843412d4541450a200002"; |  | ||||||
|         }; |  | ||||||
|         config = { |  | ||||||
|           eDP-1 = { |  | ||||||
|             enable = true; |  | ||||||
|             primary = true; |  | ||||||
|             mode = "1920x1080"; |  | ||||||
|             rate = "60.0"; |  | ||||||
|             rotate = "normal"; |  | ||||||
|           }; |  | ||||||
|         }; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
|   }; |  | ||||||
| } |  | ||||||
|  | @ -1,13 +0,0 @@ | ||||||
| {pkgs, ...}: { |  | ||||||
|   static = true; |  | ||||||
| 
 |  | ||||||
|   packages = with pkgs; [ |  | ||||||
|     binutils |  | ||||||
|     cmake |  | ||||||
|     curl |  | ||||||
|     gdb |  | ||||||
|     gnumake |  | ||||||
|     rustup |  | ||||||
|     valgrind |  | ||||||
|   ]; |  | ||||||
| } |  | ||||||
|  | @ -1,11 +0,0 @@ | ||||||
| {pkgs, ...}: { |  | ||||||
|   static = true; |  | ||||||
| 
 |  | ||||||
|   packages = with pkgs; [ |  | ||||||
|     pipenv |  | ||||||
|     (python310.withPackages (packages: |  | ||||||
|       with packages; [ |  | ||||||
|         setuptools |  | ||||||
|       ])) |  | ||||||
|   ]; |  | ||||||
| } |  | ||||||
|  | @ -1,10 +0,0 @@ | ||||||
| { |  | ||||||
|   lib, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| with lib; { |  | ||||||
|   systemd.user.tmpfiles.rules = [ |  | ||||||
|     "d %t/tmp 0700 fabian fabian 24h" |  | ||||||
|   ]; |  | ||||||
| } |  | ||||||
							
								
								
									
										136
									
								
								home/zshrc.nix
									
										
									
									
									
								
							
							
						
						
									
										136
									
								
								home/zshrc.nix
									
										
									
									
									
								
							|  | @ -1,136 +0,0 @@ | ||||||
| { |  | ||||||
|   maim, |  | ||||||
|   redshift, |  | ||||||
|   xclip, |  | ||||||
|   ... |  | ||||||
| }: '' |  | ||||||
|   # The following lines were added by compinstall |  | ||||||
| 
 |  | ||||||
|   zstyle ':completion:*' auto-description 'specify: %d' |  | ||||||
|   zstyle ':completion:*' completer _expand _complete _ignored _correct _approximate |  | ||||||
|   zstyle ':completion:*' expand prefix suffix |  | ||||||
|   zstyle ':completion:*' ignore-parents parent |  | ||||||
|   zstyle ':completion:*' insert-unambiguous true |  | ||||||
|   zstyle ':completion:*' list-colors "" |  | ||||||
|   zstyle ':completion:*' list-prompt %SAt %p: Hit TAB for more, or the character to insert%s |  | ||||||
|   zstyle ':completion:*' list-suffixes true |  | ||||||
|   zstyle ':completion:*' matcher-list "" 'm:{[:lower:]}={[:upper:]} m:{[:lower:][:upper:]}={[:upper:][:lower:]}' 'r:|[._-]=** r:|=** l:|=*' |  | ||||||
|   zstyle ':completion:*' menu select=1 |  | ||||||
|   zstyle ':completion:*' original true |  | ||||||
|   zstyle ':completion:*' preserve-prefix '//[^/]##/' |  | ||||||
|   zstyle ':completion:*' verbose true |  | ||||||
|   zstyle :compinstall filename '/home/fabian/.zshrc' |  | ||||||
| 
 |  | ||||||
|   autoload -Uz compinit |  | ||||||
|   compinit |  | ||||||
|   # End of lines added by compinstall |  | ||||||
|   # Lines configured by zsh-newuser-install |  | ||||||
|   HISTFILE=~/.histfile |  | ||||||
|   HISTSIZE=1000 |  | ||||||
|   SAVEHIST=1000 |  | ||||||
|   setopt autocd extendedglob nomatch |  | ||||||
|   unsetopt beep notify |  | ||||||
|   bindkey -v |  | ||||||
|   # End of lines configured by zsh-newuser-install |  | ||||||
| 
 |  | ||||||
|   # Prompt |  | ||||||
|   setopt prompt_subst |  | ||||||
|   autoload -Uz vcs_info |  | ||||||
|   precmd_vcs_info() { vcs_info } |  | ||||||
|   precmd_functions+=( precmd_vcs_info ) |  | ||||||
| 
 |  | ||||||
|   zstyle ':vcs_info:*' disable bzr cdv darcs mtn svk tla cvs svn |  | ||||||
|   zstyle ':vcs_info:*' enable git |  | ||||||
|   zstyle ':vcs_info:git+set-message:*' hooks format_msg |  | ||||||
| 
 |  | ||||||
|   function +vi-format_msg { |  | ||||||
|   local branch=$(git branch --show-current) |  | ||||||
| 
 |  | ||||||
|   if [[ -z "$branch" ]] ; then |  | ||||||
|   	branch=$(git rev-parse --short HEAD) |  | ||||||
|   fi |  | ||||||
| 
 |  | ||||||
|   local color="" |  | ||||||
| 
 |  | ||||||
|   if [[ -z $(git status --porcelain 2>/dev/null) ]]; |  | ||||||
|   then |  | ||||||
|   	color="%F{blue}" |  | ||||||
|   fi |  | ||||||
| 
 |  | ||||||
|   if [[ $(git status --porcelain 2>/dev/null | grep "^A \|^M " | wc -l) > 0 ]]; |  | ||||||
|   	then |  | ||||||
|   	color="%F{green}" |  | ||||||
|   fi |  | ||||||
| 
 |  | ||||||
|   if [[ $(git status --porcelain 2>/dev/null | grep "^??\|^AM\|^.D" | wc -l) > 0 ]] |  | ||||||
|   then |  | ||||||
|   	color="%F{red}" |  | ||||||
|   fi |  | ||||||
| 
 |  | ||||||
|   ret=1 |  | ||||||
|   hook_com[message]="$color($branch)%f " |  | ||||||
| 
 |  | ||||||
|   return 0 |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   PROMPT='%B[%~] ''${vcs_info_msg_0_}%b' |  | ||||||
| 
 |  | ||||||
|   # Aliases and binds |  | ||||||
|   alias ls='ls --color -F' |  | ||||||
|   alias l='ls --color -FhAltr' |  | ||||||
|   alias x='killall --ignore-case --user=$(whoami) --interactive' |  | ||||||
|   alias sc='${maim}/bin/maim -s -u | ${xclip}/bin/xclip -selection clipboard -t image/png -i' |  | ||||||
|   alias tree='tree -CF' |  | ||||||
|   alias lock="betterlockscreen -l" |  | ||||||
|   alias nightmode="${redshift}/bin/redshift -P -O 1000" |  | ||||||
|   alias lightmode="${redshift}/bin/redshift -P -O 6500" |  | ||||||
|   alias inbox="echo >> $HOME/gtd/inbox" |  | ||||||
|   alias nixoide="nix repl '<nixpkgs>'" |  | ||||||
|   alias vps="ssh -A vps" |  | ||||||
|   bindkey -e |  | ||||||
|   bindkey ";5D" backward-word |  | ||||||
|   bindkey ";5C" forward-word |  | ||||||
|   bindkey "\e[3~" delete-char |  | ||||||
| 
 |  | ||||||
|   function use() { |  | ||||||
|     local pkg |  | ||||||
|     pkg="$1" |  | ||||||
|     shift |  | ||||||
|     echo "nix shell nixpkgs#$pkg" |  | ||||||
|     nix shell "nixpkgs#$pkg" "$@" |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   function unuse() { |  | ||||||
|     local pkg |  | ||||||
|     pkg="$1" |  | ||||||
|     shift |  | ||||||
|     echo "nix shell unstable#$pkg --impure" |  | ||||||
|     nix shell "unstable#$pkg" "$@"  --impure |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   function spawn () { |  | ||||||
|     if [ ! -x "$(command -v $1)" ] |  | ||||||
|       then |  | ||||||
|          echo "spawn: no such program: $1" >&2 |  | ||||||
|          return 1 |  | ||||||
|      fi |  | ||||||
|      $@ > /dev/null 0>&1 2>&1 & |  | ||||||
|      disown |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   autoload -Uz up-line-or-beginning-search |  | ||||||
|   zle -N up-line-or-beginning-search |  | ||||||
|   autoload -Uz down-line-or-beginning-search |  | ||||||
|   zle -N down-line-or-beginning-search |  | ||||||
|   bindkey '\eOA' up-line-or-beginning-search |  | ||||||
|   bindkey '\e[A' up-line-or-beginning-search |  | ||||||
|   bindkey '\eOB' down-line-or-beginning-search |  | ||||||
|   bindkey '\e[B' down-line-or-beginning-search |  | ||||||
| 
 |  | ||||||
|   # Env |  | ||||||
|   export TERM=xterm-256color |  | ||||||
|   export EDITOR=nvim |  | ||||||
|   export VISUAL=nvim |  | ||||||
|   export PATH="$PATH:$HOME/.local/bin:$HOME/.cargo/bin" |  | ||||||
|   export NIXPKGS_ALLOW_UNFREE=1 |  | ||||||
| '' |  | ||||||
|  | @ -1,2 +0,0 @@ | ||||||
| pkgs: { |  | ||||||
| } |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue