nix machine / user configurations
1{ 2 config, 3 pkgs, 4 lib, 5 ... 6}: 7let 8 rofi-nm = pkgs.fetchurl { 9 url = "https://raw.githubusercontent.com/P3rf/rofi-network-manager/1daa69406c9b6539a4744eafb0d5bb8afdc80e9b/rofi-network-manager.sh"; 10 hash = "sha256:1nlnjmk5b743j5826z2nzfvjwk0fmbf7gk38darby93kdr3nv5zx"; 11 }; 12 package = pkgs.writeShellScriptBin "rofi-nm" '' 13 ${config.home.homeDirectory}/.config/rofi-nm/rofi-nm.sh 14 ''; 15in 16{ 17 options = { 18 programs.rofi-nm.package = lib.mkOption { 19 type = lib.types.package; 20 }; 21 }; 22 config = { 23 programs.rofi-nm.package = package; 24 25 home.packages = [ package ]; 26 27 xdg.configFile = { 28 "rofi-nm/rofi-nm.sh" = { 29 source = pkgs.runCommandLocal "rofi-nm" { } '' 30 cp --no-preserve=mode,ownership ${rofi-nm} rofi-nm.sh 31 substituteInPlace rofi-nm.sh \ 32 --replace "#!/bin/bash" "#!${pkgs.stdenv.shell}" \ 33 --replace "grep" "${pkgs.gnugrep}/bin/grep" 34 mv rofi-nm.sh $out 35 ''; 36 executable = true; 37 }; 38 "rofi-nm/rofi-network-manager.conf".text = '' 39 LOCATION=3 40 WIDTH_FIX_MAIN=10 41 WIDTH_FIX_STATUS=10 42 ''; 43 "rofi-nm/rofi-network-manager.rasi".text = '' 44 configuration { 45 show-icons: false; 46 sidebar-mode: false; 47 hover-select: true; 48 me-select-entry: ""; 49 me-accept-entry: [MousePrimary]; 50 } 51 52 * { 53 font: "${config.settings.font.regular.fullName}"; 54 } 55 56 @theme "catppuccin" 57 58 element-text, element-icon , mode-switcher { 59 background-color: inherit; 60 text-color: inherit; 61 } 62 63 window { 64 height: 40%; 65 width: 40%; 66 border: 3px; 67 border-color: @border-col; 68 background-color: @bg-col; 69 } 70 71 mainbox { 72 background-color: @bg-col; 73 } 74 75 inputbar { 76 children: [prompt,entry]; 77 background-color: @bg-col; 78 border-radius: 5px; 79 padding: 2px; 80 } 81 82 prompt { 83 background-color: @blue; 84 padding: 6px; 85 text-color: @bg-col; 86 border-radius: 3px; 87 margin: 20px 0px 0px 20px; 88 } 89 90 textbox-prompt-colon { 91 expand: false; 92 str: ":"; 93 } 94 95 entry { 96 placeholder: ""; 97 padding: 6px; 98 margin: 20px 0px 0px 10px; 99 text-color: @fg-col; 100 background-color: @bg-col; 101 } 102 103 listview { 104 border: 0px 0px 0px; 105 padding: 6px 0px 0px; 106 margin: 10px 0px 0px 20px; 107 columns: 1; 108 background-color: @bg-col; 109 } 110 111 element { 112 padding: 5px; 113 background-color: @bg-col; 114 text-color: @fg-col ; 115 } 116 117 element-icon { 118 size: 25px; 119 } 120 121 element selected { 122 background-color: @selected-col ; 123 text-color: @fg-col2 ; 124 } 125 126 mode-switcher { 127 spacing: 0; 128 } 129 130 button { 131 padding: 10px; 132 background-color: @bg-col-light; 133 text-color: @grey; 134 vertical-align: 0.5; 135 horizontal-align: 0.5; 136 } 137 138 button selected { 139 background-color: @bg-col; 140 text-color: @blue; 141 } 142 ''; 143 }; 144 }; 145}