My personal nix config files. Feel free to import flake.

add sddm theme

+241 -3
+4
flake.nix
··· 28 28 inputs.nixpkgs.follows = "nixpkgs"; 29 29 inputs.home-manager.follows = "home-manager"; 30 30 }; 31 + sddmSugarCandy4Nix = { 32 + url = "github:MOIS3Y/sddmSugarCandy4Nix"; 33 + inputs.nixpkgs.follows = "nixpkgs"; 34 + }; 31 35 }; 32 36 outputs = { 33 37 self,
+1
modules/home-manager/packages.nix
··· 82 82 chafa 83 83 colordiff 84 84 hyperfine 85 + kdePackages.filelight # Disk usage analyzer 85 86 # 86 87 # flatseal 87 88 # build-essential
+84 -1
modules/nixos/desktop/default.nix
··· 1 1 { 2 + inputs, 2 3 lib, 3 4 config, 4 5 pkgs, ··· 6 7 ... 7 8 }: let 8 9 cfg = config.teq.nixos.desktop; 10 + hostname = config.networking.hostName; 11 + # walls_repo = builtins.fetchGit { 12 + # url = "https://github.com/dharmx/walls"; 13 + # rev = "6bf4d733ebf2b484a37c17d742eb47e5139e6a14"; 14 + # }; 9 15 in { 10 16 options.teq.nixos.desktop = { 11 17 enable = lib.mkEnableOption "Teq's NixOS Desktop configuration defaults."; ··· 13 19 imports = [ 14 20 ./steam.nix 15 21 ./pipewire.nix 22 + { 23 + nixpkgs = { 24 + overlays = [ 25 + (final: prev: { 26 + sddm-sugar-candy = inputs.sddmSugarCandy4Nix.packages.${pkgs.stdenv.hostPlatform.system}.sddm-sugar-candy; 27 + }) 28 + ]; 29 + }; 30 + } 16 31 ]; 17 32 config = lib.mkIf cfg.enable { 18 33 teq.nixos.desktop.audio.enable = lib.mkDefault true; # Enable audio defaults. 19 34 teq.nixos.desktop.steam.enable = lib.mkDefault true; # Enable Steam defaults. 35 + environment.systemPackages = [pkgs.bibata-cursors]; # Allows cursors to be used in the system, like the login screen 20 36 services = { 21 37 xserver = { 22 38 enable = true; # You can disable the X11 windowing system if you're only using the Wayland session. ··· 28 44 # libinput.enable = true; # Enable touchpad support (enabled default in most desktopManager). 29 45 }; 30 46 # Enable the KDE Plasma Desktop Environment. 31 - displayManager.sddm.enable = true; 47 + displayManager.sddm = { 48 + enable = true; 49 + wayland.enable = true; 50 + wayland.compositor = "kwin"; 51 + theme = ''${ # <-- string interpolation and nix expression inside {} 52 + pkgs.sddm-sugar-candy.override { 53 + settings = { 54 + # Background = "${walls_repo}/cold/a_mountain_with_clouds_in_the_sky.jpg"; 55 + DimBackgroundImage = "0.0"; 56 + ScaleImageCropped = true; 57 + ScreenWidth = "1440"; 58 + ScreenHeight = "900"; 59 + FullBlur = false; 60 + PartialBlur = true; 61 + BlurRadius = "100"; 62 + HaveFormBackground = false; 63 + FormPosition = "left"; 64 + BackgroundImageHAlignment = "center"; 65 + BackgroundImageVAlignment = "center"; 66 + MainColor = "white"; 67 + AccentColor = "#fb884f"; 68 + BackgroundColor = "#444"; 69 + OverrideLoginButtonTextColor = ""; 70 + InterfaceShadowSize = "6"; 71 + InterfaceShadowOpacity = "0.6"; 72 + RoundCorners = "20"; 73 + ScreenPadding = "0"; 74 + Font = "Source Sans Pro"; 75 + FontSize = ""; 76 + ForceRightToLeft = false; 77 + ForceLastUser = true; 78 + ForcePasswordFocus = true; 79 + ForceHideCompletePassword = true; 80 + ForceHideVirtualKeyboardButton = false; 81 + ForceHideSystemButtons = false; 82 + AllowEmptyPassword = false; 83 + AllowBadUsernames = false; 84 + Locale = ""; 85 + HourFormat = "HH:mm"; 86 + DateFormat = "dddd, d of MMMM"; 87 + HeaderText = "${hostname}"; 88 + TranslatePlaceholderUsername = ""; 89 + TranslatePlaceholderPassword = ""; 90 + TranslateShowPassword = ""; 91 + TranslateLogin = ""; 92 + TranslateLoginFailedWarning = ""; 93 + TranslateCapslockWarning = ""; 94 + TranslateSession = ""; 95 + TranslateSuspend = ""; 96 + TranslateHibernate = ""; 97 + TranslateReboot = ""; 98 + TranslateShutdown = ""; 99 + TranslateVirtualKeyboardButton = ""; 100 + }; 101 + } 102 + }''; 103 + package = lib.mkForce pkgs.libsForQt5.sddm; 104 + extraPackages = with pkgs; 105 + lib.mkForce [ 106 + libsForQt5.qt5.qtgraphicaleffects 107 + ]; 108 + settings = { 109 + Theme = { 110 + CursorTheme = "Bibata-Modern-Classic"; 111 + # CursorSize = 29; 112 + }; 113 + }; 114 + }; 32 115 desktopManager.plasma6.enable = true; 33 116 }; 34 117 # nixpkgs.overlays = [nixpkgs-wayland.overlay]; # Automated, pre-built, (potentially) pre-release packages for Wayland (sway/wlroots) tools for NixOS.
-1
modules/nixos/programs.nix
··· 31 31 wezterm-flake.packages.${pkgs.system}.default # Wezterm flake 32 32 nix-output-monitor # nix output monitor 33 33 papirus-icon-theme # Allows icons to be used in the system, like the login screen 34 - bibata-cursors # Allows cursors to be used in the system, like the login screen 35 34 ]); 36 35 37 36 programs = {
+150
pkgs/by-name/ka/kando/package.nix
··· 1 + { 2 + lib, 3 + stdenv, 4 + buildNpmPackage, 5 + fetchFromGitHub, 6 + overrideSDK, 7 + electron, 8 + nodejs, 9 + cmake, 10 + zip, 11 + makeWrapper, 12 + wayland-scanner, 13 + copyDesktopItems, 14 + makeDesktopItem, 15 + libxkbcommon, 16 + libX11, 17 + libXtst, 18 + libXi, 19 + wayland, 20 + darwin, 21 + }: let 22 + buildNpmPackage' = buildNpmPackage.override { 23 + stdenv = 24 + if stdenv.isDarwin 25 + then overrideSDK stdenv "11.0" 26 + else stdenv; 27 + }; 28 + in 29 + buildNpmPackage' rec { 30 + pname = "kando"; 31 + version = "1.4.0"; 32 + 33 + src = fetchFromGitHub { 34 + owner = "kando-menu"; 35 + repo = "kando"; 36 + rev = "refs/tags/v${version}"; 37 + hash = "sha256-JcPTplqrMgDsT0HDTh7liChUWvLqe9gwS51ANM3Wsds="; 38 + }; 39 + 40 + npmDepsHash = "sha256-13NuhGq5Pv5GSLeXASWxbXZYaUb9KzMgR7y5I7mv+MA="; 41 + 42 + npmFlags = ["--ignore-scripts"]; 43 + 44 + makeCacheWritable = true; 45 + 46 + nativeBuildInputs = 47 + [ 48 + cmake 49 + zip 50 + makeWrapper 51 + ] 52 + ++ lib.optionals stdenv.isLinux [ 53 + wayland-scanner 54 + copyDesktopItems 55 + ]; 56 + 57 + buildInputs = 58 + lib.optionals stdenv.isLinux [ 59 + libxkbcommon 60 + libX11 61 + libXtst 62 + libXi 63 + wayland 64 + ] 65 + ++ lib.optionals stdenv.isDarwin [darwin.apple_sdk_11_0.frameworks.AppKit]; 66 + 67 + dontUseCmakeConfigure = true; 68 + 69 + env = { 70 + ELECTRON_SKIP_BINARY_DOWNLOAD = "1"; 71 + # use our own node headers since we skip downloading them 72 + NIX_CFLAGS_COMPILE = "-I${nodejs}/include/node"; 73 + # disable code signing on Darwin 74 + CSC_IDENTITY_AUTO_DISCOVERY = lib.optionalString stdenv.isDarwin "false"; 75 + }; 76 + 77 + postConfigure = '' 78 + # electron files need to be writable on Darwin 79 + cp -r ${electron.dist} electron-dist 80 + chmod -R u+w electron-dist 81 + 82 + pushd electron-dist 83 + zip -0Xqr ../electron.zip . 84 + popd 85 + 86 + rm -r electron-dist 87 + 88 + # force @electron/packager to use our electron instead of downloading it, even if it is a different version 89 + substituteInPlace node_modules/@electron/packager/dist/packager.js \ 90 + --replace-fail 'await this.getElectronZipPath(downloadOpts)' '"electron.zip"' 91 + 92 + # don't fetch node headers 93 + substituteInPlace node_modules/cmake-js/lib/dist.js \ 94 + --replace-fail '!this.downloaded' 'false' 95 + ''; 96 + 97 + # we used --ignore-scripts to have time to patch the dependencies 98 + # now we'll have to call npm rebuild manually 99 + preBuild = '' 100 + npm rebuild --verbose 101 + ''; 102 + 103 + npmBuildScript = "package"; 104 + 105 + installPhase = '' 106 + runHook preInstall 107 + 108 + ${lib.optionalString stdenv.isLinux '' 109 + mkdir -p $out/share/lib/kando 110 + cp -r out/*/{locales,resources{,.pak}} $out/share/lib/kando 111 + 112 + install -Dm644 assets/icons/icon.svg $out/share/icons/hicolor/scalable/apps/kando.svg 113 + 114 + makeWrapper ${lib.getExe electron} $out/bin/kando \ 115 + --add-flags $out/share/lib/kando/resources/app \ 116 + --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \ 117 + --inherit-argv0 118 + ''} 119 + 120 + ${lib.optionalString stdenv.isDarwin '' 121 + mkdir -p $out/Applications 122 + cp -r out/*/Kando.app $out/Applications 123 + makeWrapper $out/Applications/Kando.app/Contents/MacOS/Kando $out/bin/kando 124 + ''} 125 + 126 + runHook postInstall 127 + ''; 128 + 129 + desktopItems = [ 130 + (makeDesktopItem { 131 + name = "kando"; 132 + exec = "kando %U"; 133 + icon = "kando"; 134 + desktopName = "Kando"; 135 + genericName = "Pie Menu"; 136 + comment = "The Cross-Platform Pie Menu"; 137 + categories = ["Utility"]; 138 + }) 139 + ]; 140 + 141 + meta = { 142 + changelog = "https://github.com/kando-menu/kando/releases/tag/v${version}"; 143 + description = "Cross-Platform Pie Menu"; 144 + homepage = "https://github.com/kando-menu/kando"; 145 + license = lib.licenses.mit; 146 + mainProgram = "kando"; 147 + maintainers = with lib.maintainers; [tomasajt]; 148 + platforms = electron.meta.platforms; 149 + }; 150 + }
+1
pkgs/default.nix
··· 3 3 pkgs: { 4 4 # example = pkgs.callPackage ./example { }; 5 5 scripts = pkgs.callPackage ./scripts {}; 6 + kando = pkgs.callPackage ./by-name/ka/kando/package.nix {}; 6 7 }
+1 -1
pkgs/scripts/default.nix
··· 11 11 version = "1"; 12 12 src = ./src; # Folder src inside current folder that contains the script 13 13 dontBuild = true; # No build required 14 - nativeBuildInputs = [makeWrapper]; 14 + nativeBuildInputs = [makeWrapper coreutils]; 15 15 # buildInputs = [ <your dependencies> ]; 16 16 installPhase = '' 17 17 # Create output directory in /nix/store