mirror of
				https://github.com/brain-hackers/brain-config.git
				synced 2025-10-31 20:48:38 +09:00 
			
		
		
		
	Add non-interactive timezone, locale and keyboard configuration
This commit is contained in:
		
							
								
								
									
										52
									
								
								raspi-config
									
									
									
									
									
								
							
							
						
						
									
										52
									
								
								raspi-config
									
									
									
									
									
								
							| @@ -290,20 +290,47 @@ do_change_pass() { | |||||||
| } | } | ||||||
|  |  | ||||||
| do_configure_keyboard() { | do_configure_keyboard() { | ||||||
|   dpkg-reconfigure keyboard-configuration && |   printf "Reloading keymap. This may take a short while\n" | ||||||
|   printf "Reloading keymap. This may take a short while\n" && |   if [ "$INTERACTIVE" = True ]; then | ||||||
|   invoke-rc.d keyboard-setup start || return $? |     dpkg-reconfigure keyboard-configuration | ||||||
|  |   else | ||||||
|  |     local KEYMAP="$1" | ||||||
|  |     sed -i /etc/default/keyboard -e "s/^XKBLAYOUT.*/XKBLAYOUT=\"$KEYMAP\"/" | ||||||
|  |     dpkg-reconfigure -f noninteractive keyboard-configuration | ||||||
|  |   fi | ||||||
|  |   invoke-rc.d keyboard-setup start | ||||||
|   setsid sh -c 'exec setupcon -k --force <> /dev/tty1 >&0 2>&1' |   setsid sh -c 'exec setupcon -k --force <> /dev/tty1 >&0 2>&1' | ||||||
|   udevadm trigger --subsystem-match=input --action=change |   udevadm trigger --subsystem-match=input --action=change | ||||||
|   return 0 |   return 0 | ||||||
| } | } | ||||||
|  |  | ||||||
| do_change_locale() { | do_change_locale() { | ||||||
|   dpkg-reconfigure locales |   if [ "$INTERACTIVE" = True ]; then | ||||||
|  |     dpkg-reconfigure locales | ||||||
|  |   else | ||||||
|  |     local LOCALE="$1" | ||||||
|  |     if ! LOCALE_LINE="$(grep "^$LOCALE " /usr/share/i18n/SUPPORTED)"; then | ||||||
|  |       return 1 | ||||||
|  |     fi | ||||||
|  |     local ENCODING="$(echo $LOCALE_LINE | cut -f2 -d " ")" | ||||||
|  |     echo "$LOCALE $ENCODING" > /etc/locale.gen | ||||||
|  |     sed -i "s/^\s*LANG=\S*/LANG=$LOCALE/" /etc/default/locale | ||||||
|  |     dpkg-reconfigure -f noninteractive locales | ||||||
|  |   fi | ||||||
| } | } | ||||||
|  |  | ||||||
| do_change_timezone() { | do_change_timezone() { | ||||||
|   dpkg-reconfigure tzdata |   if [ "$INTERACTIVE" = True ]; then | ||||||
|  |     dpkg-reconfigure tzdata | ||||||
|  |   else | ||||||
|  |     local TIMEZONE="$1" | ||||||
|  |     if [ ! -f "/usr/share/zoneinfo/$TIMEZONE" ]; then | ||||||
|  |       return 1; | ||||||
|  |     fi | ||||||
|  |     rm /etc/localtime | ||||||
|  |     echo "$TIMEZONE" > /etc/timezone | ||||||
|  |     dpkg-reconfigure -f noninteractive tzdata | ||||||
|  |   fi | ||||||
| } | } | ||||||
|  |  | ||||||
| get_wifi_country() { | get_wifi_country() { | ||||||
| @@ -1469,23 +1496,12 @@ do_apply_os_config() { | |||||||
|  |  | ||||||
|   if [ -n "$DEBLANGUAGE" ]; then |   if [ -n "$DEBLANGUAGE" ]; then | ||||||
|     printf "Setting language to %s based on os_config.json from NOOBS. May take a while\n" "$DEBLANGUAGE" |     printf "Setting language to %s based on os_config.json from NOOBS. May take a while\n" "$DEBLANGUAGE" | ||||||
|     cat << EOF | debconf-set-selections |     do_change_locale "$DEBLANGUAGE" | ||||||
| locales   locales/locales_to_be_generated multiselect     $DEBLANGUAGE UTF-8 |  | ||||||
| EOF |  | ||||||
|     rm /etc/locale.gen |  | ||||||
|     dpkg-reconfigure -f noninteractive locales |  | ||||||
|     update-locale LANG="$DEBLANGUAGE" |  | ||||||
|     cat << EOF | debconf-set-selections |  | ||||||
| locales   locales/default_environment_locale select       $DEBLANGUAGE |  | ||||||
| EOF |  | ||||||
|   fi |   fi | ||||||
|  |  | ||||||
|   if [ -n "$NOOBSKEYBOARD" -a "$NOOBSKEYBOARD" != "gb" ]; then |   if [ -n "$NOOBSKEYBOARD" -a "$NOOBSKEYBOARD" != "gb" ]; then | ||||||
|     printf "Setting keyboard layout to %s based on os_config.json from NOOBS. May take a while\n" "$NOOBSKEYBOARD" |     printf "Setting keyboard layout to %s based on os_config.json from NOOBS. May take a while\n" "$NOOBSKEYBOARD" | ||||||
|     sed -i /etc/default/keyboard -e "s/^XKBLAYOUT.*/XKBLAYOUT=\"$NOOBSKEYBOARD\"/" |     do_configure_keyboard "$NOOBSKEYBOARD" | ||||||
|     dpkg-reconfigure -f noninteractive keyboard-configuration |  | ||||||
|     setupcon -k --force |  | ||||||
|     udevadm trigger -p ID_INPUT_KEY=1 |  | ||||||
|   fi |   fi | ||||||
|   return 0 |   return 0 | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Serge Schneider
					Serge Schneider