Language lost after reboot (German locale)

Hello!

After I just rebooted my Manjaro system wouldn’t allow sudo anymore (as seen in another thread in the forum) Thanks to aarhus this has already been solved!)
But coincidentally another problem happened:
Big parts of my XFCE desktop are now in english only (should be German).

I checked some things:

locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Kann >>LC_ALL<< nicht auf die Standard-Lokale einstellen: Datei oder Verzeichnis nicht gefunden
LANG=de.DE.UTF-8
LC_CTYPE="de.DE.UTF-8"
LC_NUMERIC="de.DE.UTF-8"
LC_TIME="de.DE.UTF-8"
LC_COLLATE="de.DE.UTF-8"
LC_MONETARY="de.DE.UTF-8"
LC_MESSAGES=de_DE.utf8
LC_PAPER="de.DE.UTF-8"
LC_NAME="de.DE.UTF-8"
LC_ADDRESS="de.DE.UTF-8"
LC_TELEPHONE="de.DE.UTF-8"
LC_MEASUREMENT="de.DE.UTF-8"
LC_IDENTIFICATION="de.DE.UTF-8"
LC_ALL=

localectl list-locales
de_DE.UTF-8


locale -a
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Kann >>LC_COLLATE<< nicht auf die Standard-Lokale einstellen: Datei oder Verzeichnis nicht gefunden
C
POSIX
de_DE.utf8

localectl
System Locale: LANG=de.DE.UTF-8
LC_MESSAGES=de_DE.utf8
VC Keymap: de-latin1-nodeadkeys
X11 Layout: de
X11 Model: pc105
X11 Variant: nodeadkeys

I checked Manjaro-Settings and everything seems right there.
I tried to rebuild the locales using “sudo locale-gen” and rebooted, but it didn’t change.

cat /etc/locale.conf 
LANG=de.DE.UTF-8
LC_MESSAGES=de_DE.utf8

cat /etc/locale.conf
LANG=de.DE.UTF-8
LC_MESSAGES=de_DE.utf8

cat /etc/locale.gen
# Configuration file for locale-gen
#
# lists of locales that are to be generated by the locale-gen command.
#
# Each line is of the form:
#
#     <locale> <charset>
#
#  where <locale> is one of the locales given in /usr/share/i18n/locales
#  and <charset> is one of the character sets listed in /usr/share/i18n/charmaps
#
#  Examples:
#  en_US ISO-8859-1
#  en_US.UTF-8 UTF-8
#  de_DE ISO-8859-1
#  de_DE@euro ISO-8859-15
#
#  The locale-gen command will generate all the locales,
#  placing them in /usr/lib/locale.
#
#  A list of supported locales is included in this file.
#  Uncomment the ones you need.
#
#aa_DJ.UTF-8 UTF-8  
#aa_DJ ISO-8859-1  
#aa_ER UTF-8  
#aa_ER@saaho UTF-8  
#aa_ET UTF-8  
#af_ZA.UTF-8 UTF-8  
#af_ZA ISO-8859-1  
#agr_PE UTF-8  
#ak_GH UTF-8  
#am_ET UTF-8  
#an_ES.UTF-8 UTF-8  
#an_ES ISO-8859-15  
#anp_IN UTF-8  
#ar_AE.UTF-8 UTF-8  
#ar_AE ISO-8859-6  
#ar_BH.UTF-8 UTF-8  
#ar_BH ISO-8859-6  
#ar_DZ.UTF-8 UTF-8  
#ar_DZ ISO-8859-6  
#ar_EG.UTF-8 UTF-8  
#ar_EG ISO-8859-6  
#ar_IN UTF-8  
#ar_IQ.UTF-8 UTF-8  
#ar_IQ ISO-8859-6  
#ar_JO.UTF-8 UTF-8  
#ar_JO ISO-8859-6  
#ar_KW.UTF-8 UTF-8  
#ar_KW ISO-8859-6  
#ar_LB.UTF-8 UTF-8  
#ar_LB ISO-8859-6  
#ar_LY.UTF-8 UTF-8  
#ar_LY ISO-8859-6  
#ar_MA.UTF-8 UTF-8  
#ar_MA ISO-8859-6  
#ar_OM.UTF-8 UTF-8  
#ar_OM ISO-8859-6  
#ar_QA.UTF-8 UTF-8  
#ar_QA ISO-8859-6  
#ar_SA.UTF-8 UTF-8  
#ar_SA ISO-8859-6  
#ar_SD.UTF-8 UTF-8  
#ar_SD ISO-8859-6  
#ar_SS UTF-8  
#ar_SY.UTF-8 UTF-8  
#ar_SY ISO-8859-6  
#ar_TN.UTF-8 UTF-8  
#ar_TN ISO-8859-6  
#ar_YE.UTF-8 UTF-8  
#ar_YE ISO-8859-6  
#ayc_PE UTF-8  
#az_AZ UTF-8  
#az_IR UTF-8  
#as_IN UTF-8  
#ast_ES.UTF-8 UTF-8  
#ast_ES ISO-8859-15  
#be_BY.UTF-8 UTF-8  
#be_BY CP1251  
#be_BY@latin UTF-8  
#bem_ZM UTF-8  
#ber_DZ UTF-8  
#ber_MA UTF-8  
#bg_BG.UTF-8 UTF-8  
#bg_BG CP1251  
#bhb_IN.UTF-8 UTF-8  
#bho_IN UTF-8  
#bho_NP UTF-8  
#bi_VU UTF-8  
#bn_BD UTF-8  
#bn_IN UTF-8  
#bo_CN UTF-8  
#bo_IN UTF-8  
#br_FR.UTF-8 UTF-8  
#br_FR ISO-8859-1  
#br_FR@euro ISO-8859-15  
#brx_IN UTF-8  
#bs_BA.UTF-8 UTF-8  
#bs_BA ISO-8859-2  
#byn_ER UTF-8  
#ca_AD.UTF-8 UTF-8  
#ca_AD ISO-8859-15  
#ca_ES.UTF-8 UTF-8  
#ca_ES ISO-8859-1  
#ca_ES@euro ISO-8859-15  
#ca_ES@valencia UTF-8  
#ca_FR.UTF-8 UTF-8  
#ca_FR ISO-8859-15  
#ca_IT.UTF-8 UTF-8  
#ca_IT ISO-8859-15  
#ce_RU UTF-8  
#chr_US UTF-8  
#cmn_TW UTF-8  
#crh_UA UTF-8  
#cs_CZ.UTF-8 UTF-8  
#cs_CZ ISO-8859-2  
#csb_PL UTF-8  
#cv_RU UTF-8  
#cy_GB.UTF-8 UTF-8  
#cy_GB ISO-8859-14  
#da_DK.UTF-8 UTF-8  
#da_DK ISO-8859-1  
#de_AT.UTF-8 UTF-8  
#de_AT ISO-8859-1  
#de_AT@euro ISO-8859-15  
#de_BE.UTF-8 UTF-8  
#de_BE ISO-8859-1  
#de_BE@euro ISO-8859-15  
#de_CH.UTF-8 UTF-8  
#de_CH ISO-8859-1  
de_DE.UTF-8 UTF-8
#de_DE ISO-8859-1  
#de_DE@euro ISO-8859-15  
#de_IT.UTF-8 UTF-8  
#de_IT ISO-8859-1  
#de_LI.UTF-8 UTF-8  
#de_LU.UTF-8 UTF-8  
#de_LU ISO-8859-1  
#de_LU@euro ISO-8859-15  
#doi_IN UTF-8  
#dsb_DE UTF-8  
#dv_MV UTF-8  
#dz_BT UTF-8  
#el_GR.UTF-8 UTF-8  
#el_GR ISO-8859-7  
#el_GR@euro ISO-8859-7  
#el_CY.UTF-8 UTF-8  
#el_CY ISO-8859-7  
#en_AG UTF-8  
#en_AU.UTF-8 UTF-8  
#en_AU ISO-8859-1  
#en_BW.UTF-8 UTF-8  
#en_BW ISO-8859-1  
#en_CA.UTF-8 UTF-8  
#en_CA ISO-8859-1  
#en_DK.UTF-8 UTF-8  
#en_DK ISO-8859-1  
#en_GB.UTF-8 UTF-8  
#en_GB ISO-8859-1  
#en_HK.UTF-8 UTF-8  
#en_HK ISO-8859-1  
#en_IE.UTF-8 UTF-8  
#en_IE ISO-8859-1  
#en_IE@euro ISO-8859-15  
#en_IL UTF-8  
#en_IN UTF-8  
#en_NG UTF-8  
#en_NZ.UTF-8 UTF-8  
#en_NZ ISO-8859-1  
#en_PH.UTF-8 UTF-8  
#en_PH ISO-8859-1  
#en_SC.UTF-8 UTF-8  
#en_SG.UTF-8 UTF-8  
#en_SG ISO-8859-1  
#en_US.UTF-8 UTF-8  
#en_US ISO-8859-1  
#en_ZA.UTF-8 UTF-8  
#en_ZA ISO-8859-1  
#en_ZM UTF-8  
#en_ZW.UTF-8 UTF-8  
#en_ZW ISO-8859-1  
#eo UTF-8  
#es_AR.UTF-8 UTF-8  
#es_AR ISO-8859-1  
#es_BO.UTF-8 UTF-8  
#es_BO ISO-8859-1  
#es_CL.UTF-8 UTF-8  
#es_CL ISO-8859-1  
#es_CO.UTF-8 UTF-8  
#es_CO ISO-8859-1  
#es_CR.UTF-8 UTF-8  
#es_CR ISO-8859-1  
#es_CU UTF-8  
#es_DO.UTF-8 UTF-8  
#es_DO ISO-8859-1  
#es_EC.UTF-8 UTF-8  
#es_EC ISO-8859-1  
#es_ES.UTF-8 UTF-8  
#es_ES ISO-8859-1  
#es_ES@euro ISO-8859-15  
#es_GT.UTF-8 UTF-8  
#es_GT ISO-8859-1  
#es_HN.UTF-8 UTF-8  
#es_HN ISO-8859-1  
#es_MX.UTF-8 UTF-8  
#es_MX ISO-8859-1  
#es_NI.UTF-8 UTF-8  
#es_NI ISO-8859-1  
#es_PA.UTF-8 UTF-8  
#es_PA ISO-8859-1  
#es_PE.UTF-8 UTF-8  
#es_PE ISO-8859-1  
#es_PR.UTF-8 UTF-8  
#es_PR ISO-8859-1  
#es_PY.UTF-8 UTF-8  
#es_PY ISO-8859-1  
#es_SV.UTF-8 UTF-8  
#es_SV ISO-8859-1  
#es_US.UTF-8 UTF-8  
#es_US ISO-8859-1  
#es_UY.UTF-8 UTF-8  
#es_UY ISO-8859-1  
#es_VE.UTF-8 UTF-8  
#es_VE ISO-8859-1  
#et_EE.UTF-8 UTF-8  
#et_EE ISO-8859-1  
#et_EE.ISO-8859-15 ISO-8859-15  
#eu_ES.UTF-8 UTF-8  
#eu_ES ISO-8859-1  
#eu_ES@euro ISO-8859-15  
#fa_IR UTF-8  
#ff_SN UTF-8  
#fi_FI.UTF-8 UTF-8  
#fi_FI ISO-8859-1  
#fi_FI@euro ISO-8859-15  
#fil_PH UTF-8  
#fo_FO.UTF-8 UTF-8  
#fo_FO ISO-8859-1  
#fr_BE.UTF-8 UTF-8  
#fr_BE ISO-8859-1  
#fr_BE@euro ISO-8859-15  
#fr_CA.UTF-8 UTF-8  
#fr_CA ISO-8859-1  
#fr_CH.UTF-8 UTF-8  
#fr_CH ISO-8859-1  
#fr_FR.UTF-8 UTF-8  
#fr_FR ISO-8859-1  
#fr_FR@euro ISO-8859-15  
#fr_LU.UTF-8 UTF-8  
#fr_LU ISO-8859-1  
#fr_LU@euro ISO-8859-15  
#fur_IT UTF-8  
#fy_NL UTF-8  
#fy_DE UTF-8  
#ga_IE.UTF-8 UTF-8  
#ga_IE ISO-8859-1  
#ga_IE@euro ISO-8859-15  
#gd_GB.UTF-8 UTF-8  
#gd_GB ISO-8859-15  
#gez_ER UTF-8  
#gez_ER@abegede UTF-8  
#gez_ET UTF-8  
#gez_ET@abegede UTF-8  
#gl_ES.UTF-8 UTF-8  
#gl_ES ISO-8859-1  
#gl_ES@euro ISO-8859-15  
#gu_IN UTF-8  
#gv_GB.UTF-8 UTF-8  
#gv_GB ISO-8859-1  
#ha_NG UTF-8  
#hak_TW UTF-8  
#he_IL.UTF-8 UTF-8  
#he_IL ISO-8859-8  
#hi_IN UTF-8  
#hif_FJ UTF-8  
#hne_IN UTF-8  
#hr_HR.UTF-8 UTF-8  
#hr_HR ISO-8859-2  
#hsb_DE ISO-8859-2  
#hsb_DE.UTF-8 UTF-8  
#ht_HT UTF-8  
#hu_HU.UTF-8 UTF-8  
#hu_HU ISO-8859-2  
#hy_AM UTF-8  
#hy_AM.ARMSCII-8 ARMSCII-8  
#ia_FR UTF-8  
#id_ID.UTF-8 UTF-8  
#id_ID ISO-8859-1  
#ig_NG UTF-8  
#ik_CA UTF-8  
#is_IS.UTF-8 UTF-8  
#is_IS ISO-8859-1  
#it_CH.UTF-8 UTF-8  
#it_CH ISO-8859-1  
#it_IT.UTF-8 UTF-8  
#it_IT ISO-8859-1  
#it_IT@euro ISO-8859-15  
#iu_CA UTF-8  
#ja_JP.EUC-JP EUC-JP  
#ja_JP.UTF-8 UTF-8  
#ka_GE.UTF-8 UTF-8  
#ka_GE GEORGIAN-PS  
#kab_DZ UTF-8  
#kk_KZ.UTF-8 UTF-8  
#kk_KZ PT154  
#kl_GL.UTF-8 UTF-8  
#kl_GL ISO-8859-1  
#km_KH UTF-8  
#kn_IN UTF-8  
#ko_KR.EUC-KR EUC-KR  
#ko_KR.UTF-8 UTF-8  
#kok_IN UTF-8  
#ks_IN UTF-8  
#ks_IN@devanagari UTF-8  
#ku_TR.UTF-8 UTF-8  
#ku_TR ISO-8859-9  
#kw_GB.UTF-8 UTF-8  
#kw_GB ISO-8859-1  
#ky_KG UTF-8  
#lb_LU UTF-8  
#lg_UG.UTF-8 UTF-8  
#lg_UG ISO-8859-10  
#li_BE UTF-8  
#li_NL UTF-8  
#lij_IT UTF-8  
#ln_CD UTF-8  
#lo_LA UTF-8  
#lt_LT.UTF-8 UTF-8  
#lt_LT ISO-8859-13  
#lv_LV.UTF-8 UTF-8  
#lv_LV ISO-8859-13  
#lzh_TW UTF-8  
#mag_IN UTF-8  
#mai_IN UTF-8  
#mai_NP UTF-8  
#mfe_MU UTF-8  
#mg_MG.UTF-8 UTF-8  
#mg_MG ISO-8859-15  
#mhr_RU UTF-8  
#mi_NZ.UTF-8 UTF-8  
#mi_NZ ISO-8859-13  
#miq_NI UTF-8  
#mjw_IN UTF-8  
#mk_MK.UTF-8 UTF-8  
#mk_MK ISO-8859-5  
#ml_IN UTF-8  
#mn_MN UTF-8  
#mni_IN UTF-8  
#mnw_MM UTF-8  
#mr_IN UTF-8  
#ms_MY.UTF-8 UTF-8  
#ms_MY ISO-8859-1  
#mt_MT.UTF-8 UTF-8  
#mt_MT ISO-8859-3  
#my_MM UTF-8  
#nan_TW UTF-8  
#nan_TW@latin UTF-8  
#nb_NO.UTF-8 UTF-8  
#nb_NO ISO-8859-1  
#nds_DE UTF-8  
#nds_NL UTF-8  
#ne_NP UTF-8  
#nhn_MX UTF-8  
#niu_NU UTF-8  
#niu_NZ UTF-8  
#nl_AW UTF-8  
#nl_BE.UTF-8 UTF-8  
#nl_BE ISO-8859-1  
#nl_BE@euro ISO-8859-15  
#nl_NL.UTF-8 UTF-8  
#nl_NL ISO-8859-1  
#nl_NL@euro ISO-8859-15  
#nn_NO.UTF-8 UTF-8  
#nn_NO ISO-8859-1  
#nr_ZA UTF-8  
#nso_ZA UTF-8  
#oc_FR.UTF-8 UTF-8  
#oc_FR ISO-8859-1  
#om_ET UTF-8  
#om_KE.UTF-8 UTF-8  
#om_KE ISO-8859-1  
#or_IN UTF-8  
#os_RU UTF-8  
#pa_IN UTF-8  
#pa_PK UTF-8  
#pap_AW UTF-8  
#pap_CW UTF-8  
#pl_PL.UTF-8 UTF-8  
#pl_PL ISO-8859-2  
#ps_AF UTF-8  
#pt_BR.UTF-8 UTF-8  
#pt_BR ISO-8859-1  
#pt_PT.UTF-8 UTF-8  
#pt_PT ISO-8859-1  
#pt_PT@euro ISO-8859-15  
#quz_PE UTF-8  
#raj_IN UTF-8  
#ro_RO.UTF-8 UTF-8  
#ro_RO ISO-8859-2  
#ru_RU.KOI8-R KOI8-R  
#ru_RU.UTF-8 UTF-8  
#ru_RU ISO-8859-5  
#ru_UA.UTF-8 UTF-8  
#ru_UA KOI8-U  
#rw_RW UTF-8  
#sa_IN UTF-8  
#sah_RU UTF-8  
#sat_IN UTF-8  
#sc_IT UTF-8  
#sd_IN UTF-8  
#sd_IN@devanagari UTF-8  
#se_NO UTF-8  
#sgs_LT UTF-8  
#shn_MM UTF-8  
#shs_CA UTF-8  
#si_LK UTF-8  
#sid_ET UTF-8  
#sk_SK.UTF-8 UTF-8  
#sk_SK ISO-8859-2  
#sl_SI.UTF-8 UTF-8  
#sl_SI ISO-8859-2  
#sm_WS UTF-8  
#so_DJ.UTF-8 UTF-8  
#so_DJ ISO-8859-1  
#so_ET UTF-8  
#so_KE.UTF-8 UTF-8  
#so_KE ISO-8859-1  
#so_SO.UTF-8 UTF-8  
#so_SO ISO-8859-1  
#sq_AL.UTF-8 UTF-8  
#sq_AL ISO-8859-1  
#sq_MK UTF-8  
#sr_ME UTF-8  
#sr_RS UTF-8  
#sr_RS@latin UTF-8  
#ss_ZA UTF-8  
#st_ZA.UTF-8 UTF-8  
#st_ZA ISO-8859-1  
#sv_FI.UTF-8 UTF-8  
#sv_FI ISO-8859-1  
#sv_FI@euro ISO-8859-15  
#sv_SE.UTF-8 UTF-8  
#sv_SE ISO-8859-1  
#sw_KE UTF-8  
#sw_TZ UTF-8  
#szl_PL UTF-8  
#ta_IN UTF-8  
#ta_LK UTF-8  
#tcy_IN.UTF-8 UTF-8  
#te_IN UTF-8  
#tg_TJ.UTF-8 UTF-8  
#tg_TJ KOI8-T  
#th_TH.UTF-8 UTF-8  
#th_TH TIS-620  
#the_NP UTF-8  
#ti_ER UTF-8  
#ti_ET UTF-8  
#tig_ER UTF-8  
#tk_TM UTF-8  
#tl_PH.UTF-8 UTF-8  
#tl_PH ISO-8859-1  
#tn_ZA UTF-8  
#to_TO UTF-8  
#tpi_PG UTF-8  
#tr_CY.UTF-8 UTF-8  
#tr_CY ISO-8859-9  
#tr_TR.UTF-8 UTF-8  
#tr_TR ISO-8859-9  
#ts_ZA UTF-8  
#tt_RU UTF-8  
#tt_RU@iqtelif UTF-8  
#ug_CN UTF-8  
#uk_UA.UTF-8 UTF-8  
#uk_UA KOI8-U  
#unm_US UTF-8  
#ur_IN UTF-8  
#ur_PK UTF-8  
#uz_UZ.UTF-8 UTF-8  
#uz_UZ ISO-8859-1  
#uz_UZ@cyrillic UTF-8  
#ve_ZA UTF-8  
#vi_VN UTF-8  
#wa_BE ISO-8859-1  
#wa_BE@euro ISO-8859-15  
#wa_BE.UTF-8 UTF-8  
#wae_CH UTF-8  
#wal_ET UTF-8  
#wo_SN UTF-8  
#xh_ZA.UTF-8 UTF-8  
#xh_ZA ISO-8859-1  
#yi_US.UTF-8 UTF-8  
#yi_US CP1255  
#yo_NG UTF-8  
#yue_HK UTF-8  
#yuw_PG UTF-8  
#zh_CN.GB18030 GB18030  
#zh_CN.GBK GBK  
#zh_CN.UTF-8 UTF-8  
#zh_CN GB2312  
#zh_HK.UTF-8 UTF-8  
#zh_HK BIG5-HKSCS  
#zh_SG.UTF-8 UTF-8  
#zh_SG.GBK GBK  
#zh_SG GB2312  
#zh_TW.EUC-TW EUC-TW  
#zh_TW.UTF-8 UTF-8  
#zh_TW BIG5  
#zu_ZA.UTF-8 UTF-8  
#zu_ZA ISO-8859-1  

###
#
# Locales enabled by Calamares
#en_US.UTF-8 UTF-8
#de_DE.UTF-8 UTF-8

Here’s the system information:

inxi -Fazy      
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LC_MESSAGES = "de_DE.utf8",
	LANG = "de.DE.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
System:
  Kernel: 5.8.6-1-MANJARO x86_64 bits: 64 compiler: N/A 
  parameters: BOOT_IMAGE=/vmlinuz-5.8-x86_64 
  root=UUID=b992e7b6-adfa-4b33-ae04-cdf2b9431da2 rw quiet apparmor=1 
  security=apparmor udev.log_priority=3 intel_iommu=pt 
  resume=UUID=99a1bc9c-4814-40ae-a653-b1c97e1b8bbd usbcore.autosuspend=-1 
  Desktop: Xfce 4.14.2 tk: Gtk 3.24.20 info: xfce4-panel wm: xfwm4 
  dm: LightDM 1.30.0 Distro: Manjaro Linux 
Machine:
  Type: Laptop System: Hewlett-Packard product: HP EliteBook 8770w 
  v: A1029D1102 serial: <filter> Chassis: type: 10 serial: <filter> 
  Mobo: Hewlett-Packard model: 176C v: KBC Version 50.1F serial: <filter> 
  BIOS: Hewlett-Packard v: 68IAV Ver. F.71 date: 04/19/2019 
Battery:
  ID-1: BAT0 charge: 44.9 Wh condition: 46.2/46.2 Wh (100%) volts: 16.4/14.4 
  model: Hewlett-Packard Primary type: Li-ion serial: <filter> status: Unknown 
CPU:
  Topology: Quad Core model: Intel Core i7-3720QM bits: 64 type: MT MCP 
  arch: Ivy Bridge family: 6 model-id: 3A (58) stepping: 9 microcode: 21 
  L2 cache: 6144 KiB 
  flags: avx lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 41519 
  Speed: 1197 MHz min/max: 1200/3600 MHz Core speeds (MHz): 1: 1197 2: 1197 
  3: 1197 4: 1200 5: 1197 6: 1197 7: 1197 8: 1199 
  Vulnerabilities: Type: itlb_multihit status: KVM: VMX disabled 
  Type: l1tf 
  mitigation: PTE Inversion; VMX: conditional cache flushes, SMT vulnerable 
  Type: mds mitigation: Clear CPU buffers; SMT vulnerable 
  Type: meltdown mitigation: PTI 
  Type: spec_store_bypass 
  mitigation: Speculative Store Bypass disabled via prctl and seccomp 
  Type: spectre_v1 
  mitigation: usercopy/swapgs barriers and __user pointer sanitization 
  Type: spectre_v2 mitigation: Full generic retpoline, IBPB: conditional, 
  IBRS_FW, STIBP: conditional, RSB filling 
  Type: srbds status: Vulnerable: No microcode 
  Type: tsx_async_abort status: Not affected 
Graphics:
  Device-1: NVIDIA GM107GLM [Quadro M2000M] vendor: Hewlett-Packard 
  driver: nvidia v: 440.100 alternate: nouveau,nvidia_drm bus ID: 01:00.0 
  chip ID: 10de:13b0 
  Display: x11 server: X.Org 1.20.8 driver: nvidia display ID: :0.0 screens: 1 
  Screen-1: 0 s-res: 3840x1271 s-dpi: 96 s-size: 1016x336mm (40.0x13.2") 
  s-diag: 1070mm (42.1") 
  Monitor-1: LVDS-0 res: 1920x1080 hz: 60 dpi: 127 size: 383x215mm (15.1x8.5") 
  diag: 439mm (17.3") 
  Monitor-2: DP-2 res: 1920x1080 hz: 60 dpi: 87 size: 560x320mm (22.0x12.6") 
  diag: 645mm (25.4") 
  OpenGL: renderer: Quadro M2000M/PCIe/SSE2 v: 4.6.0 NVIDIA 440.100 
  direct render: Yes 
Audio:
  Device-1: Intel 7 Series/C216 Family High Definition Audio 
  vendor: Hewlett-Packard driver: snd_hda_intel v: kernel bus ID: 00:1b.0 
  chip ID: 8086:1e20 
  Device-2: C-Media CM106 Like Sound Device type: USB 
  driver: hid-generic,snd-usb-audio,usbhid bus ID: 2-1.1.2:5 
  chip ID: 0d8c:0102 
  Sound Server: ALSA v: k5.8.6-1-MANJARO 
Network:
  Device-1: Intel 82579LM Gigabit Network vendor: Hewlett-Packard 
  driver: e1000e v: 3.2.6-k port: 3040 bus ID: 00:19.0 chip ID: 8086:1502 
  IF: enp0s25 state: up speed: 1000 Mbps duplex: full mac: <filter> 
  Device-2: Intel Wireless 7260 driver: iwlwifi v: kernel port: 2000 
  bus ID: 04:00.0 chip ID: 8086:08b1 
  IF: wlo1 state: up mac: <filter> 
  IF-ID-1: macvlan0 state: up speed: N/A duplex: N/A mac: <filter> 
Drives:
  Local Storage: total: 961.33 GiB used: 290.26 GiB (30.2%) 
  SMART Message: Required tool smartctl not installed. Check --recommends 
  ID-1: /dev/sda vendor: Samsung model: SSD 850 EVO 1TB size: 931.51 GiB 
  block size: physical: 512 B logical: 512 B speed: 6.0 Gb/s serial: <filter> 
  rev: 3B6Q scheme: MBR 
  ID-2: /dev/sdb vendor: Transcend model: TS32GSSD25S-M size: 29.82 GiB 
  block size: physical: 512 B logical: 512 B speed: 3.0 Gb/s serial: <filter> 
  rev: 08E scheme: MBR 
Partition:
  ID-1: / raw size: 59.06 GiB size: 57.88 GiB (98.01%) used: 31.24 GiB (54.0%) 
  fs: ext4 dev: /dev/sda5 
  ID-2: /boot raw size: 1024.0 MiB size: 975.9 MiB (95.30%) 
  used: 103.4 MiB (10.6%) fs: ext4 dev: /dev/sda1 
  ID-3: /home raw size: 341.80 GiB size: 335.43 GiB (98.14%) 
  used: 258.92 GiB (77.2%) fs: ext4 dev: /dev/sda6 
Swap:
  Kernel: swappiness: 60 (default) cache pressure: 100 (default) 
  ID-1: swap-1 type: partition size: 32.00 GiB used: 0 KiB (0.0%) priority: -2 
  dev: /dev/sda7 
Sensors:
  System Temperatures: cpu: 56.0 C mobo: N/A gpu: nvidia temp: 52 C 
  Fan Speeds (RPM): N/A 
Info:
  Processes: 259 Uptime: 8m Memory: 19.49 GiB used: 2.19 GiB (11.3%) 
  Init: systemd v: 246 Compilers: gcc: 10.2.0 clang: 10.0.1 Packages: 1511 
  pacman: 1505 lib: 397 rpm: 0 flatpak: 0 snap: 6 Shell: Bash v: 5.0.18 
  running in: xfce4-terminal inxi: 3.1.05

I have just noticed, that LC_ALL isn’t empty as it might seem from the commands above.
It actually is filled with a huge bunch of garbage.

While examing this, I found that there is a big problem with environment variables (at the end):
set

BASH=/usr/bin/bash
BASHOPTS=checkwinsize:cmdhist:complete_fullquote:expand_aliases:extglob:extquote:force_fignore:globasciiranges:histappend:interactive_comments:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=([0]="0")
BASH_ARGV=()
BASH_CMDS=()
BASH_COMPLETION_VERSINFO=([0]="2" [1]="11")
BASH_LINENO=()
BASH_REMATCH=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="5" [1]="0" [2]="18" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu")
BASH_VERSION='5.0.18(1)-release'
COLORTERM=truecolor
COLUMNS=132
COMP_WORDBREAKS=$' \t\n"\'><=;|&(:'
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
DESKTOP_SESSION=xfce
DIRSTACK=()
DISPLAY=:0.0
EDITOR=/usr/bin/nano
EUID=1000
GDMSESSION=xfce
GROUPS=()
GTK2_RC_FILES=/home/ladmin/.gtkrc-2.0
GTK_MODULES=canberra-gtk-module:canberra-gtk-module
HISTFILE=/home/ladmin/.bash_history
HISTFILESIZE=500
HISTSIZE=500
HOME=/home/ladmin
HOSTNAME=elite.bnetza.lan
HOSTTYPE=x86_64
IFS=$' \t\n'
LANG=de.DE.UTF-8
LC_MESSAGES=de_DE.utf8
LINES=63
LOGNAME=ladmin
LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.pdf=00;32:*.ps=00;32:*.txt=00;32:*.patch=00;32:*.diff=00;32:*.log=00;32:*.tex=00;32:*.doc=00;32:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:'
MACHTYPE=x86_64-pc-linux-gnu
MAIL=/var/spool/mail/ladmin
MAILCHECK=60
MOTD_SHOWN=pam
MOZ_PLUGIN_PATH=/usr/lib/mozilla/plugins
OPTERR=1
OPTIND=1
OSTYPE=linux-gnu
PANEL_GDK_CORE_DEVICE_EVENTS=0
PATH=/home/ladmin/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/var/lib/snapd/snap/bin
PIPESTATUS=([0]="0")
PPID=2355
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/\~}\007"'
PS1='C:`msdos_pwd`> '
PS2='> '
PS4='+ '
PWD=/home/ladmin
QT_AUTO_SCREEN_SCALE_FACTOR=0
QT_QPA_PLATFORMTHEME=qt5ct
SESSION_MANAGER=local/elite.bnetza.lan:@/tmp/.ICE-unix/1156,unix/elite.bnetza.lan:/tmp/.ICE-unix/1156
SHELL=/bin/bash
SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor
SHLVL=1
SSH_AGENT_PID=1217
SSH_AUTH_SOCK=/tmp/ssh-gW8tsBg7iJUE/agent.1216
TERM=xterm-256color
UID=1000
USER=ladmin
VTE_VERSION=6003
WINDOWID=109051911
XAUTHORITY=/home/ladmin/.Xauthority
XDG_CONFIG_DIRS=/etc/xdg
XDG_CURRENT_DESKTOP=XFCE
XDG_DATA_DIRS=/home/ladmin/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share:/var/lib/snapd/desktop:/usr/share
XDG_GREETER_DATA_DIR=/var/lib/lightdm-data/ladmin
XDG_MENU_PREFIX=xfce-
XDG_RUNTIME_DIR=/run/user/1000
XDG_SEAT=seat0
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
XDG_SESSION_CLASS=user
XDG_SESSION_DESKTOP=xfce
XDG_SESSION_ID=1
XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0
XDG_SESSION_TYPE=x11
XDG_VTNR=7
_=set
_backup_glob='@(#*#|*@(~|.@(bak|orig|rej|swp|dpkg*|rpm@(orig|new|save))))'
_xspecs=([lokalize]="!*.po" [acroread]="!*.[pf]df" [lbzcat]="!*.?(t)bz?(2)" [mpg321]="!*.mp3" [bzcat]="!*.?(t)bz?(2)" [oocalc]="!*.@(sxc|stc|xls?([bmx])|xlw|xlt?([mx])|[ct]sv|?(f)ods|ots)" [tex]="!*.@(?(la)tex|texi|dtx|ins|ltx|dbj)" [unlzma]="!*.@(tlz|lzma)" [sxemacs]="*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)" [aviplay]="!*.@(avi|asf|wmv)" [lbunzip2]="!*.?(t)bz?(2)" [dragon]="!*@(.@(mp?(e)g|MP?(E)G|wm[av]|WM[AV]|avi|AVI|asf|vob|VOB|bin|dat|divx|DIVX|vcd|ps|pes|fli|flv|FLV|fxm|FXM|viv|rm|ram|yuv|mov|MOV|qt|QT|web[am]|WEB[AM]|mp[234]|MP[234]|m?(p)4[av]|M?(P)4[AV]|mkv|MKV|og[agmv]|OG[AGMV]|t[ps]|T[PS]|m2t?(s)|M2T?(S)|mts|MTS|wav|WAV|flac|FLAC|asx|ASX|mng|MNG|srt|m[eo]d|M[EO]D|s[3t]m|S[3T]M|it|IT|xm|XM|iso|ISO)|+([0-9]).@(vdr|VDR))?(.@(crdownload|part))" [freeamp]="!*.@(mp3|ogg|pls|m3u)" [rgvim]="*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)" [ooimpress]="!*.@(sxi|sti|pps?(x)|ppt?([mx])|pot?([mx])|?(f)odp|otp)" [gqmpeg]="!*.@(mp3|ogg|pls|m3u)" [texi2html]="!*.texi*" [hbpp]="!*.@([Pp][Rr][Gg]|[Cc][Ll][Pp])" [lowriter]="!*.@(sxw|stw|sxg|sgl|doc?([mx])|dot?([mx])|rtf|txt|htm|html|?(f)odt|ott|odm|pdf)" [qiv]="!*.@(gif|jp?(e)g|tif?(f)|png|p[bgp]m|bmp|x[bp]m|rle|rgb|pcx|fits|pm|svg)" [xanim]="!*.@(mpg|mpeg|avi|mov|qt)" [totem]="!*@(.@(mp?(e)g|MP?(E)G|wm[av]|WM[AV]|avi|AVI|asf|vob|VOB|bin|dat|divx|DIVX|vcd|ps|pes|fli|flv|FLV|fxm|FXM|viv|rm|ram|yuv|mov|MOV|qt|QT|web[am]|WEB[AM]|mp[234]|MP[234]|m?(p)4[av]|M?(P)4[AV]|mkv|MKV|og[agmv]|OG[AGMV]|t[ps]|T[PS]|m2t?(s)|M2T?(S)|mts|MTS|wav|WAV|flac|FLAC|asx|ASX|mng|MNG|srt|m[eo]d|M[EO]D|s[3t]m|S[3T]M|it|IT|xm|XM|iso|ISO)|+([0-9]).@(vdr|VDR))?(.@(crdownload|part))" [ps2pdfwr]="!*.@(?(e)ps|pdf)" [harbour]="!*.@([Pp][Rr][Gg]|[Cc][Ll][Pp])" [jadetex]="!*.@(?(la)tex|texi|dtx|ins|ltx|dbj)" [lodraw]="!*.@(sxd|std|sda|sdd|?(f)odg|otg)" [dvitype]="!*.dvi" [lobase]="!*.odb" [rpm2cpio]="!*.[rs]pm" [xine]="!*@(.@(mp?(e)g|MP?(E)G|wm[av]|WM[AV]|avi|AVI|asf|vob|VOB|bin|dat|divx|DIVX|vcd|ps|pes|fli|flv|FLV|fxm|FXM|viv|rm|ram|yuv|mov|MOV|qt|QT|web[am]|WEB[AM]|mp[234]|MP[234]|m?(p)4[av]|M?(P)4[AV]|mkv|MKV|og[agmv]|OG[AGMV]|t[ps]|T[PS]|m2t?(s)|M2T?(S)|mts|MTS|wav|WAV|flac|FLAC|asx|ASX|mng|MNG|srt|m[eo]d|M[EO]D|s[3t]m|S[3T]M|it|IT|xm|XM)|+([0-9]).@(vdr|VDR))?(.@(crdownload|part))" [lualatex]="!*.@(?(la)tex|texi|dtx|ins|ltx|dbj)" [localc]="!*.@(sxc|stc|xls?([bmx])|xlw|xlt?([mx])|[ct]sv|?(f)ods|ots)" [hbrun]="!*.[Hh][Rr][Bb]" [amaya]="!*.@(?([xX]|[sS])[hH][tT][mM]?([lL]))" [gv]="!*.@(@(?(e)ps|?(E)PS|pdf|PDF)?(.gz|.GZ|.bz2|.BZ2|.Z))" [unpigz]="!*.@(Z|[gGdz]z|t[ag]z)" [mozilla]="!*.@(?([xX]|[sS])[hH][tT][mM]?([lL]))" [epdfview]="!*.pdf" [dvips]="!*.dvi" [pdfunite]="!*.pdf" [ps2pdf14]="!*.@(?(e)ps|pdf)" [kid3]="!*.@(mp[234c]|og[ag]|@(fl|a)ac|m4[abp]|spx|tta|w?(a)v|wma|aif?(f)|asf|ape)" [vi]="*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)" [ps2pdf]="!*.@(?(e)ps|pdf)" [gpdf]="!*.[pf]df" [lilypond]="!*.ly" [texi2dvi]="!*.@(?(la)tex|texi|dtx|ins|ltx|dbj)" [modplug123]="!*.@(669|abc|am[fs]|d[bs]m|dmf|far|it|mdl|m[eo]d|mid?(i)|mt[2m]|oct|okt?(a)|p[st]m|s[3t]m|ult|umx|wav|xm)" [znew]="*.Z" [ps2pdf13]="!*.@(?(e)ps|pdf)" [ps2pdf12]="!*.@(?(e)ps|pdf)" [kwrite]="*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)" [latex]="!*.@(?(la)tex|texi|dtx|ins|ltx|dbj)" [kate]="*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)" [pbzcat]="!*.?(t)bz?(2)" [poedit]="!*.po" [view]="*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)" [kid3-qt]="!*.@(mp[234c]|og[ag]|@(fl|a)ac|m4[abp]|spx|tta|w?(a)v|wma|aif?(f)|asf|ape)" [luatex]="!*.@(?(la)tex|texi|dtx|ins|ltx|dbj)" [bunzip2]="!*.?(t)bz?(2)" [dvipdfm]="!*.dvi" [kbabel]="!*.po" [ly2dvi]="!*.ly" [oodraw]="!*.@(sxd|std|sda|sdd|?(f)odg|otg)" [bzme]="!*.@(zip|z|gz|tgz)" [rgview]="*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)" [pdftex]="!*.@(?(la)tex|texi|dtx|ins|ltx|dbj)" [xemacs]="*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)" [zathura]="!*.@(cb[rz7t]|djv?(u)|?(e)ps|pdf)" [unxz]="!*.@(?(t)xz|tlz|lzma)" [rvim]="*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)" [madplay]="!*.mp3" [xetex]="!*.@(?(la)tex|texi|dtx|ins|ltx|dbj)" [gvim]="*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)" [kaffeine]="!*@(.@(mp?(e)g|MP?(E)G|wm[av]|WM[AV]|avi|AVI|asf|vob|VOB|bin|dat|divx|DIVX|vcd|ps|pes|fli|flv|FLV|fxm|FXM|viv|rm|ram|yuv|mov|MOV|qt|QT|web[am]|WEB[AM]|mp[234]|MP[234]|m?(p)4[av]|M?(P)4[AV]|mkv|MKV|og[agmv]|OG[AGMV]|t[ps]|T[PS]|m2t?(s)|M2T?(S)|mts|MTS|wav|WAV|flac|FLAC|asx|ASX|mng|MNG|srt|m[eo]d|M[EO]D|s[3t]m|S[3T]M|it|IT|xm|XM|iso|ISO)|+([0-9]).@(vdr|VDR))?(.@(crdownload|part))" [dviselect]="!*.dvi" [kpdf]="!*.@(?(e)ps|pdf)" [bibtex]="!*.aux" [realplay]="!*.@(rm?(j)|ra?(m)|smi?(l))" [mpg123]="!*.mp3" [netscape]="!*.@(?([xX]|[sS])[hH][tT][mM]?([lL]))" [lzegrep]="!*.@(tlz|lzma)" [gview]="*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)" [kdvi]="!*.@(dvi|DVI)?(.@(gz|Z|bz2))" [xv]="!*.@(gif|jp?(e)g?(2)|j2[ck]|jp[2f]|tif?(f)|png|p[bgp]m|bmp|x[bp]m|rle|rgb|pcx|fits|pm|?(e)ps)" [lzfgrep]="!*.@(tlz|lzma)" [playmidi]="!*.@(mid?(i)|cmf)" [lzless]="!*.@(tlz|lzma)" [elinks]="!*.@(?([xX]|[sS])[hH][tT][mM]?([lL]))" [timidity]="!*.@(mid?(i)|rmi|rcp|[gr]36|g18|mod|xm|it|x3m|s[3t]m|kar)" [xdvi]="!*.@(dvi|DVI)?(.@(gz|Z|bz2))" [xfig]="!*.fig" [xpdf]="!*.[pf]df" [lomath]="!*.@(sxm|smf|mml|odf)" [lzcat]="!*.@(tlz|lzma)" [compress]="*.Z" [pdfjadetex]="!*.@(?(la)tex|texi|dtx|ins|ltx|dbj)" [kghostview]="!*.@(@(?(e)ps|?(E)PS|pdf|PDF)?(.gz|.GZ|.bz2|.BZ2|.Z))" [zcat]="!*.@(Z|[gGd]z|t[ag]z)" [pbunzip2]="!*.?(t)bz?(2)" [oobase]="!*.odb" [cdiff]="!*.@(dif?(f)|?(d)patch)?(.@([gx]z|bz2|lzma))" [gtranslator]="!*.po" [lynx]="!*.@(?([xX]|[sS])[hH][tT][mM]?([lL]))" [emacs]="*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)" [zipinfo]="!*.@(zip|[aegjswx]ar|exe|pk3|wsz|zargo|xpi|s[tx][cdiw]|sx[gm]|o[dt][tspgfc]|od[bm]|oxt|epub|apk|aab|ipa|do[ct][xm]|p[op]t[mx]|xl[st][xm]|pyz|whl)" [xelatex]="!*.@(?(la)tex|texi|dtx|ins|ltx|dbj)" [uncompress]="!*.Z" [xzcat]="!*.@(?(t)xz|tlz|lzma)" [unzip]="!*.@(zip|[aegjswx]ar|exe|pk3|wsz|zargo|xpi|s[tx][cdiw]|sx[gm]|o[dt][tspgfc]|od[bm]|oxt|epub|apk|aab|ipa|do[ct][xm]|p[op]t[mx]|xl[st][xm]|pyz|whl)" [rview]="*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)" [ogg123]="!*.@(og[ag]|m3u|flac|spx)" [lrunzip]="!*.lrz" [lzgrep]="!*.@(tlz|lzma)" [slitex]="!*.@(?(la)tex|texi|dtx|ins|ltx|dbj)" [vim]="*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)" [ggv]="!*.@(@(?(e)ps|?(E)PS|pdf|PDF)?(.gz|.GZ|.bz2|.BZ2|.Z))" [ee]="!*.@(gif|jp?(e)g|miff|tif?(f)|pn[gm]|p[bgp]m|bmp|xpm|ico|xwd|tga|pcx)" [oomath]="!*.@(sxm|smf|mml|odf)" [aaxine]="!*@(.@(mp?(e)g|MP?(E)G|wm[av]|WM[AV]|avi|AVI|asf|vob|VOB|bin|dat|divx|DIVX|vcd|ps|pes|fli|flv|FLV|fxm|FXM|viv|rm|ram|yuv|mov|MOV|qt|QT|web[am]|WEB[AM]|mp[234]|MP[234]|m?(p)4[av]|M?(P)4[AV]|mkv|MKV|og[agmv]|OG[AGMV]|t[ps]|T[PS]|m2t?(s)|M2T?(S)|mts|MTS|wav|WAV|flac|FLAC|asx|ASX|mng|MNG|srt|m[eo]d|M[EO]D|s[3t]m|S[3T]M|it|IT|xm|XM)|+([0-9]).@(vdr|VDR))?(.@(crdownload|part))" [dvipdfmx]="!*.dvi" [advi]="!*.dvi" [gunzip]="!*.@(Z|[gGd]z|t[ag]z)" [makeinfo]="!*.texi*" [gharbour]="!*.@([Pp][Rr][Gg]|[Cc][Ll][Pp])" [okular]="!*.@(okular|@(?(e|x)ps|?(E|X)PS|[pf]df|[PF]DF|dvi|DVI|cb[rz]|CB[RZ]|djv?(u)|DJV?(U)|dvi|DVI|gif|jp?(e)g|miff|tif?(f)|pn[gm]|p[bgp]m|bmp|xpm|ico|xwd|tga|pcx|GIF|JP?(E)G|MIFF|TIF?(F)|PN[GM]|P[BGP]M|BMP|XPM|ICO|XWD|TGA|PCX|epub|EPUB|odt|ODT|fb?(2)|FB?(2)|mobi|MOBI|g3|G3|chm|CHM)?(.?(gz|GZ|bz2|BZ2|xz|XZ)))" [galeon]="!*.@(?([xX]|[sS])[hH][tT][mM]?([lL]))" [pdflatex]="!*.@(?(la)tex|texi|dtx|ins|ltx|dbj)" [lzmore]="!*.@(tlz|lzma)" [portecle]="!@(*.@(ks|jks|jceks|p12|pfx|bks|ubr|gkr|cer|crt|cert|p7b|pkipath|pem|p10|csr|crl)|cacerts)" [oowriter]="!*.@(sxw|stw|sxg|sgl|doc?([mx])|dot?([mx])|rtf|txt|htm|html|?(f)odt|ott|odm|pdf)" [loimpress]="!*.@(sxi|sti|pps?(x)|ppt?([mx])|pot?([mx])|?(f)odp|otp)" [epiphany]="!*.@(?([xX]|[sS])[hH][tT][mM]?([lL]))" [modplugplay]="!*.@(669|abc|am[fs]|d[bs]m|dmf|far|it|mdl|m[eo]d|mid?(i)|mt[2m]|oct|okt?(a)|p[st]m|s[3t]m|ult|umx|wav|xm)" [dvipdf]="!*.dvi" [dillo]="!*.@(?([xX]|[sS])[hH][tT][mM]?([lL]))" [fbxine]="!*@(.@(mp?(e)g|MP?(E)G|wm[av]|WM[AV]|avi|AVI|asf|vob|VOB|bin|dat|divx|DIVX|vcd|ps|pes|fli|flv|FLV|fxm|FXM|viv|rm|ram|yuv|mov|MOV|qt|QT|web[am]|WEB[AM]|mp[234]|MP[234]|m?(p)4[av]|M?(P)4[AV]|mkv|MKV|og[agmv]|OG[AGMV]|t[ps]|T[PS]|m2t?(s)|M2T?(S)|mts|MTS|wav|WAV|flac|FLAC|asx|ASX|mng|MNG|srt|m[eo]d|M[EO]D|s[3t]m|S[3T]M|it|IT|xm|XM)|+([0-9]).@(vdr|VDR))?(.@(crdownload|part))" )
__expand_tilde_by_ref () 
{ 
    if [[ ${!1-} == \~* ]]; then
        eval $1="$(printf ~%q "${!1#\~}")";
    fi
}
__get_cword_at_cursor_by_ref () 
{ 
    local cword words=();
    __reassemble_comp_words_by_ref "$1" words cword;
    local i cur="" index=$COMP_POINT lead=${COMP_LINE:0:COMP_POINT};
    if [[ $index -gt 0 && ( -n $lead && -n ${lead//[[:space:]]/} ) ]]; then
        cur=$COMP_LINE;
        for ((i = 0; i <= cword; ++i))
        do
            while [[ ${#cur} -ge ${#words[i]} && ${cur:0:${#words[i]}} != "${words[i]-}" ]]; do
                cur="${cur:1}";
                ((index > 0)) && ((index--));
            done;
            if ((i < cword)); then
                local old_size=${#cur};
                cur="${cur#"${words[i]}"}";
                local new_size=${#cur};
                ((index -= old_size - new_size));
            fi;
        done;
        [[ -n $cur && ! -n ${cur//[[:space:]]/} ]] && cur=;
        ((index < 0)) && index=0;
    fi;
    local "$2" "$3" "$4" && _upvars -a${#words[@]} $2 ${words+"${words[@]}"} -v $3 "$cword" -v $4 "${cur:0:index}"
}
__load_completion () 
{ 
    local -a dirs=(${BASH_COMPLETION_USER_DIR:-${XDG_DATA_HOME:-$HOME/.local/share}/bash-completion}/completions);
    local ifs=$IFS IFS=: dir cmd="${1##*/}" compfile;
    [[ -n $cmd ]] || return 1;
    for dir in ${XDG_DATA_DIRS:-/usr/local/share:/usr/share};
    do
        dirs+=($dir/bash-completion/completions);
    done;
    IFS=$ifs;
    if [[ $BASH_SOURCE == */* ]]; then
        dirs+=("${BASH_SOURCE%/*}/completions");
    else
        dirs+=(./completions);
    fi;
    local backslash=;
    if [[ $cmd == \\* ]]; then
        cmd="${cmd:1}";
        $(complete -p "$cmd" 2>/dev/null || echo false) "\\$cmd" && return 0;
        backslash=\\;
    fi;
    for dir in "${dirs[@]}";
    do
        [[ -d $dir ]] || continue;
        for compfile in "$cmd" "$cmd.bash" "_$cmd";
        do
            compfile="$dir/$compfile";
            if [[ -f $compfile ]] && . "$compfile" &> /dev/null; then
                [[ -n $backslash ]] && $(complete -p "$cmd") "\\$cmd";
                return 0;
            fi;
        done;
    done;
    [[ -v _xspecs[$cmd] ]] && complete -F _filedir_xspec "$cmd" "$backslash$cmd" && return 0;
    return 1
}
__ltrim_colon_completions () 
{ 
    if [[ $1 == *:* && $COMP_WORDBREAKS == *:* ]]; then
        local colon_word=${1%"${1##*:}"};
        local i=${#COMPREPLY[*]};
        while ((i-- > 0)); do
            COMPREPLY[i]=${COMPREPLY[i]#"$colon_word"};
        done;
    fi
}
__parse_options () 
{ 
    local option option2 i IFS=' 	
,/|';
    option=;
    local -a array=($1);
    for i in "${array[@]}";
    do
        case "$i" in 
            ---*)
                break
            ;;
            --?*)
                option=$i;
                break
            ;;
            -?*)
                [[ -n $option ]] || option=$i
            ;;
            *)
                break
            ;;
        esac;
    done;
    [[ -n $option ]] || return 0;
    IFS=' 	
';
    if [[ $option =~ (\[((no|dont)-?)\]). ]]; then
        option2=${option/"${BASH_REMATCH[1]}"/};
        option2=${option2%%[<{().[]*};
        printf '%s\n' "${option2/=*/=}";
        option=${option/"${BASH_REMATCH[1]}"/"${BASH_REMATCH[2]}"};
    fi;
    option=${option%%[<{().[]*};
    printf '%s\n' "${option/=*/=}"
}
__reassemble_comp_words_by_ref () 
{ 
    local exclude i j line ref;
    if [[ -n $1 ]]; then
        exclude="[${1//[^$COMP_WORDBREAKS]/}]";
    fi;
    printf -v "$3" %s "$COMP_CWORD";
    if [[ -v exclude ]]; then
        line=$COMP_LINE;
        for ((i = 0, j = 0; i < ${#COMP_WORDS[@]}; i++, j++))
        do
            while [[ $i -gt 0 && ${COMP_WORDS[i]} == +($exclude) ]]; do
                [[ $line != [[:blank:]]* ]] && ((j >= 2)) && ((j--));
                ref="$2[$j]";
                printf -v "$ref" %s "${!ref-}${COMP_WORDS[i]}";
                ((i == COMP_CWORD)) && printf -v "$3" %s "$j";
                line=${line#*"${COMP_WORDS[i]}"};
                [[ $line == [[:blank:]]* ]] && ((j++));
                ((i < ${#COMP_WORDS[@]} - 1)) && ((i++)) || break 2;
            done;
            ref="$2[$j]";
            printf -v "$ref" %s "${!ref-}${COMP_WORDS[i]}";
            line=${line#*"${COMP_WORDS[i]}"};
            ((i == COMP_CWORD)) && printf -v "$3" %s "$j";
        done;
        ((i == COMP_CWORD)) && printf -v "$3" %s "$j";
    else
        for i in "${!COMP_WORDS[@]}";
        do
            printf -v "$2[i]" %s "${COMP_WORDS[i]}";
        done;
    fi
}
_allowed_groups () 
{ 
    if _complete_as_root; then
        local IFS='
';
        COMPREPLY=($(compgen -g -- "$1"));
    else
        local IFS='
 ';
        COMPREPLY=($(compgen -W             "$(id -Gn 2>/dev/null || groups 2>/dev/null)" -- "$1"));
    fi
}
_allowed_users () 
{ 
    if _complete_as_root; then
        local IFS='
';
        COMPREPLY=($(compgen -u -- "${1:-$cur}"));
    else
        local IFS='
 ';
        COMPREPLY=($(compgen -W             "$(id -un 2>/dev/null || whoami 2>/dev/null)" -- "${1:-$cur}"));
    fi
}
_available_interfaces () 
{ 
    local PATH=$PATH:/sbin;
    COMPREPLY=($({
        if [[ ${1:-} == -w ]]; then
            iwconfig
        elif [[ ${1:-} == -a ]]; then
            ifconfig || ip link show up
        else
            ifconfig -a || ip link show
        fi
    } 2>/dev/null | awk         '/^[^ \t]/ { if ($1 ~ /^[0-9]+:/) { print $2 } else { print $1 } }'));
    COMPREPLY=($(compgen -W '${COMPREPLY[@]/%[[:punct:]]/}' -- "$cur"))
}
_bashcomp_try_faketty () 
{ 
    if type unbuffer &> /dev/null; then
        unbuffer -p "$@";
    else
        if script --version 2>&1 | command grep -qF util-linux; then
            script -qaefc "$*" /dev/null;
        else
            "$@";
        fi;
    fi
}
_cd () 
{ 
    local cur prev words cword;
    _init_completion || return;
    local IFS='
' i j k;
    compopt -o filenames;
    if [[ -z ${CDPATH:-} || $cur == ?(.)?(.)/* ]]; then
        _filedir -d;
        return;
    fi;
    local -r mark_dirs=$(_rl_enabled mark-directories && echo y);
    local -r mark_symdirs=$(_rl_enabled mark-symlinked-directories && echo y);
    for i in ${CDPATH//:/'
'};
    do
        k="${#COMPREPLY[@]}";
        for j in $(compgen -d -- $i/$cur);
        do
            if [[ ( -n $mark_symdirs && -L $j || -n $mark_dirs && ! -L $j ) && ! -d ${j#$i/} ]]; then
                j+="/";
            fi;
            COMPREPLY[k++]=${j#$i/};
        done;
    done;
    _filedir -d;
    if ((${#COMPREPLY[@]} == 1)); then
        i=${COMPREPLY[0]};
        if [[ $i == "$cur" && $i != "*/" ]]; then
            COMPREPLY[0]="${i}/";
        fi;
    fi;
    return
}
_cd_devices () 
{ 
    COMPREPLY+=($(compgen -f -d -X "!*/?([amrs])cd*" -- "${cur:-/dev/}"))
}
_command () 
{ 
    local offset i;
    offset=1;
    for ((i = 1; i <= COMP_CWORD; i++))
    do
        if [[ ${COMP_WORDS[i]} != -* ]]; then
            offset=$i;
            break;
        fi;
    done;
    _command_offset $offset
}
_command_offset () 
{ 
    local word_offset=$1 i j;
    for ((i = 0; i < word_offset; i++))
    do
        for ((j = 0; j <= ${#COMP_LINE}; j++))
        do
            [[ $COMP_LINE == "${COMP_WORDS[i]}"* ]] && break;
            COMP_LINE=${COMP_LINE:1};
            ((COMP_POINT--));
        done;
        COMP_LINE=${COMP_LINE#"${COMP_WORDS[i]}"};
        ((COMP_POINT -= ${#COMP_WORDS[i]}));
    done;
    for ((i = 0; i <= COMP_CWORD - word_offset; i++))
    do
        COMP_WORDS[i]=${COMP_WORDS[i + word_offset]};
    done;
    for ((i; i <= COMP_CWORD; i++))
    do
        unset 'COMP_WORDS[i]';
    done;
    ((COMP_CWORD -= word_offset));
    COMPREPLY=();
    local cur;
    _get_comp_words_by_ref cur;
    if ((COMP_CWORD == 0)); then
        local IFS='
';
        compopt -o filenames;
        COMPREPLY=($(compgen -d -c -- "$cur"));
    else
        local cmd=${COMP_WORDS[0]} compcmd=${COMP_WORDS[0]};
        local cspec=$(complete -p $cmd 2>/dev/null);
        if [[ ! -n $cspec && $cmd == */* ]]; then
            cspec=$(complete -p ${cmd##*/} 2>/dev/null);
            [[ -n $cspec ]] && compcmd=${cmd##*/};
        fi;
        if [[ ! -n $cspec ]]; then
            compcmd=${cmd##*/};
            _completion_loader $compcmd;
            cspec=$(complete -p $compcmd 2>/dev/null);
        fi;
        if [[ -n $cspec ]]; then
            if [[ ${cspec#* -F } != "$cspec" ]]; then
                local func=${cspec#*-F };
                func=${func%% *};
                if ((${#COMP_WORDS[@]} >= 2)); then
                    $func $cmd "${COMP_WORDS[-1]}" "${COMP_WORDS[-2]}";
                else
                    $func $cmd "${COMP_WORDS[-1]}";
                fi;
                local opt;
                while [[ $cspec == *" -o "* ]]; do
                    cspec=${cspec#*-o };
                    opt=${cspec%% *};
                    compopt -o $opt;
                    cspec=${cspec#$opt};
                done;
            else
                cspec=${cspec#complete};
                cspec=${cspec%%$compcmd};
                COMPREPLY=($(eval compgen "$cspec" -- '$cur'));
            fi;
        else
            if ((${#COMPREPLY[@]} == 0)); then
                _minimal;
            fi;
        fi;
    fi
}
_complete_as_root () 
{ 
    [[ $EUID -eq 0 || -n ${root_command:-} ]]
}
_completion_loader () 
{ 
    local cmd="${1:-_EmptycmD_}";
    __load_completion "$cmd" && return 124;
    complete -F _minimal -- "$cmd" && return 124
}
_configured_interfaces () 
{ 
    if [[ -f /etc/debian_version ]]; then
        COMPREPLY=($(compgen -W "$(command sed -ne 's|^iface \([^ ]\{1,\}\).*$|\1|p'             /etc/network/interfaces /etc/network/interfaces.d/* 2>/dev/null)"             -- "$cur"));
    else
        if [[ -f /etc/SuSE-release ]]; then
            COMPREPLY=($(compgen -W "$(printf '%s\n'             /etc/sysconfig/network/ifcfg-* |
            command sed -ne 's|.*ifcfg-\([^*].*\)$|\1|p')" -- "$cur"));
        else
            if [[ -f /etc/pld-release ]]; then
                COMPREPLY=($(compgen -W "$(command ls -B             /etc/sysconfig/interfaces |
            command sed -ne 's|.*ifcfg-\([^*].*\)$|\1|p')" -- "$cur"));
            else
                COMPREPLY=($(compgen -W "$(printf '%s\n'             /etc/sysconfig/network-scripts/ifcfg-* |
            command sed -ne 's|.*ifcfg-\([^*].*\)$|\1|p')" -- "$cur"));
            fi;
        fi;
    fi
}
_count_args () 
{ 
    local i cword words;
    __reassemble_comp_words_by_ref "${1-}" words cword;
    args=1;
    for ((i = 1; i < cword; i++))
    do
        if [[ ${words[i]} != -* && ${words[i - 1]} != ${2-} || ${words[i]} == ${3-} ]]; then
            ((args++));
        fi;
    done
}
_dvd_devices () 
{ 
    COMPREPLY+=($(compgen -f -d -X "!*/?(r)dvd*" -- "${cur:-/dev/}"))
}
_expand () 
{ 
    case ${cur-} in 
        ~*/*)
            __expand_tilde_by_ref cur
        ;;
        ~*)
            _tilde "$cur" || eval COMPREPLY[0]="$(printf ~%q "${COMPREPLY[0]#\~}")";
            return ${#COMPREPLY[@]}
        ;;
    esac
}
_filedir () 
{ 
    local IFS='
';
    _tilde "${cur-}" || return;
    local -a toks;
    local reset arg=${1-};
    if [[ $arg == -d ]]; then
        reset=$(shopt -po noglob);
        set -o noglob;
        toks=($(compgen -d -- "${cur-}"));
        IFS=' ';
        $reset;
        IFS='
';
    else
        local quoted;
        _quote_readline_by_ref "${cur-}" quoted;
        local xspec=${arg:+"!*.@($arg|${arg^^})"} plusdirs=();
        local opts=(-f -X "$xspec");
        [[ -n $xspec ]] && plusdirs=(-o plusdirs);
        [[ -n ${COMP_FILEDIR_FALLBACK-} || -z ${plusdirs-} ]] || opts+=("${plusdirs[@]}");
        reset=$(shopt -po noglob);
        set -o noglob;
        toks+=($(compgen "${opts[@]}" -- $quoted));
        IFS=' ';
        $reset;
        IFS='
';
        [[ -n ${COMP_FILEDIR_FALLBACK-} && -n $arg && ${#toks[@]} -lt 1 ]] && { 
            reset=$(shopt -po noglob);
            set -o noglob;
            toks+=($(compgen -f ${plusdirs+"${plusdirs[@]}"} -- $quoted));
            IFS=' ';
            $reset;
            IFS='
'
        };
    fi;
    if ((${#toks[@]} != 0)); then
        compopt -o filenames 2> /dev/null;
        COMPREPLY+=("${toks[@]}");
    fi
}
_filedir_xspec () 
{ 
    local cur prev words cword;
    _init_completion || return;
    _tilde "$cur" || return;
    local IFS='
' xspec=${_xspecs[${1##*/}]} tmp;
    local -a toks;
    toks=($(
        compgen -d -- "$(quote_readline "$cur")" | {
            while read -r tmp; do
                printf '%s\n' $tmp
            done
        }
    ));
    eval xspec="${xspec}";
    local matchop=!;
    if [[ $xspec == !* ]]; then
        xspec=${xspec#!};
        matchop=@;
    fi;
    xspec="$matchop($xspec|${xspec^^})";
    toks+=($(
        eval compgen -f -X "'!$xspec'" -- '$(quote_readline "$cur")' | {
            while read -r tmp; do
                [[ -n $tmp ]] && printf '%s\n' $tmp
            done
        }
    ));
    [[ -n ${COMP_FILEDIR_FALLBACK:-} && ${#toks[@]} -lt 1 ]] && { 
        local reset=$(shopt -po noglob);
        set -o noglob;
        toks+=($(compgen -f -- "$(quote_readline "$cur")"));
        IFS=' ';
        $reset;
        IFS='
'
    };
    if ((${#toks[@]} != 0)); then
        compopt -o filenames;
        COMPREPLY=("${toks[@]}");
    fi
}
_fstypes () 
{ 
    local fss;
    if [[ -e /proc/filesystems ]]; then
        fss="$(cut -d'	' -f2 /proc/filesystems)
             $(awk '! /\*/ { print $NF }' /etc/filesystems 2>/dev/null)";
    else
        fss="$(awk '/^[ \t]*[^#]/ { print $3 }' /etc/fstab 2>/dev/null)
             $(awk '/^[ \t]*[^#]/ { print $3 }' /etc/mnttab 2>/dev/null)
             $(awk '/^[ \t]*[^#]/ { print $4 }' /etc/vfstab 2>/dev/null)
             $(awk '{ print $1 }' /etc/dfs/fstypes 2>/dev/null)
             $([[ -d /etc/fs ]] && command ls /etc/fs)";
    fi;
    [[ -n $fss ]] && COMPREPLY+=($(compgen -W "$fss" -- "$cur"))
}
_get_comp_words_by_ref () 
{ 
    local exclude flag i OPTIND=1;
    local cur cword words=();
    local upargs=() upvars=() vcur vcword vprev vwords;
    while getopts "c:i:n:p:w:" flag "$@"; do
        case $flag in 
            c)
                vcur=$OPTARG
            ;;
            i)
                vcword=$OPTARG
            ;;
            n)
                exclude=$OPTARG
            ;;
            p)
                vprev=$OPTARG
            ;;
            w)
                vwords=$OPTARG
            ;;
            *)
                echo "bash_completion: $FUNCNAME: usage error" 1>&2;
                return 1
            ;;
        esac;
    done;
    while [[ $# -ge $OPTIND ]]; do
        case ${!OPTIND} in 
            cur)
                vcur=cur
            ;;
            prev)
                vprev=prev
            ;;
            cword)
                vcword=cword
            ;;
            words)
                vwords=words
            ;;
            *)
                echo "bash_completion: $FUNCNAME: \`${!OPTIND}':" "unknown argument" 1>&2;
                return 1
            ;;
        esac;
        ((OPTIND += 1));
    done;
    __get_cword_at_cursor_by_ref "${exclude-}" words cword cur;
    [[ -v vcur ]] && { 
        upvars+=("$vcur");
        upargs+=(-v $vcur "$cur")
    };
    [[ -v vcword ]] && { 
        upvars+=("$vcword");
        upargs+=(-v $vcword "$cword")
    };
    [[ -v vprev && $cword -ge 1 ]] && { 
        upvars+=("$vprev");
        upargs+=(-v $vprev "${words[cword - 1]}")
    };
    [[ -v vwords ]] && { 
        upvars+=("$vwords");
        upargs+=(-a${#words[@]} $vwords ${words+"${words[@]}"})
    };
    ((${#upvars[@]})) && local "${upvars[@]}" && _upvars "${upargs[@]}"
}
_get_cword () 
{ 
    local LC_CTYPE=C;
    local cword words;
    __reassemble_comp_words_by_ref "${1-}" words cword;
    if [[ -n ${2-} && -n ${2//[^0-9]/} ]]; then
        printf "%s" "${words[cword - $2]}";
    else
        if ((${#words[cword]} == 0 && COMP_POINT == ${#COMP_LINE})); then
            :;
        else
            local i;
            local cur="$COMP_LINE";
            local index="$COMP_POINT";
            for ((i = 0; i <= cword; ++i))
            do
                while [[ ${#cur} -ge ${#words[i]} && ${cur:0:${#words[i]}} != "${words[i]}" ]]; do
                    cur="${cur:1}";
                    ((index > 0)) && ((index--));
                done;
                if ((i < cword)); then
                    local old_size="${#cur}";
                    cur="${cur#${words[i]}}";
                    local new_size="${#cur}";
                    ((index -= old_size - new_size));
                fi;
            done;
            if [[ ${words[cword]:0:${#cur}} != "$cur" ]]; then
                printf "%s" "${words[cword]}";
            else
                printf "%s" "${cur:0:index}";
            fi;
        fi;
    fi
}
_get_first_arg () 
{ 
    local i;
    arg=;
    for ((i = 1; i < COMP_CWORD; i++))
    do
        if [[ ${COMP_WORDS[i]} != -* ]]; then
            arg=${COMP_WORDS[i]};
            break;
        fi;
    done
}
_get_pword () 
{ 
    if ((COMP_CWORD >= 1)); then
        _get_cword "${@:-}" 1;
    fi
}
_gids () 
{ 
    if type getent &> /dev/null; then
        COMPREPLY=($(compgen -W '$(getent group | cut -d: -f3)' -- "$cur"));
    else
        if type perl &> /dev/null; then
            COMPREPLY=($(compgen -W '$(perl -e '"'"'while (($gid) = (getgrent)[2]) { print $gid . "\n" }'"'"')' -- "$cur"));
        else
            COMPREPLY=($(compgen -W '$(cut -d: -f3 /etc/group)' -- "$cur"));
        fi;
    fi
}
_have () 
{ 
    PATH=$PATH:/usr/sbin:/sbin:/usr/local/sbin type $1 &> /dev/null
}
_hwloc_annotate () 
{ 
    local OPTIONS=(--ci --ri --cu --cd -h --help);
    local cur=${COMP_WORDS[COMP_CWORD]};
    if [[ $COMP_CWORD == 1 || $cur == -* ]]; then
        COMPREPLY=(`compgen -W "${OPTIONS[*]}" -- "$cur"`);
    fi;
    _filedir xml
}
_hwloc_bind () 
{ 
    local OPTIONS=(--cpubind --membind --mempolicy --logical -l --physical -p --single --strict --get -e --get-last-cpu-location --nodeset --pid --tid --taskset --restrict --disallowed --whole-system --hbm --no-hbm --no-smt --no-smt=N -f --force -q --quiet -v --verbose --version -h --help);
    local cur=${COMP_WORDS[COMP_CWORD]};
    local prev=${COMP_WORDS[COMP_CWORD-1]};
    if [[ $COMP_CWORD == 1 || $cur == -* ]]; then
        COMPREPLY=(`compgen -W "${OPTIONS[*]}" -- "$cur"`);
    else
        case "$prev" in 
            --mempolicy)
                COMPREPLY=(`compgen -W "default firsttouch bind interleave nexttouch" -- "$cur"`)
            ;;
            --pid)
                COMPREPLY=("<pid>" "")
            ;;
            --tid)
                COMPREPLY=("<tid>" "")
            ;;
            --restrict)
                COMPREPLY=("<bitmask>" "")
            ;;
        esac;
    fi
}
_hwloc_calc () 
{ 
    local TYPES=("Machine" "Misc" "Group" "NUMANode" "MemCache" "Package" "Die" "L1" "L2" "L3" "L4" "L5" "L1i" "L2i" "L3i" "Core" "Bridge" "PCIDev" "OSDev" "PU");
    local OPTIONS=(-N --number-of -I --intersect -H --hierarchical --largest -l --logical -p --physical --li --logical-input --lo --logical-output --pi --physical-input --po --physical-output -n --nodeset --ni --nodeset-input --no --nodeset-output --sep --taskset --single --restrict --disallowed --whole-system --input -i --input-format --if --no-smt --no-smt=N -q --quiet -v --verbose --version -h --help);
    local cur=${COMP_WORDS[COMP_CWORD]};
    local prev=${COMP_WORDS[COMP_CWORD-1]};
    if [[ $COMP_CWORD == 1 || $cur == -* ]]; then
        COMPREPLY=(`compgen -W "${OPTIONS[*]}" -- "$cur"`);
    else
        case "$prev" in 
            -N | --number-of | -I | --intersect)
                COMPREPLY=(`compgen -W "${TYPES[*]}" -- "$cur"`)
            ;;
            -H | --hierarchical)
                COMPREPLY=("<type1>.<type2>..." "")
            ;;
            --sep)
                COMPREPLY=("<separator>" "")
            ;;
            -i | --input)
                _filedir xml
            ;;
            --if | --input-format)
                COMPREPLY=(`compgen -W "${INPUT_FORMAT[*]}" -- "$cur"`)
            ;;
            --restrict)
                COMPREPLY=("<bitmask>" "")
            ;;
        esac;
    fi
}
_hwloc_compress_dir () 
{ 
    local OPTIONS=(-R --reverse -v --verbose -h --help);
    local cur=${COMP_WORDS[COMP_CWORD]};
    if [[ $COMP_CWORD == 1 || $cur == -* ]]; then
        COMPREPLY=(`compgen -W "${OPTIONS[*]}" -- "$cur"`);
    fi;
    _filedir -d
}
_hwloc_diff () 
{ 
    local OPTIONS=(--refname --version -h --help);
    local cur=${COMP_WORDS[COMP_CWORD]};
    local prev=${COMP_WORDS[COMP_CWORD-1]};
    if [[ $COMP_CWORD == 1 || $cur == -* ]]; then
        COMPREPLY=(`compgen -W "${OPTIONS[*]}" -- "$cur"`);
    else
        case "$prev" in 
            --refname)
                COMPREPLY=("<reference topology identifier>" "")
            ;;
        esac;
    fi;
    _filedir xml
}
_hwloc_distrib () 
{ 
    local TYPES=("Machine" "Misc" "Group" "NUMANode" "MemCache" "Package" "Die" "L1" "L2" "L3" "L4" "L5" "L1i" "L2i" "L3i" "Core" "Bridge" "PCIDev" "OSDev" "PU");
    local OPTIONS=(--ignore --from --to --at --reverse --restrict --disallowed --whole-system --input -i --input-format --if --single --taskset -v --verbose --version -h --help);
    local cur=${COMP_WORDS[COMP_CWORD]};
    local prev=${COMP_WORDS[COMP_CWORD-1]};
    if [[ $COMP_CWORD == 1 || $cur == -* ]]; then
        COMPREPLY=(`compgen -W "${OPTIONS[*]}" -- "$cur"`);
    else
        case "$prev" in 
            --ignore | --from | --to | --at)
                COMPREPLY=(`compgen -W "${TYPES[*]}" -- "$cur"`)
            ;;
            -i | --input)
                _filedir xml
            ;;
            --if | --input-format)
                COMPREPLY=(`compgen -W "${INPUT_FORMAT[*]}" -- "$cur"`)
            ;;
            --restrict)
                COMPREPLY=("<bitmask>" "")
            ;;
        esac;
    fi
}
_hwloc_gather_cpuid () 
{ 
    local OPTIONS=(-c -s --silent -h --help);
    local cur=${COMP_WORDS[COMP_CWORD]};
    local prev=${COMP_WORDS[COMP_CWORD-1]};
    if [[ $COMP_CWORD == 1 || $cur == -* ]]; then
        COMPREPLY=(`compgen -W "${OPTIONS[*]}" -- "$cur"`);
    else
        case "$prev" in 
            -c)
                COMPREPLY=("<index of cpu to operate on>" "")
            ;;
        esac;
    fi
}
_hwloc_gather_topology () 
{ 
    local OPTIONS=(--io --dmi --no-cpuid --keep -h --help);
    local cur=${COMP_WORDS[COMP_CWORD]};
    if [[ $COMP_CWORD == 1 || $cur == -* ]]; then
        COMPREPLY=(`compgen -W "${OPTIONS[*]}" -- "$cur"`);
    fi
}
_hwloc_info () 
{ 
    local TYPES=("Machine" "Misc" "Group" "NUMANode" "MemCache" "Package" "Die" "L1" "L2" "L3" "L4" "L5" "L1i" "L2i" "L3i" "Core" "Bridge" "PCIDev" "OSDev" "PU");
    local FILTERKINDS=("none" "all" "structure" "important");
    local OPTIONS=(--objects --topology --support -v --verbose -s --silent --ancestors --ancestor --children --descendants -n --restrict --filter --no-icaches --no-io --no-bridges --whole-io --input -i --input-format --if --thissystem --pid --disallowed --whole-system -l --logical -p --physical --version -h --help);
    local cur=${COMP_WORDS[COMP_CWORD]};
    local prev=${COMP_WORDS[COMP_CWORD-1]};
    if [[ $COMP_CWORD == 1 || $cur == -* ]]; then
        COMPREPLY=(`compgen -W "${OPTIONS[*]}" -- "$cur"`);
    else
        if [[ $COMP_CWORD -ge 3 && "${COMP_WORDS[COMP_CWORD-2]}" == "--filter" && "$cur" == ":" ]]; then
            COMPREPLY=(`compgen -W "${FILTERKINDS[*]}"`);
        else
            if [[ $COMP_CWORD -ge 4 && "${COMP_WORDS[COMP_CWORD-3]}" == "--filter" && "$prev" == ":" ]]; then
                COMPREPLY=(`compgen -W "${FILTERKINDS[*]}" -- "$cur"`);
            else
                case "$prev" in 
                    --restrict)
                        COMPREPLY=(`compgen -W "binding <cpuset>" -- "$cur"`)
                    ;;
                    -i | --input)
                        _filedir xml
                    ;;
                    --if | --input-format)
                        COMPREPLY=(`compgen -W "${INPUT_FORMAT[*]}" -- "$cur"`)
                    ;;
                    --pid)
                        COMPREPLY=("<pid>" "")
                    ;;
                    --filter)
                        COMPREPLY=(`compgen -W "${TYPES[*]/%/:} cache: icache: io:" -- "$cur"`) && compopt -o nospace
                    ;;
                    --ancestor | --descendants)
                        COMPREPLY=(`compgen -W "${TYPES[*]}" -- "$cur"`)
                    ;;
                esac;
            fi;
        fi;
    fi
}
_hwloc_patch () 
{ 
    local OPTIONS=(--R --reverse --version -h --help);
    local cur=${COMP_WORDS[COMP_CWORD]};
    if [[ $COMP_CWORD == 1 || $cur == -* ]]; then
        COMPREPLY=(`compgen -W "${OPTIONS[*]}" -- "$cur"`);
    fi;
    _filedir xml
}
_hwloc_ps () 
{ 
    local OPTIONS=(-a --pid --name -l --logical -p --physical -c --cpuset -t --threads -e --get-last-cpu-location --pid-cmd --uid --disallowed --whole-system --json-server --json-port -v --verbose -h --help);
    local cur=${COMP_WORDS[COMP_CWORD]};
    local prev=${COMP_WORDS[COMP_CWORD-1]};
    if [[ $COMP_CWORD == 1 || $cur == -* ]]; then
        COMPREPLY=(`compgen -W "${OPTIONS[*]}" -- "$cur"`);
    else
        case "$prev" in 
            --name)
                COMPREPLY=("<task name>" "")
            ;;
            --uid)
                COMPREPLY=("<uid>" "all" "")
            ;;
            --pid)
                COMPREPLY=("<pid>" "")
            ;;
            --pid-cmd)
                _filedir
            ;;
            --json-port)
                COMPREPLY=("<port>" "")
            ;;
        esac;
    fi
}
_included_ssh_config_files () 
{ 
    (($# < 1)) && echo "bash_completion: $FUNCNAME: missing mandatory argument CONFIG" 1>&2;
    local configfile i f;
    configfile=$1;
    local reset=$(shopt -po noglob);
    set -o noglob;
    local included=($(command sed -ne 's/^[[:blank:]]*[Ii][Nn][Cc][Ll][Uu][Dd][Ee][[:blank:]]\(.*\)$/\1/p' "${configfile}"));
    $reset;
    [[ -n ${included-} ]] || return;
    for i in "${included[@]}";
    do
        if ! [[ $i =~ ^\~.*|^\/.* ]]; then
            if [[ $configfile =~ ^\/etc\/ssh.* ]]; then
                i="/etc/ssh/$i";
            else
                i="$HOME/.ssh/$i";
            fi;
        fi;
        __expand_tilde_by_ref i;
        set +o noglob;
        for f in $i;
        do
            if [[ -r $f ]]; then
                config+=("$f");
                _included_ssh_config_files $f;
            fi;
        done;
        $reset;
    done
}
_init_completion () 
{ 
    local exclude="" flag outx errx inx OPTIND=1;
    while getopts "n:e:o:i:s" flag "$@"; do
        case $flag in 
            n)
                exclude+=$OPTARG
            ;;
            e)
                errx=$OPTARG
            ;;
            o)
                outx=$OPTARG
            ;;
            i)
                inx=$OPTARG
            ;;
            s)
                split=false;
                exclude+==
            ;;
            *)
                echo "bash_completion: $FUNCNAME: usage error" 1>&2;
                return 1
            ;;
        esac;
    done;
    COMPREPLY=();
    local redir="@(?([0-9])<|?([0-9&])>?(>)|>&)";
    _get_comp_words_by_ref -n "$exclude<>&" cur prev words cword;
    _variables && return 1;
    if [[ $cur == $redir* || ${prev-} == $redir ]]; then
        local xspec;
        case $cur in 
            2'>'*)
                xspec=${errx-}
            ;;
            *'>'*)
                xspec=${outx-}
            ;;
            *'<'*)
                xspec=${inx-}
            ;;
            *)
                case $prev in 
                    2'>'*)
                        xspec=${errx-}
                    ;;
                    *'>'*)
                        xspec=${outx-}
                    ;;
                    *'<'*)
                        xspec=${inx-}
                    ;;
                esac
            ;;
        esac;
        cur="${cur##$redir}";
        _filedir $xspec;
        return 1;
    fi;
    local i skip;
    for ((i = 1; i < ${#words[@]}; 1))
    do
        if [[ ${words[i]} == $redir* ]]; then
            [[ ${words[i]} == $redir ]] && skip=2 || skip=1;
            words=("${words[@]:0:i}" "${words[@]:i+skip}");
            ((i <= cword)) && ((cword -= skip));
        else
            ((i++));
        fi;
    done;
    ((cword <= 0)) && return 1;
    prev=${words[cword - 1]};
    [[ -n ${split-} ]] && _split_longopt && split=true;
    return 0
}
_installed_modules () 
{ 
    COMPREPLY=($(compgen -W "$(PATH="$PATH:/sbin" lsmod |
        awk '{if (NR != 1) print $1}')" -- "$1"))
}
_ip_addresses () 
{ 
    local n;
    case ${1-} in 
        -a)
            n='6\?'
        ;;
        -6)
            n='6'
        ;;
        *)
            n=
        ;;
    esac;
    local PATH=$PATH:/sbin;
    local addrs=$({
        LC_ALL=C ifconfig -a || ip addr show
    } 2>/dev/null |
        command sed -e 's/[[:space:]]addr:/ /' -ne             "s|.*inet${n}[[:space:]]\{1,\}\([^[:space:]/]*\).*|\1|p");
    COMPREPLY+=($(compgen -W "$addrs" -- "${cur-}"))
}
_kernel_versions () 
{ 
    COMPREPLY=($(compgen -W '$(command ls /lib/modules)' -- "$cur"))
}
_known_hosts () 
{ 
    local cur prev words cword;
    _init_completion -n : || return;
    local options;
    [[ ${1-} == -a || ${2-} == -a ]] && options=-a;
    [[ ${1-} == -c || ${2-} == -c ]] && options+=" -c";
    _known_hosts_real ${options-} -- "$cur"
}
_known_hosts_real () 
{ 
    local configfile flag prefix="" ifs=$IFS;
    local cur suffix="" aliases i host ipv4 ipv6;
    local -a kh tmpkh=() khd=() config=();
    local OPTIND=1;
    while getopts "ac46F:p:" flag "$@"; do
        case $flag in 
            a)
                aliases='yes'
            ;;
            c)
                suffix=':'
            ;;
            F)
                configfile=$OPTARG
            ;;
            p)
                prefix=$OPTARG
            ;;
            4)
                ipv4=1
            ;;
            6)
                ipv6=1
            ;;
            *)
                echo "bash_completion: $FUNCNAME: usage error" 1>&2;
                return 1
            ;;
        esac;
    done;
    if (($# < OPTIND)); then
        echo "bash_completion: $FUNCNAME: missing mandatory argument CWORD" 1>&2;
        return 1;
    fi;
    cur=${!OPTIND};
    ((OPTIND += 1));
    if (($# >= OPTIND)); then
        echo "bash_completion: $FUNCNAME($*): unprocessed arguments:" "$(while (($# >= OPTIND)); do
                printf '%s ' ${!OPTIND}
                shift
            done)" 1>&2;
        return 1;
    fi;
    [[ $cur == *@* ]] && prefix=$prefix${cur%@*}@ && cur=${cur#*@};
    kh=();
    if [[ -v configfile ]]; then
        [[ -r $configfile ]] && config+=("$configfile");
    else
        for i in /etc/ssh/ssh_config ~/.ssh/config ~/.ssh2/config;
        do
            [[ -r $i ]] && config+=("$i");
        done;
    fi;
    local reset=$(shopt -po noglob);
    set -o noglob;
    if ((${#config[@]} > 0)); then
        for i in "${config[@]}";
        do
            _included_ssh_config_files "$i";
        done;
    fi;
    if ((${#config[@]} > 0)); then
        local IFS='
';
        tmpkh=($(awk 'sub("^[ \t]*([Gg][Ll][Oo][Bb][Aa][Ll]|[Uu][Ss][Ee][Rr])[Kk][Nn][Oo][Ww][Nn][Hh][Oo][Ss][Tt][Ss][Ff][Ii][Ll][Ee][ \t]+", "") { print $0 }' "${config[@]}" | sort -u));
        IFS=$ifs;
    fi;
    if ((${#tmpkh[@]} != 0)); then
        local j;
        for i in "${tmpkh[@]}";
        do
            while [[ $i =~ ^([^\"]*)\"([^\"]*)\"(.*)$ ]]; do
                i=${BASH_REMATCH[1]}${BASH_REMATCH[3]};
                j=${BASH_REMATCH[2]};
                __expand_tilde_by_ref j;
                [[ -r $j ]] && kh+=("$j");
            done;
            for j in $i;
            do
                __expand_tilde_by_ref j;
                [[ -r $j ]] && kh+=("$j");
            done;
        done;
    fi;
    if [[ ! -v configfile ]]; then
        for i in /etc/ssh/ssh_known_hosts /etc/ssh/ssh_known_hosts2 /etc/known_hosts /etc/known_hosts2 ~/.ssh/known_hosts ~/.ssh/known_hosts2;
        do
            [[ -r $i ]] && kh+=("$i");
        done;
        for i in /etc/ssh2/knownhosts ~/.ssh2/hostkeys;
        do
            [[ -d $i ]] && khd+=("$i"/*pub);
        done;
    fi;
    if ((${#kh[@]} + ${#khd[@]} > 0)); then
        if ((${#kh[@]} > 0)); then
            for i in "${kh[@]}";
            do
                while read -ra tmpkh; do
                    ((${#tmpkh[@]} == 0)) && continue;
                    set -- "${tmpkh[@]}";
                    [[ $1 == [\|\#]* ]] && continue;
                    [[ $1 == @* ]] && shift;
                    local IFS=,;
                    for host in $1;
                    do
                        [[ $host == *[*?]* ]] && continue;
                        host="${host#[}";
                        host="${host%]?(:+([0-9]))}";
                        COMPREPLY+=($host);
                    done;
                    IFS=$ifs;
                done < "$i";
            done;
            COMPREPLY=($(compgen -W '${COMPREPLY[@]}' -- "$cur"));
        fi;
        if ((${#khd[@]} > 0)); then
            for i in "${khd[@]}";
            do
                if [[ $i == *key_22_$cur*.pub && -r $i ]]; then
                    host=${i/#*key_22_/};
                    host=${host/%.pub/};
                    COMPREPLY+=($host);
                fi;
            done;
        fi;
        for i in ${!COMPREPLY[*]};
        do
            COMPREPLY[i]=$prefix${COMPREPLY[i]}$suffix;
        done;
    fi;
    if [[ ${#config[@]} -gt 0 && -v aliases ]]; then
        local -a hosts=($(command sed -ne 's/^[[:blank:]]*[Hh][Oo][Ss][Tt][[:blank:]]\(.*\)$/\1/p' "${config[@]}"));
        if ((${#hosts[@]} != 0)); then
            COMPREPLY+=($(compgen -P "$prefix"                 -S "$suffix" -W '${hosts[@]%%[*?%]*}' -X '\!*' -- "$cur"));
        fi;
    fi;
    if [[ -n ${COMP_KNOWN_HOSTS_WITH_AVAHI-} ]] && type avahi-browse &> /dev/null; then
        COMPREPLY+=($(compgen -P "$prefix" -S "$suffix" -W             "$(avahi-browse -cpr _workstation._tcp 2>/dev/null |
                awk -F';' '/^=/ { print $7 }' | sort -u)" -- "$cur"));
    fi;
    if type ruptime &> /dev/null; then
        COMPREPLY+=($(compgen -W             "$(ruptime 2>/dev/null | awk '!/^ruptime:/ { print $1 }')"             -- "$cur"));
    fi;
    if [[ -n ${COMP_KNOWN_HOSTS_WITH_HOSTFILE-1} ]]; then
        COMPREPLY+=($(compgen -A hostname -P "$prefix" -S "$suffix" -- "$cur"));
    fi;
    $reset;
    if [[ -v ipv4 ]]; then
        COMPREPLY=("${COMPREPLY[@]/*:*$suffix/}");
    fi;
    if [[ -v ipv6 ]]; then
        COMPREPLY=("${COMPREPLY[@]/+([0-9]).+([0-9]).+([0-9]).+([0-9])$suffix/}");
    fi;
    if [[ -v ipv4 || -v ipv6 ]]; then
        for i in "${!COMPREPLY[@]}";
        do
            [[ -n ${COMPREPLY[i]} ]] || unset -v "COMPREPLY[i]";
        done;
    fi;
    __ltrim_colon_completions "$prefix$cur"
}
_longopt () 
{ 
    local cur prev words cword split;
    _init_completion -s || return;
    case "${prev,,}" in 
        --help | --usage | --version)
            return
        ;;
        --!(no-*)dir*)
            _filedir -d;
            return
        ;;
        --!(no-*)@(file|path)*)
            _filedir;
            return
        ;;
        --+([-a-z0-9_]))
            local argtype=$(LC_ALL=C $1 --help 2>&1 | command sed -ne                 "s|.*$prev\[\{0,1\}=[<[]\{0,1\}\([-A-Za-z0-9_]\{1,\}\).*|\1|p");
            case ${argtype,,} in 
                *dir*)
                    _filedir -d;
                    return
                ;;
                *file* | *path*)
                    _filedir;
                    return
                ;;
            esac
        ;;
    esac;
    $split && return;
    if [[ $cur == -* ]]; then
        COMPREPLY=($(compgen -W "$(LC_ALL=C $1 --help 2>&1 |
            while read -r line; do
                [[ $line =~ --[A-Za-z0-9]+([-_][A-Za-z0-9]+)*=? ]] &&
                    printf '%s\n' ${BASH_REMATCH[0]}
            done)" -- "$cur"));
        [[ ${COMPREPLY-} == *= ]] && compopt -o nospace;
    else
        if [[ $1 == *@(rmdir|chroot) ]]; then
            _filedir -d;
        else
            [[ $1 == *mkdir ]] && compopt -o nospace;
            _filedir;
        fi;
    fi
}
_lstopo () 
{ 
    local INPUT_FORMAT=(xml synthetic fsroot cpuid);
    local OUTPUT_FORMAT=(console ascii fig pdf ps png svg xml synthetic);
    local TYPES=("Machine" "Misc" "Group" "NUMANode" "MemCache" "Package" "Die" "L1" "L2" "L3" "L4" "L5" "L1i" "L2i" "L3i" "Core" "Bridge" "PCIDev" "OSDev" "PU");
    local FILTERKINDS=("none" "all" "structure" "important");
    local OPTIONS=(-l --logical -p --physical --output-format --of -f --force --only -v --verbose -s --silent --distances -c --cpuset -C --cpuset-only --taskset --filter --ignore --no-caches --no-useless-caches --no-icaches --merge --no-collapse --factorize --factorize= --no-factorize --no-factorize= --restrict --restrict-flags --no-io --no-bridges --whole-io --input -i --input-format --if --no-smt --thissystem --pid --disallowed --whole-system --allow --children-order --fontsize --gridsize --linespacing --horiz --horiz= --vert --vert= --rect --rect= --text --text= --no-text --no-text= --index --index= --no-index --no-index= --attrs --attrs= --no-attrs --no-attrs= --no-legend --append-legend --binding-color --disallowed-color --top-color --export-xml-flags --export-synthetic-flags --ps --top --version -h --help);
    local cur=${COMP_WORDS[COMP_CWORD]};
    local prev=${COMP_WORDS[COMP_CWORD-1]};
    if [[ $COMP_CWORD == 1 || $cur == -* ]]; then
        COMPREPLY=(`compgen -W "${OPTIONS[*]}" -- "$cur"`);
    else
        if [[ $COMP_CWORD -ge 3 && "${COMP_WORDS[COMP_CWORD-2]}" == "--filter" && "$cur" == ":" ]]; then
            COMPREPLY=(`compgen -W "${FILTERKINDS[*]}"`);
        else
            if [[ $COMP_CWORD -ge 4 && "${COMP_WORDS[COMP_CWORD-3]}" == "--filter" && "$prev" == ":" ]]; then
                COMPREPLY=(`compgen -W "${FILTERKINDS[*]}" -- "$cur"`);
            else
                if [[ "$cur" == "=" && " --horiz --vert --rect --text --no-text --index --no-index --attrs --no-attrs --no-factorize " =~ " $prev " ]]; then
                    COMPREPLY=(`compgen -W "${TYPES[*]}"`);
                else
                    if [[ $COMP_CWORD -ge 3 && "$prev" == "=" && " --horiz --vert --rect --text --no-text --index --no-index --attrs --no-attrs --no-factorize --factorize " =~ " ${COMP_WORDS[COMP_CWORD-2]} " ]]; then
                        COMPREPLY=(`compgen -W "${TYPES[*]}" -- "$cur"`);
                    else
                        if [[ "$cur" == "=" && "--factorize" = "$prev" ]]; then
                            COMPREPLY=(`compgen -W "${TYPES[*]}"` "<N>" "<N,F,L>");
                        else
                            case "$prev" in 
                                --of | --output-format)
                                    COMPREPLY=(`compgen -W "${OUTPUT_FORMAT[*]}" -- "$cur"`)
                                ;;
                                --only | --ignore)
                                    COMPREPLY=(`compgen -W "${TYPES[*]}" -- "$cur"`)
                                ;;
                                --filter)
                                    COMPREPLY=(`compgen -W "${TYPES[*]/%/:} cache: icache: io:" -- "$cur"`) && compopt -o nospace
                                ;;
                                --restrict)
                                    COMPREPLY=(`compgen -W "binding <cpuset>" -- "$cur"`)
                                ;;
                                -i | --input)
                                    _filedir xml
                                ;;
                                --if | --input-format)
                                    COMPREPLY=(`compgen -W "${INPUT_FORMAT[*]}" -- "$cur"`)
                                ;;
                                --pid)
                                    COMPREPLY=("<pid>" "")
                                ;;
                                --allow)
                                    COMPREPLY=(`compgen -W "all local <mask> nodeset=<mask>" -- "$cur"`)
                                ;;
                                --restrict-flags | --export-xml-flags | --export-synthetic-flags | --fontsize | --gridsize | --linespacing)
                                    COMPREPLY=("<integer>" "")
                                ;;
                                --append-legend)
                                    COMPREPLY=("<line of text>" "")
                                ;;
                                --binding-color | --disallowed-color)
                                    COMPREPLY=(`compgen -W "none" -- "$cur"`)
                                ;;
                                --top-color)
                                    COMPREPLY=(`compgen -W "none <#xxyyzz>" -- "$cur"`)
                                ;;
                                --children-order)
                                    COMPREPLY=(`compgen -W "plain memoryabove" -- "$cur"`)
                                ;;
                            esac;
                        fi;
                    fi;
                fi;
            fi;
        fi;
    fi
}
_mac_addresses () 
{ 
    local re='\([A-Fa-f0-9]\{2\}:\)\{5\}[A-Fa-f0-9]\{2\}';
    local PATH="$PATH:/sbin:/usr/sbin";
    COMPREPLY+=($(
        {
            LC_ALL=C ifconfig -a || ip link show
        } 2>/dev/null | command sed -ne             "s/.*[[:space:]]HWaddr[[:space:]]\{1,\}\($re\)[[:space:]].*/\1/p" -ne             "s/.*[[:space:]]HWaddr[[:space:]]\{1,\}\($re\)[[:space:]]*$/\1/p" -ne             "s|.*[[:space:]]\(link/\)\{0,1\}ether[[:space:]]\{1,\}\($re\)[[:space:]].*|\2|p" -ne             "s|.*[[:space:]]\(link/\)\{0,1\}ether[[:space:]]\{1,\}\($re\)[[:space:]]*$|\2|p"
    ));
    COMPREPLY+=($({
        arp -an || ip neigh show
    } 2>/dev/null | command sed -ne         "s/.*[[:space:]]\($re\)[[:space:]].*/\1/p" -ne         "s/.*[[:space:]]\($re\)[[:space:]]*$/\1/p"));
    COMPREPLY+=($(command sed -ne         "s/^[[:space:]]*\($re\)[[:space:]].*/\1/p" /etc/ethers 2>/dev/null));
    COMPREPLY=($(compgen -W '${COMPREPLY[@]}' -- "$cur"));
    __ltrim_colon_completions "$cur"
}
_minimal () 
{ 
    local cur prev words cword split;
    _init_completion -s || return;
    $split && return;
    _filedir
}
_modules () 
{ 
    local modpath;
    modpath=/lib/modules/$1;
    COMPREPLY=($(compgen -W "$(command ls -RL $modpath 2>/dev/null |
        command sed -ne 's/^\(.*\)\.k\{0,1\}o\(\.[gx]z\)\{0,1\}$/\1/p')" -- "$cur"))
}
_ncpus () 
{ 
    local var=NPROCESSORS_ONLN;
    [[ $OSTYPE == *linux* ]] && var=_$var;
    local n=$(getconf $var 2>/dev/null);
    printf %s ${n:-1}
}
_parse_help () 
{ 
    eval local cmd="$(quote "$1")";
    local line;
    { 
        case $cmd in 
            -)
                cat
            ;;
            *)
                LC_ALL=C "$(dequote "$cmd")" ${2:---help} 2>&1
            ;;
        esac
    } | while read -r line; do
        [[ $line == *([[:blank:]])-* ]] || continue;
        while [[ $line =~ ((^|[^-])-[A-Za-z0-9?][[:space:]]+)\[?[A-Z0-9]+([,_-]+[A-Z0-9]+)?(\.\.+)?\]? ]]; do
            line=${line/"${BASH_REMATCH[0]}"/"${BASH_REMATCH[1]}"};
        done;
        __parse_options "${line// or /, }";
    done
}
_parse_usage () 
{ 
    eval local cmd="$(quote "$1")";
    local line match option i char;
    { 
        case $cmd in 
            -)
                cat
            ;;
            *)
                LC_ALL=C "$(dequote "$cmd")" ${2:---usage} 2>&1
            ;;
        esac
    } | while read -r line; do
        while [[ $line =~ \[[[:space:]]*(-[^]]+)[[:space:]]*\] ]]; do
            match=${BASH_REMATCH[0]};
            option=${BASH_REMATCH[1]};
            case $option in 
                -?(\[)+([a-zA-Z0-9?]))
                    for ((i = 1; i < ${#option}; i++))
                    do
                        char=${option:i:1};
                        [[ $char != '[' ]] && printf '%s\n' -$char;
                    done
                ;;
                *)
                    __parse_options "$option"
                ;;
            esac;
            line=${line#*"$match"};
        done;
    done
}
_pci_ids () 
{ 
    COMPREPLY+=($(compgen -W         "$(PATH="$PATH:/sbin" lspci -n | awk '{print $3}')" -- "$cur"))
}
_pgids () 
{ 
    COMPREPLY=($(compgen -W '$(command ps axo pgid=)' -- "$cur"))
}
_pids () 
{ 
    COMPREPLY=($(compgen -W '$(command ps axo pid=)' -- "$cur"))
}
_pnames () 
{ 
    local -a procs;
    if [[ ${1-} == -s ]]; then
        procs=($(command ps axo comm | command sed -e 1d));
    else
        local line i=-1 ifs=$IFS;
        IFS='
';
        local -a psout=($(command ps axo command=));
        IFS=$ifs;
        for line in "${psout[@]}";
        do
            if ((i == -1)); then
                if [[ $line =~ ^(.*[[:space:]])COMMAND([[:space:]]|$) ]]; then
                    i=${#BASH_REMATCH[1]};
                else
                    break;
                fi;
            else
                line=${line:i};
                line=${line%% *};
                procs+=($line);
            fi;
        done;
        if ((i == -1)); then
            for line in "${psout[@]}";
            do
                if [[ $line =~ ^[[(](.+)[])]$ ]]; then
                    procs+=(${BASH_REMATCH[1]});
                else
                    line=${line%% *};
                    line=${line##@(*/|-)};
                    procs+=($line);
                fi;
            done;
        fi;
    fi;
    COMPREPLY=($(compgen -X "<defunct>" -W '${procs[@]}' -- "$cur"))
}
_quote_readline_by_ref () 
{ 
    if [[ $1 == \'* ]]; then
        printf -v $2 %s "${1:1}";
    else
        printf -v $2 %q "$1";
    fi;
    [[ ${!2} == \$* ]] && eval $2=${!2}
}
_realcommand () 
{ 
    type -P "$1" > /dev/null && { 
        if type -p realpath > /dev/null; then
            realpath "$(type -P "$1")";
        else
            if type -p greadlink > /dev/null; then
                greadlink -f "$(type -P "$1")";
            else
                if type -p readlink > /dev/null; then
                    readlink -f "$(type -P "$1")";
                else
                    type -P "$1";
                fi;
            fi;
        fi
    }
}
_rl_enabled () 
{ 
    [[ "$(bind -v)" == *$1+([[:space:]])on* ]]
}
_root_command () 
{ 
    local PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin;
    local root_command=$1;
    _command
}
_service () 
{ 
    local cur prev words cword;
    _init_completion || return;
    ((cword > 2)) && return;
    if [[ $cword -eq 1 && $prev == ?(*/)service ]]; then
        _services;
        [[ -e /etc/mandrake-release ]] && _xinetd_services;
    else
        local sysvdirs;
        _sysvdirs;
        COMPREPLY=($(compgen -W '`command sed -e "y/|/ /" \
            -ne "s/^.*\(U\|msg_u\)sage.*{\(.*\)}.*$/\2/p" \
            ${sysvdirs[0]}/${prev##*/} 2>/dev/null` start stop' -- "$cur"));
    fi
}
_services () 
{ 
    local sysvdirs;
    _sysvdirs;
    local IFS=' 	
' reset=$(shopt -p nullglob);
    shopt -s nullglob;
    COMPREPLY=($(printf '%s\n' ${sysvdirs[0]}/!($_backup_glob|functions|README)));
    $reset;
    COMPREPLY+=($({
        systemctl list-units --full --all ||
            systemctl list-unit-files
    } 2>/dev/null |
        awk '$1 ~ /\.service$/ { sub("\\.service$", "", $1); print $1 }'));
    if [[ -x /sbin/upstart-udev-bridge ]]; then
        COMPREPLY+=($(initctl list 2>/dev/null | cut -d' ' -f1));
    fi;
    COMPREPLY=($(compgen -W '${COMPREPLY[@]#${sysvdirs[0]}/}' -- "$cur"))
}
_shells () 
{ 
    local shell rest;
    while read -r shell rest; do
        [[ $shell == /* && $shell == "$cur"* ]] && COMPREPLY+=($shell);
    done 2> /dev/null < /etc/shells
}
_signals () 
{ 
    local -a sigs=($(compgen -P "${1-}" -A signal "SIG${cur#${1-}}"));
    COMPREPLY+=("${sigs[@]/#${1-}SIG/${1-}}")
}
_split_longopt () 
{ 
    if [[ $cur == --?*=* ]]; then
        prev="${cur%%?(\\)=*}";
        cur="${cur#*=}";
        return 0;
    fi;
    return 1
}
_sysvdirs () 
{ 
    sysvdirs=();
    [[ -d /etc/rc.d/init.d ]] && sysvdirs+=(/etc/rc.d/init.d);
    [[ -d /etc/init.d ]] && sysvdirs+=(/etc/init.d);
    [[ -f /etc/slackware-version ]] && sysvdirs=(/etc/rc.d);
    return 0
}
_terms () 
{ 
    COMPREPLY+=($(compgen -W "$({
        command sed -ne 's/^\([^[:space:]#|]\{2,\}\)|.*/\1/p' /etc/termcap
        {
            toe -a || toe
        } | awk '{ print $1 }'
        find /{etc,lib,usr/lib,usr/share}/terminfo/? -type f -maxdepth 1 |
            awk -F/ '{ print $NF }'
    } 2>/dev/null)" -- "$cur"))
}
_tilde () 
{ 
    local result=0;
    if [[ ${1-} == \~* && $1 != */* ]]; then
        COMPREPLY=($(compgen -P '~' -u -- "${1#\~}"));
        result=${#COMPREPLY[@]};
        ((result > 0)) && compopt -o filenames 2> /dev/null;
    fi;
    return $result
}
_uids () 
{ 
    if type getent &> /dev/null; then
        COMPREPLY=($(compgen -W '$(getent passwd | cut -d: -f3)' -- "$cur"));
    else
        if type perl &> /dev/null; then
            COMPREPLY=($(compgen -W '$(perl -e '"'"'while (($uid) = (getpwent)[2]) { print $uid . "\n" }'"'"')' -- "$cur"));
        else
            COMPREPLY=($(compgen -W '$(cut -d: -f3 /etc/passwd)' -- "$cur"));
        fi;
    fi
}
_upvar () 
{ 
    echo "bash_completion: $FUNCNAME: deprecated function," "use _upvars instead" 1>&2;
    if unset -v "$1"; then
        if (($# == 2)); then
            eval $1=\"\$2\";
        else
            eval $1=\(\"\$"{@:2}"\"\);
        fi;
    fi
}
_upvars () 
{ 
    if ! (($#)); then
        echo "bash_completion: $FUNCNAME: usage: $FUNCNAME" "[-v varname value] | [-aN varname [value ...]] ..." 1>&2;
        return 2;
    fi;
    while (($#)); do
        case $1 in 
            -a*)
                [[ -n ${1#-a} ]] || { 
                    echo "bash_completion: $FUNCNAME:" "\`$1': missing number specifier" 1>&2;
                    return 1
                };
                printf %d "${1#-a}" &> /dev/null || { 
                    echo bash_completion: "$FUNCNAME: \`$1': invalid number specifier" 1>&2;
                    return 1
                };
                [[ -n "$2" ]] && unset -v "$2" && eval $2=\(\"\$"{@:3:${1#-a}}"\"\) && shift $((${1#-a} + 2)) || { 
                    echo bash_completion: "$FUNCNAME: \`$1${2+ }$2': missing argument(s)" 1>&2;
                    return 1
                }
            ;;
            -v)
                [[ -n "$2" ]] && unset -v "$2" && eval $2=\"\$3\" && shift 3 || { 
                    echo "bash_completion: $FUNCNAME: $1:" "missing argument(s)" 1>&2;
                    return 1
                }
            ;;
            *)
                echo "bash_completion: $FUNCNAME: $1: invalid option" 1>&2;
                return 1
            ;;
        esac;
    done
}
_usb_ids () 
{ 
    COMPREPLY+=($(compgen -W         "$(PATH="$PATH:/sbin" lsusb | awk '{print $6}')" -- "$cur"))
}
_user_at_host () 
{ 
    local cur prev words cword;
    _init_completion -n : || return;
    if [[ $cur == *@* ]]; then
        _known_hosts_real "$cur";
    else
        COMPREPLY=($(compgen -u -S @ -- "$cur"));
        compopt -o nospace;
    fi
}
_usergroup () 
{ 
    if [[ $cur == *\\\\* || $cur == *:*:* ]]; then
        return;
    else
        if [[ $cur == *\\:* ]]; then
            local prefix;
            prefix=${cur%%*([^:])};
            prefix=${prefix//\\/};
            local mycur="${cur#*[:]}";
            if [[ ${1-} == -u ]]; then
                _allowed_groups "$mycur";
            else
                local IFS='
';
                COMPREPLY=($(compgen -g -- "$mycur"));
            fi;
            COMPREPLY=($(compgen -P "$prefix" -W "${COMPREPLY[@]}"));
        else
            if [[ $cur == *:* ]]; then
                local mycur="${cur#*:}";
                if [[ ${1-} == -u ]]; then
                    _allowed_groups "$mycur";
                else
                    local IFS='
';
                    COMPREPLY=($(compgen -g -- "$mycur"));
                fi;
            else
                if [[ ${1-} == -u ]]; then
                    _allowed_users "$cur";
                else
                    local IFS='
';
                    COMPREPLY=($(compgen -u -- "$cur"));
                fi;
            fi;
        fi;
    fi
}
_userland () 
{ 
    local userland=$(uname -s);
    [[ $userland == @(Linux|GNU/*) ]] && userland=GNU;
    [[ $userland == "$1" ]]
}
_variables () 
{ 
    if [[ $cur =~ ^(\$(\{[!#]?)?)([A-Za-z0-9_]*)$ ]]; then
        if [[ $cur == '${'* ]]; then
            local arrs vars;
            vars=($(compgen -A variable -P ${BASH_REMATCH[1]} -S '}' -- ${BASH_REMATCH[3]}));
            arrs=($(compgen -A arrayvar -P ${BASH_REMATCH[1]} -S '[' -- ${BASH_REMATCH[3]}));
            if ((${#vars[@]} == 1 && ${#arrs[@]} != 0)); then
                compopt -o nospace;
                COMPREPLY+=(${arrs[*]});
            else
                COMPREPLY+=(${vars[*]});
            fi;
        else
            COMPREPLY+=($(compgen -A variable -P '$' -- "${BASH_REMATCH[3]}"));
        fi;
        return 0;
    else
        if [[ $cur =~ ^(\$\{[#!]?)([A-Za-z0-9_]*)\[([^]]*)$ ]]; then
            local IFS='
';
            COMPREPLY+=($(compgen -W '$(printf %s\\n "${!'${BASH_REMATCH[2]}'[@]}")'             -P "${BASH_REMATCH[1]}${BASH_REMATCH[2]}[" -S ']}' -- "${BASH_REMATCH[3]}"));
            if [[ ${BASH_REMATCH[3]} == [@*] ]]; then
                COMPREPLY+=("${BASH_REMATCH[1]}${BASH_REMATCH[2]}[${BASH_REMATCH[3]}]}");
            fi;
            __ltrim_colon_completions "$cur";
            return 0;
        else
            if [[ $cur =~ ^\$\{[#!]?[A-Za-z0-9_]*\[.*\]$ ]]; then
                COMPREPLY+=("$cur}");
                __ltrim_colon_completions "$cur";
                return 0;
            else
                case ${prev-} in 
                    TZ)
                        cur=/usr/share/zoneinfo/$cur;
                        _filedir;
                        for i in "${!COMPREPLY[@]}";
                        do
                            if [[ ${COMPREPLY[i]} == *.tab ]]; then
                                unset 'COMPREPLY[i]';
                                continue;
                            else
                                if [[ -d ${COMPREPLY[i]} ]]; then
                                    COMPREPLY[i]+=/;
                                    compopt -o nospace;
                                fi;
                            fi;
                            COMPREPLY[i]=${COMPREPLY[i]#/usr/share/zoneinfo/};
                        done;
                        return 0
                    ;;
                    TERM)
                        _terms;
                        return 0
                    ;;
                    LANG | LC_*)
                        COMPREPLY=($(compgen -W '$(locale -a 2>/dev/null)'                     -- "$cur"));
                        return 0
                    ;;
                esac;
            fi;
        fi;
    fi;
    return 1
}
_xfunc () 
{ 
    set -- "$@";
    local srcfile=$1;
    shift;
    declare -F $1 &> /dev/null || __load_completion "$srcfile";
    "$@"
}
_xinetd_services () 
{ 
    local xinetddir=${BASHCOMP_XINETDDIR:-/etc/xinetd.d};
    if [[ -d $xinetddir ]]; then
        local IFS=' 	
' reset=$(shopt -p nullglob);
        shopt -s nullglob;
        local -a svcs=($(printf '%s\n' $xinetddir/!($_backup_glob)));
        $reset;
        ((!${#svcs[@]})) || COMPREPLY+=($(compgen -W '${svcs[@]#$xinetddir/}' -- "${cur-}"));
    fi
}
colors () 
{ 
    local fgc bgc vals seq0;
    printf "Color escapes are %s\n" '\e[${value};...;${value}m';
    printf "Values 30..37 are \e[33mforeground colors\e[m\n";
    printf "Values 40..47 are \e[43mbackground colors\e[m\n";
    printf "Value  1 gives a  \e[1mbold-faced look\e[m\n\n";
    for fgc in {30..37};
    do
        for bgc in {40..47};
        do
            fgc=${fgc#37};
            bgc=${bgc#40};
            vals="${fgc:+$fgc;}${bgc}";
            vals=${vals%%;};
            seq0="${vals:+\e[${vals}m}";
            printf "  %-9s" "${seq0:-(default)}";
            printf " ${seq0}TEXT\e[m";
            printf " \e[${vals:+${vals+$vals;}}1mBOLD\e[m";
        done;
        echo;
        echo;
    done
}
dequote () 
{ 
    eval printf %s "$1" 2> /dev/null
}
ex () 
{ 
    if [ -f $1 ]; then
        case $1 in 
            *.tar.bz2)
                tar xjf $1
            ;;
            *.tar.gz)
                tar xzf $1
            ;;
            *.bz2)
                bunzip2 $1
            ;;
            *.rar)
                unrar x $1
            ;;
            *.gz)
                gunzip $1
            ;;
            *.tar)
                tar xf $1
            ;;
            *.tbz2)
                tar xjf $1
            ;;
            *.tgz)
                tar xzf $1
            ;;
            *.zip)
                unzip $1
            ;;
            *.Z)
                uncompress $1
            ;;
            *.7z)
                7z x $1
            ;;
            *)
                echo "'$1' cannot be extracted via ex()"
            ;;
        esac;
    else
        echo "'$1' is not a valid file";
    fi
}
msdos_pwd () 
{ 
    local dir="`pwd`";
    echo $dir | tr '/' '\\'
}
quote () 
{ 
    local quoted=${1//\'/\'\\\'\'};
    printf "'%s'" "$quoted"
}
quote_readline () 
{ 
    local ret;
    _quote_readline_by_ref "$1" ret;
    printf %s "$ret"
}

As one can see “XDG_VTNR” is where the garbage starts, and as it’s said to be PAM related, there we got the reason for the sudo problem, I assume.
LC_ALL is inmidst of the script that somehow got copied into the environment variables, so this probably also explains the locale problem.

What happened there? How can I resolve it?

There were a number of these locale issues after the last update (or the one before?), mostly owing to a failure to attend to .pacnew files. Have you tried the solutions suggested here?

It is recommended to have have en_US.UTF-8 UTF-8 enabled as fallback locale.

If you look at the last two lines in your locale.gen file - they are commented now - my guess it is an afterthought or a troubleshooting test.

Have yo tried removing the quoting in your locale.conf?

Run localectl before and after removal of the quotes "

Hello, yes I checked my locale.gen und rebuild the locales.

Sorry, I forgot to mention that I removed the english fallback, because I hoped I could force the OS to use German by doing so :hot_face:
I will reinstall english.

trying to follow your instructions:
my locale.conf looks like this:
cat /etc/locale.conf
LANG=de.DE.UTF-8
LC_MESSAGES=de_DE.utf8

There are no quotes.
Do you mean locale.gen?
“de_DE.UTF-8 UTF-8” is in there twice for some reason. The upper one is uncommented.
What do you think about this huge script which somehow creeped into my ENV? I think this might disturb anything which requires some variables.
Thank you All! :slight_smile:

Actually that doesn’t look right: both should changed into de_DE.UTF-8.
Don’t forget to check /etc/locale.gen for that locale to be uncommented.

1 Like

Many thanks!
This was it!
No idea how this could become wrong. Didn’t see the “_” was a “.” in about 10 times I looked at that file!

I reinstalled the english UTF locales. But do I need to do anything else, to make them ‘fallback’?

Now there’s another thing left, since these strange happenings from that fatal reboot: The weird ENV setup. Think I should probably open another thread for this, though…

Good catch @freggel.doe

@Immswei
I don’t use bash as shell - but it looks like bash-completion to me - on the other hand - it could as well be the manjaro-zsh-config

on my system _ works like this

$ _ pacman -Syu

Which shell are you using?

cat /etc/passwd | grep $USER

Looking even closer - I think what you are seeing is in fact zsh extensions.

Let’s ask @Chrysostomus which is the maintainer of manjaro-zsh-profile.

1 Like

Hello!

Sorry, I didn’t get what you are trying to tell me by this:

on my system **_** works like this

```
$ _ pacman -Syu
```

I don’t know what the _ does.

Yes, I am using bash:
echo $SHELL
/bin/bash

cat /etc/passwd | grep $USER
ladmin:x:1000:1001:ladmin:/home/ladmin:/bin/bash

This blown ENV issue occurs on the root account as well.

zsh-completion is not installed on my system, but bash-completion is. I will try removing bash-completion.

After removing bash-completion the remains of all this “ENV-Script-thing” have become much smaller:

_=echo
colors () 
{ 
    local fgc bgc vals seq0;
    printf "Color escapes are %s\n" '\e[${value};...;${value}m';
    printf "Values 30..37 are \e[33mforeground colors\e[m\n";
    printf "Values 40..47 are \e[43mbackground colors\e[m\n";
    printf "Value  1 gives a  \e[1mbold-faced look\e[m\n\n";
    for fgc in {30..37};
    do
        for bgc in {40..47};
        do
            fgc=${fgc#37};
            bgc=${bgc#40};
            vals="${fgc:+$fgc;}${bgc}";
            vals=${vals%%;};
            seq0="${vals:+\e[${vals}m}";
            printf "  %-9s" "${seq0:-(default)}";
            printf " ${seq0}TEXT\e[m";
            printf " \e[${vals:+${vals+$vals;}}1mBOLD\e[m";
        done;
        echo;
        echo;
    done
}
ex () 
{ 
    if [ -f $1 ]; then
        case $1 in 
            *.tar.bz2)
                tar xjf $1
            ;;
            *.tar.gz)
                tar xzf $1
            ;;
            *.bz2)
                bunzip2 $1
            ;;
            *.rar)
                unrar x $1
            ;;
            *.gz)
                gunzip $1
            ;;
            *.tar)
                tar xf $1
            ;;
            *.tbz2)
                tar xjf $1
            ;;
            *.tgz)
                tar xzf $1
            ;;
            *.zip)
                unzip $1
            ;;
            *.Z)
                uncompress $1
            ;;
            *.7z)
                7z x $1
            ;;
            *)
                echo "'$1' cannot be extracted via ex()"
            ;;
        esac;
    else
        echo "'$1' is not a valid file";
    fi
}
msdos_pwd () 
{ 
    local dir="`pwd`";
    echo $dir | tr '/' '\\'
}

What is left looks like it could come from this Windows95-theme that I installed months, ago (because there’s an ‘msdos’ in).

Now, after seing that bash-completion and this stuff where both ‘in’ ENV, I wonder:
Is this syntactically correct? I though these huge multiline things where bogus in general. Or is it normal for such huge multiline constructions to reside in one ENV variable?

I have no idea - but the colors function is in your ~/.bashrc - and ~/.bashrc is sourced when you open a terminal.

So check that file and maybe the parent in /etc - to see where it comes from.

But I am fairly sure - as you point out yourself - spotting the msdos thing (I did too) - it is something added by some scripts you have been played with.

I can’t recall ever having seen a env block like yours :slight_smile: but I haven’t seen everything either.

1 Like

It as an alias for sudo

Which indicates you need to check

  • /ect/profile
  • /etc/profiles.d (folder)
  • /etc/bash.bashrc

for source statements - be aware they can be starting with a . space filename

1 Like

There is rather much in my profile.d:

ls -al
insgesamt 88
drwxr-xr-x   2 root root  4096  8. Sep 15:17 .
drwxr-xr-x 121 root root 12288 23. Sep 10:59 ..
-rw-r--r--   1 root root   225  3. Jul 14:52 flatpak-bindir.sh
-rw-r--r--   1 root root   813  3. Jul 14:52 flatpak.sh
-rw-r--r--   1 root root   545  9. Mai 20:05 freetype2.sh
-rw-r--r--   1 root root  1107 15. Apr 08:38 gawk.csh
-rw-r--r--   1 root root   757 15. Apr 08:38 gawk.sh
-rwxr-xr-x   1 root root   105 13. Nov 2019  gpm.sh
-rwxr-xr-x   1 root root    37 21. Mai 09:30 home-local-bin.sh
-rw-r--r--   1 root root   207 16. Mai 11:30 jre.csh
-rw-r--r--   1 root root   205 16. Mai 11:30 jre.sh
-rwxr-xr-x   1 root root   766 21. Mai 09:30 locale.sh
-rwxr-xr-x   1 root root    50 16. Mai 12:56 mozilla-common.csh
-rwxr-xr-x   1 root root    50 16. Mai 12:56 mozilla-common.sh
-rw-r--r--   1 root root   468 21. Jun 11:19 perlbin.csh
-rw-r--r--   1 root root   455 21. Jun 11:19 perlbin.sh
-rw-r--r--   1 root root   847 25. Aug 19:48 snapd.sh
-rw-r--r--   1 root root   962 29. Mai 23:14 vte.csh
-rw-r--r--   1 root root  1364 29. Mai 23:14 vte.sh

So I did it like this:

cat * |grep source
cat * |grep foreground (as this is a string in my ENV)

There where no results. So it’s sure to say, that there’s neither a source reference nor the script itself in any of the files there, right?

I also opened bash.bashrc and /etc/profile manually and could not find any of these.

I will check that Theme archive if I can find hints on how it might have caused this.

PS:
Of course, as anything seems to be working at the moment, this might aswell be allright, right?
How could I confirm that my ENV is syntactically OK? Because if it is, then it might possibly intended to be like this…

I am not sure how to read the outout of ‘set’ correctly, as I always thought it only could be an accumulation of onel iners, each starting with an XYZ=…
So, is the whole script-block at the end a an allocation to the underscore?

There is nothing looking out of order as such - they look just like a default Manjaro with flatpak and snap support.

I have no ideas beyond the files I mention bashrc and profile and your local versions as well.

Out of curiosity - I switched shell - and besides a few details - the env is pretty much the same

bash ENV block
SHELL=/bin/bash
WINDOWID=39845891
COLORTERM=truecolor
LC_ADDRESS=da_DK.UTF-8
LC_NAME=da_DK.UTF-8
XDG_CONFIG_HOME=/home/fh/.config
DESKTOP_SESSION=/usr/bin/openbox-session
LC_MONETARY=da_DK.UTF-8
EDITOR=/usr/bin/nano
GTK_MODULES=canberra-gtk-module
XDG_SEAT=seat0
PWD=/home/fh
LOGNAME=fh
QT_QPA_PLATFORMTHEME=qt5ct
XDG_SESSION_TYPE=x11
XAUTHORITY=/home/fh/.Xauthority
MOTD_SHOWN=pam
GTK2_RC_FILES=/home/fh/.gtkrc-2.0
HOME=/home/fh
LC_PAPER=da_DK.UTF-8
LANG=en_DK.UTF-8
XDG_CURRENT_DESKTOP=XFCE
VTE_VERSION=5602
INVOCATION_ID=6b333637bb844097a6cf1457fa12fa6a
DE=xfce
XDG_SESSION_CLASS=user
LC_IDENTIFICATION=da_DK.UTF-8
TERM=xterm-termite
USER=fh
VISUAL=/usr/bin/nano
DISPLAY=:0
SHLVL=1
LC_TELEPHONE=da_DK.UTF-8
LC_MEASUREMENT=da_DK.UTF-8
XDG_VTNR=7
XDG_SESSION_ID=1
XDG_RUNTIME_DIR=/run/user/1000
LC_TIME=da_DK.UTF-8
JOURNAL_STREAM=8:17994
XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/desktop
PATH=/home/fh/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/var/lib/snapd/snap/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
MAIL=/var/spool/mail/fh
LC_NUMERIC=da_DK.UTF-8
_=/usr/bin/env
zsh ENV block (my usual)
DE=xfce
COLORTERM=truecolor
TERM=xterm-termite
LANG=en_DK.UTF-8
XDG_CURRENT_DESKTOP=XFCE
PATH=/home/fh/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/var/lib/snapd/snap/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl
LC_IDENTIFICATION=da_DK.UTF-8
USER=fh
DESKTOP_SESSION=/usr/bin/openbox-session
XDG_CONFIG_HOME=/home/fh/.config
LC_MEASUREMENT=da_DK.UTF-8
HOME=/home/fh
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
XDG_VTNR=7
XDG_SEAT=seat0
LC_NUMERIC=da_DK.UTF-8
GTK_MODULES=canberra-gtk-module
XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/desktop
VTE_VERSION=5602
JOURNAL_STREAM=8:17994
LC_TIME=da_DK.UTF-8
MAIL=/var/spool/mail/fh
LOGNAME=fh
VISUAL=/usr/bin/nano
LC_PAPER=da_DK.UTF-8
XDG_RUNTIME_DIR=/run/user/1000
WINDOWID=39845891
SHELL=/usr/bin/zsh
XDG_SESSION_TYPE=x11
LC_MONETARY=da_DK.UTF-8
GTK2_RC_FILES=/home/fh/.gtkrc-2.0
LC_TELEPHONE=da_DK.UTF-8
EDITOR=/usr/bin/nano
XDG_SESSION_ID=3
MOTD_SHOWN=pam
INVOCATION_ID=6b333637bb844097a6cf1457fa12fa6a
SHLVL=1
XAUTHORITY=/home/fh/.Xauthority
QT_QPA_PLATFORMTHEME=qt5ct
PWD=/home/fh
DISPLAY=:0
XDG_SESSION_CLASS=user
LC_NAME=da_DK.UTF-8
LC_ADDRESS=da_DK.UTF-8
OLDPWD=/home/fh
ZSH=/home/fh/.oh-my-zsh
PAGER=less
LESS=-R
LSCOLORS=Gxfxcxdxbxegedabagacad
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:
VIRTUALENVWRAPPER_PROJECT_FILENAME=.project
VIRTUALENVWRAPPER_WORKON_CD=1
VIRTUALENVWRAPPER_SCRIPT=/usr/bin/virtualenvwrapper.sh
WORKON_HOME=/home/fh/.virtualenvs
VIRTUALENVWRAPPER_HOOK_DIR=/home/fh/.virtualenvs
NVM_DIR=/home/fh/.config/nvm
_=/usr/bin/env

I just noticed a strange behaviour:
The underscore as output by ‘set’ changes dynamically, as it’s always the sane as the last command I entered.
So if, for example, I enter ‘foo’ and then issue a ‘set’ command, it will output:
_=foo

Then that ‘colors ()’ procedure comes as ‘usual’.
So there has to be something active running in background on any command which will assign any of my inputs to the underscore ENV
.
I would now try to do a brute force search, on where this ‘msdos’ and the other scripting stuff comes from on my drive.
Something like:
grep -r “msdos_pwd” /. > results.txt
But as this will always hang somewhere in /proc and probably also in /dev, I will try to do it for each important path distictively (like /etc, /home and such).

Nice idea, with the zsh.
I tried, and in zsh ENV looks normal! So at least we now know it’s a bash thing.

It seems that my crude try in finding the reason with grep, seemed to have some success:
I found the msdos_pwd and a manifestation of that colors () procedure other stuff in my user’s .bashrc

It’s not in /etc/bash.bashrc, but still root’s ENV seems to be affected as well. Maybe it’s just because ENV was inherited when I switched to root using ‘su’ or ‘sudo su’?

Anyways, the user’s .bashrc looks like this:
(How can I insert the spoilers as you did?)

cat .bashrc 
#
# ~/.bashrc
#

[[ $- != *i* ]] && return

colors() {
	local fgc bgc vals seq0

	printf "Color escapes are %s\n" '\e[${value};...;${value}m'
	printf "Values 30..37 are \e[33mforeground colors\e[m\n"
	printf "Values 40..47 are \e[43mbackground colors\e[m\n"
	printf "Value  1 gives a  \e[1mbold-faced look\e[m\n\n"

	# foreground colors
	for fgc in {30..37}; do
		# background colors
		for bgc in {40..47}; do
			fgc=${fgc#37} # white
			bgc=${bgc#40} # black

			vals="${fgc:+$fgc;}${bgc}"
			vals=${vals%%;}

			seq0="${vals:+\e[${vals}m}"
			printf "  %-9s" "${seq0:-(default)}"
			printf " ${seq0}TEXT\e[m"
			printf " \e[${vals:+${vals+$vals;}}1mBOLD\e[m"
		done
		echo; echo
	done
}

[ -r /usr/share/bash-completion/bash_completion ] && . /usr/share/bash-completion/bash_completion

# Change the window title of X terminals
case ${TERM} in
	xterm*|rxvt*|Eterm*|aterm|kterm|gnome*|interix|konsole*)
		PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/\~}\007"'
		;;
	screen*)
		PROMPT_COMMAND='echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/\~}\033\\"'
		;;
esac

use_color=true

# Set colorful PS1 only on colorful terminals.
# dircolors --print-database uses its own built-in database
# instead of using /etc/DIR_COLORS.  Try to use the external file
# first to take advantage of user additions.  Use internal bash
# globbing instead of external grep binary.
safe_term=${TERM//[^[:alnum:]]/?}   # sanitize TERM
match_lhs=""
[[ -f ~/.dir_colors   ]] && match_lhs="${match_lhs}$(<~/.dir_colors)"
[[ -f /etc/DIR_COLORS ]] && match_lhs="${match_lhs}$(</etc/DIR_COLORS)"
[[ -z ${match_lhs}    ]] \
	&& type -P dircolors >/dev/null \
	&& match_lhs=$(dircolors --print-database)
[[ $'\n'${match_lhs} == *$'\n'"TERM "${safe_term}* ]] && use_color=true

if ${use_color} ; then
	# Enable colors for ls, etc.  Prefer ~/.dir_colors #64489
	if type -P dircolors >/dev/null ; then
		if [[ -f ~/.dir_colors ]] ; then
			eval $(dircolors -b ~/.dir_colors)
		elif [[ -f /etc/DIR_COLORS ]] ; then
			eval $(dircolors -b /etc/DIR_COLORS)
		fi
	fi

	if [[ ${EUID} == 0 ]] ; then
		PS1='\[\033[01;31m\][\h\[\033[01;36m\] \w\[\033[01;31m\]]\$\[\033[00m\] '
	else
		PS1='\[\033[01;32m\][\u@\h\[\033[01;37m\] \w\[\033[01;32m\]]\$\[\033[00m\] '
	fi

	alias ls='ls --color=auto'
	alias grep='grep --colour=auto'
	alias egrep='egrep --colour=auto'
	alias fgrep='fgrep --colour=auto'
else
	if [[ ${EUID} == 0 ]] ; then
		# show root@ when we don't have colors
		PS1='\u@\h \W \$ '
	else
		PS1='\u@\h \w \$ '
	fi
fi

unset use_color safe_term match_lhs sh

alias cp="cp -i"                          # confirm before overwriting something
alias df='df -h'                          # human-readable sizes
alias free='free -m'                      # show sizes in MB
alias np='nano -w PKGBUILD'
alias more=less

xhost +local:root > /dev/null 2>&1

complete -cf sudo

# Bash won't get SIGWINCH if another process is in the foreground.
# Enable checkwinsize so that bash will check the terminal size when
# it regains control.  #65623
# http://cnswww.cns.cwru.edu/~chet/bash/FAQ (E11)
shopt -s checkwinsize

shopt -s expand_aliases

# export QT_SELECT=4

# Enable history appending instead of overwriting.  #139609
shopt -s histappend

#
# # ex - archive extractor
# # usage: ex <file>
ex ()
{
  if [ -f $1 ] ; then
    case $1 in
      *.tar.bz2)   tar xjf $1   ;;
      *.tar.gz)    tar xzf $1   ;;
      *.bz2)       bunzip2 $1   ;;
      *.rar)       unrar x $1     ;;
      *.gz)        gunzip $1    ;;
      *.tar)       tar xf $1    ;;
      *.tbz2)      tar xjf $1   ;;
      *.tgz)       tar xzf $1   ;;
      *.zip)       unzip $1     ;;
      *.Z)         uncompress $1;;
      *.7z)        7z x $1      ;;
      *)           echo "'$1' cannot be extracted via ex()" ;;
    esac
  else
    echo "'$1' is not a valid file"
  fi
}
# Emulate an MS-DOS prompt in your Linux shell.
# Laszlo Szathmary (jabba.laci@gmail.com), 2011
# Project home page:
# https://ubuntuincident.wordpress.com/2011/02/08/emulate-the-ms-dos-prompt/
#
#
# Modified by Soldier of Fortran
#
# Add to you ~/.bashrc file with: 'source ~/.themes/95/bashrc'

function msdos_pwd
{
    local dir="`pwd`"

    echo $dir | tr '/' '\\'
}

export PS1='C:`msdos_pwd`> '

echo 
echo
echo "Microsoft(R) Windows 95"
echo "   (C)Copyright Microsoft Corp 1981-1996."
echo

Seems like there where some bash-completion remnants left, despite I uninstalled the package a few hours, ago?
And of course all that ‘msdos’ stuff…
I noticed that this colors() procedure is formatted differently, when comparing the output of ‘set’ to .bashrc, for example there’s no space between colors and the parentheses in .bashrc, but there’s a space when output by set.
the msdos thing seems to be workign fine, btw.
My prompt looks like:" C:\home\ladmin> ".
But I think the colors () shouldn’t be in ENV, should it? So probably there’s something wrong with this.
PS: I just found that the colors() procedure is part of Manjaro’s .bashrc
So is it visible at your’s too, in 'set’s output?

click the :gear: icon in the post toolbar -> Hide details - which creates this

[details="Summary"]
This text will be hidden
[/details]

Another way to see how others are creating the content they do is by using the link to the topic - can be found clicking the chain and modifying it like this

https://forum.manjaro.org/raw/27192/18
1 Like

When you execute an ‘set’ command, does it return this colors() snippet, in the output too?

^Just this one, please xD