forked from jan-leila/nix-config
		
	feat: drafted out open dyslexic font for vscode
This commit is contained in:
		
							parent
							
								
									80ad498f94
								
							
						
					
					
						commit
						75dcac8d17
					
				
					 4 changed files with 51 additions and 1 deletions
				
			
		|  | @ -87,7 +87,6 @@ | ||||||
|     # TODO: move this into a fonts module |     # TODO: move this into a fonts module | ||||||
|     home.packages = with pkgs; [ |     home.packages = with pkgs; [ | ||||||
|       aileron |       aileron | ||||||
|       nerd-fonts.open-dyslexic |  | ||||||
|     ]; |     ]; | ||||||
|     fonts.fontconfig.enable = true; |     fonts.fontconfig.enable = true; | ||||||
|   }; |   }; | ||||||
|  |  | ||||||
|  | @ -40,6 +40,8 @@ in { | ||||||
|             oneDark.enable = true; |             oneDark.enable = true; | ||||||
|             atomKeybindings.enable = true; |             atomKeybindings.enable = true; | ||||||
|             openRemoteSsh.enable = true; |             openRemoteSsh.enable = true; | ||||||
|  |             # I don't like how the terminal feels with open dyslexic font on and lots of parts of the UI don't get set anyways | ||||||
|  |             openDyslexicFont.enable = false; | ||||||
| 
 | 
 | ||||||
|             # html development |             # html development | ||||||
|             autoRenameTag.enable = true; |             autoRenameTag.enable = true; | ||||||
|  |  | ||||||
|  | @ -23,5 +23,6 @@ | ||||||
|     ./vitest.nix |     ./vitest.nix | ||||||
|     ./direnv.nix |     ./direnv.nix | ||||||
|     ./conventionalCommits.nix |     ./conventionalCommits.nix | ||||||
|  |     ./openDyslexicFont.nix | ||||||
|   ]; |   ]; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -0,0 +1,48 @@ | ||||||
|  | { | ||||||
|  |   lib, | ||||||
|  |   pkgs, | ||||||
|  |   config, | ||||||
|  |   ... | ||||||
|  | }: { | ||||||
|  |   options.programs.vscode.profiles = lib.mkOption { | ||||||
|  |     type = lib.types.attrsOf (lib.types.submodule ({config, ...}: { | ||||||
|  |       options = { | ||||||
|  |         extraExtensions.openDyslexicFont = { | ||||||
|  |           enable = lib.mkEnableOption "should OpenDyslexic font be set as the default font for VSCode"; | ||||||
|  |           package = lib.mkPackageOption pkgs "nerd-fonts.open-dyslexic" { | ||||||
|  |             default = ["nerd-fonts" "open-dyslexic"]; | ||||||
|  |           }; | ||||||
|  |         }; | ||||||
|  |       }; | ||||||
|  |       config = lib.mkIf config.extraExtensions.openDyslexicFont.enable { | ||||||
|  |         userSettings = { | ||||||
|  |           "editor.fontFamily" = "'OpenDyslexicM Nerd Font Mono', 'OpenDyslexic', monospace"; | ||||||
|  |           "editor.fontSize" = 14; | ||||||
|  |         }; | ||||||
|  |       }; | ||||||
|  |     })); | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   config = let | ||||||
|  |     enabledProfiles = | ||||||
|  |       lib.filter (profile: profile.extraExtensions.openDyslexicFont.enable or false) | ||||||
|  |       (lib.attrValues config.programs.vscode.profiles); | ||||||
|  | 
 | ||||||
|  |     anyProfileUsesOpenDyslexicFont = enabledProfiles != []; | ||||||
|  | 
 | ||||||
|  |     fontPackages = lib.unique (map (profile: profile.extraExtensions.openDyslexicFont.package) enabledProfiles); | ||||||
|  |   in { | ||||||
|  |     # Ensure OpenDyslexic font packages are installed when any VSCode profile uses them | ||||||
|  |     home.packages = fontPackages; | ||||||
|  | 
 | ||||||
|  |     fonts.fontconfig.enable = lib.mkIf anyProfileUsesOpenDyslexicFont true; | ||||||
|  | 
 | ||||||
|  |     # Add assertion to ensure the fonts are available | ||||||
|  |     assertions = | ||||||
|  |       map (fontPkg: { | ||||||
|  |         assertion = lib.elem fontPkg config.home.packages; | ||||||
|  |         message = "OpenDyslexic font package '${fontPkg.name or "unknown"}' must be installed when using openDyslexicFont extension for VSCode."; | ||||||
|  |       }) | ||||||
|  |       fontPackages; | ||||||
|  |   }; | ||||||
|  | } | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue