Kuba Kodzi

1. Upewnij się, że manifest.json zawiera takie pole:

  "browser_specific_settings": {
    "gecko": {
      "id": "my-extension@my-domain.tld"
    }
  }

Bez tego możesz dostawać error że this extension “appears to be corrupt”

2. w about:config ustaw xpinstall.signatures.required na false

3. Zainstaluj web-ext (https://www.npmjs.com/package/web-ext)

4. Przejdź do katalogu z kodem wtyczki i odpal web-ext build

5. Przejdź w FF do about:addons i przeciągnij tam zip-a wykonanego w poprzednim kroku

Ostatnio skróty zachowywały mi się nieposłusznie z Emacsem, więc chciałem odpiąć gnome'owy skrót super+1 i podpiąć go do mojej komendy raisewindow. Na pomoc przyszedł stack exchange z odpowiedzią:

for i in {1..9}; do gsettings set org.gnome.shell.keybindings switch-to-application-$i "[]";done

https://askubuntu.com/questions/1294130/how-can-i-unbind-super1-2-3-from-opening-apps

  1. Zainstaluj manjaro używając przy instalacji opcji “encrypt system”.
  2. Zaloguj się do systemu i zainstaluj systemd-boot
  3. Utwórz plik /boot/efi/loader/entries/manjaro.conf i daj mu treść:
title   Arch Linux
linux   /vmlinuz-5.10-x86_64
initrd  /intel-ucode.img
initrd  /initramfs-5.10-x86_64.img
options root=UUID={LUKS_ROOT_UUID} rw cryptdevice=UUID={MAIN_PARTITION_UUID}:luks-{MAIN_PARTITION_UUID} root=/dev/mapper/luks-{MAIN_PARTITION_UUID} resume=/dev/mapper/luks-{SWAP_UUID}

Sprawdź, jak dokładnie nazywa się plik vmlinuz* za pomocą ls /boot/efi/

Jeżeli korzystasz z AMD, to zamiast intel-ucode użyj amd-ucode

{LUKS_ROOT_UUID} zastąp UUID partycji luksowej, przypiętej do /dev/mapper/*, typu ext4. Znajdziesz ją za pomocą sudo blkid

{MAIN_PARTITION_UUID} zastąp id partycji, na której jest zaszyfrowany luksem volumen z rootem systemu (u mnie do było UUID partycji /dev/sda2).

{SWAP_UUID} zastąp id partycji, na której jest SWAP (u mnie to było /dev/sda3).

Następnie sprawdź za pomocą bootctl list, czy wszystko jest ok – jeżeli pokazuje się (No such file or directory) przy jakimś pliku, to przekopiuj ten plik z /boot/ do /boot/efi.

Jeżeli coś nie gra z parametrami, to wybierz z firmware'owego boot menu GRUB-owy bootloader (u mnie był wciąż widoczny jako opcja MANJARO), przytrzymaj shift i podejrzyj, z jakich parametrów kernela korzystał GRUB.

Może się okazać, że systemd odpala system i nie pyta o hasło do deszyfrowania.... może być tak dlatego, że partycja ma dwa klucze szyfrujące. Jeden z nich.. działa bez hasła? Nie wiem, jak to ma niby być bezpieczne, więc ten klucz usunąłem:

sudo cryptsetup luksKillSlot /dev/sda2 1

EDIT: dużo wyjaśniło się w tym wątku: https://forum.manjaro.org/t/why-does-the-installer-add-a-paswordless-key-to-luks-encrypted-partition/76551/18


Jeżeli po aktualizacji systemu nie działa ci wczytywanie po systemd-boot (Failed to start Load Kernel Modules), to włącz się przez GRUB-a i skopiuj na nowo pliki z modułami:

sudo cp /boot/vmlinuz-5.10-x86_64 /boot/efi
sudo cp /boot/initramfs-5.10-x86_64.img /boot/efi

Objaw:

Maildir error: duplicate UID 2.

Przy uruchamianiu mbsync.

  1. Ustaw mu4e tak, aby nie powodowało duplikowania UID:
(setq mu4e-change-filenames-when-moving t)
  1. Rozwiąż aktualnie istniejące problemy z duplikatami:

Utwórz gdzieś w $PATH plik unuid.sh:

#!/bin/bash

# removes mbsync uid data from the filename so it can create a new uid for it
# see https://blog.kuba-orlik.name/kodzi/rozwiazanie-problemu-ze-zduplikowanymi-uid-w-mbsync-isync-mu4e

FUID=$1

if [ "$1" = "" ] ; then
  echo "No FUID given!";
  exit 1;
fi;

FILES=$(find . | grep ",U=$FUID")

while IFS= read -r FILE; do
   FILE_ABS="$(pwd)/$FILE"

   NEW_FILE_ABS=$(echo "$FILE_ABS" | sed 's/,U=.*//')

   echo mv "$FILE_ABS" "$NEW_FILE_ABS"
   mv "$FILE_ABS" "$NEW_FILE_ABS"
done <<< "$FILES"

Następnie znajdź wszystkie zduplikowane UID:

# (należy wykonać w ramach jednego folderu, nie np. tylko w katalogu /cur
$ find cur new -type f | awk -F,U= '{print $2}' | awk -F: '{print $1}' | sort | uniq -d

Za pomocą xargs odpal unuid.sh dla każdego ze zduplikowanych uid:

$ find  cur new  -type f | awk -F,U= '{print $2}' | awk -F: '{print $1}' | sort | uniq -d |
    xargs -L 1 unuid.sh

Wykonaj ponownie synchronizację mbsync-iem. Powinno teraz być ok.


Jeżeli dostajesz error

Maildir error: UID 123 is beyond highest assigner UID 12

To sprawdź, w jakim katalogu znajduje się ten plik, przejdź do tego katalogu i odpal

unuid.sh 123

I tak do skutku. Jak idków jest dużo, to możesz wykonać obydwa te kroki przy pomocy jednej komendy:

# będąc w katalogu, w którym są te duplikaty
$ mbsync -c ~/configs/mbsync channel-który-robi-kłopot  |& grep  'error' | grep -o -E '[0-9]+ is beyond' | sed 's/ is beyond//' | xargs -I {} unuid.sh {}

FILES=$(ls -1 .)
while IFS= read -r FILE; do
   echo $FILE;
done <<< "$FILES"

  1. Ustaw w gicie URL repozytorium na
ssh://git@domena.com:port/diffusion/CALLSIGN.git

(czasami url jest ustawiony na ssh://git@domena.com:port/diffusion/CALLSIGN/krotkanazwa.git) i wtedy browse-at-remote się gubi

1. Find out the ID of your field

The clue is that the fields have a seemingly-random name in the database. If you name your field “peopletoblame”, you can't easily filter by people_to_blame.

A dirty way to find out the id of the field is to add

var_dump($map);

in the first line of the buildQueryFromParameters function in phabricator/src/applications/maniphest/query/ManiphestTaskSearchEngine.php.

Then, perform a search on tasks and enter a value to your custom field in Maniphest search. New output will show up on the top of the screen:

Unexpected output:

array(30) {
  ["assignedPHIDs"]=>
  array(0) {
  }
  ["authorPHIDs"]=>
  array(0) {
  }
  ["statuses"]=>
  array(1) {
    [0]=>
    string(4) "open"
  }
  ["priorities"]=>
  array(0) {
  }
  ["subtypes"]=>
  array(0) {
  }
  ["columnPHIDs"]=>
  array(0) {
  }
  ["hasParents"]=>
  NULL
  ["hasSubtasks"]=>
  NULL
  ["parentIDs"]=>
  array(0) {
  }
  ["subtaskIDs"]=>
  array(0) {
  }
  ["group"]=>
  string(8) "priority"
  ["createdStart"]=>
  NULL
  ["createdEnd"]=>
  NULL
  ["modifiedStart"]=>
  NULL
  ["modifiedEnd"]=>
  NULL
  ["closedStart"]=>
  NULL
  ["closedEnd"]=>
  NULL
  ["closerPHIDs"]=>
  array(0) {
  }
  ["limit"]=>
  string(0) ""
  ["query"]=>
  string(0) ""
  ["ids"]=>
  array(0) {
  }
  ["phids"]=>
  array(0) {
  }
  ["subscriberPHIDs"]=>
  array(0) {
  }
  ["projectPHIDs"]=>
  array(0) {
  }
  ["spacePHIDs"]=>
  array(0) {
  }
  ["custom:wed0ni_vpOng"]=>
  array(0) {
  }
  ["custom:cbKyJ_0NwbeQ"]=>
  array(0) {
  }
  ["custom:Nyt0lw_r_2JS"]=>
  array(0) {
  }
  ["custom:Cgs.Ovu49H71"]=>
  array(1) {
    [0]=>
    string(30) "PHID-USER-ukyz5wmn4566anlt4stm"
  }
  ["order"]=>
  string(8) "priority"
}

Find the custom field id there.

Then, you can add the field to another query by adding:

->setParameter('custom:Cgs.Ovu49H71', array($viewer_phid))

in, for example, function buildSavedQueryFromBuiltin inside src/applications/maniphest/query/ManiphestTaskSearchEngine.php

Napotkałem problem, gdzie słuchawki bluetooth dawały koszmarną jakość dźwięku w słuchawkach, gdy włączało się je w trybie z włączonym mikrofonem. Dodatkowo dźwięk przychodzący z mikrofonu był bardzo cichy.

Otwórz jako sudo plik /usr/share/pipewire/media-session.d/bluez-monitor.conf i ustaw:

properties = {
    bluez5.msbc-support   = true  
    ...
}
...
rules = [
  ...
  actions = {
    ...
    update-props = {
     ...
     bluez5.msbc-support = true
...

Następnie w ustawieniach audio lub pavucontrol wybierz profil (HSP/HFP, codec mSBC)

Do poczytania: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/776

Znajdź id swojego urządzenia na liście:

pw-cli ls

(U mnie to było 59)

pw-cli e 59 EnumProfile

Wyskoczy lista profili. Aby potem włączyć określony profil:

pactl set-card-profile "$(/home/kuba/bin/find-bt-headphones.sh)" headset-head-unit-msbc 

(zaciągnięte z https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Migrate-PulseAudio#pactl)

Bonus tip: znajdowanie id karty dźwiękowej po jej nazwie grepem:

pactl list | grep 'device.alias = “Nazwa Karty”' -B 10 | head -n 1 | sed 's/[^0-9]//g'