Init with current docs
authorNiki Roo <niki@nikiroo.be>
Wed, 3 Jul 2024 12:30:32 +0000 (14:30 +0200)
committerNiki Roo <niki@nikiroo.be>
Wed, 3 Jul 2024 12:30:32 +0000 (14:30 +0200)
Le droit d'asile pour les nuls.md [new file with mode: 0644]
Phone/Framagenda.md [new file with mode: 0644]
color-theme.md [new file with mode: 0644]
git.md [new file with mode: 0644]
index.md [new file with mode: 0644]
mkdocs/mkdocs.yml [new file with mode: 0644]
mkdocs/update.sh [new file with mode: 0755]
mp4.md [new file with mode: 0644]
scaling.md [new file with mode: 0644]
web-css.md [new file with mode: 0644]

diff --git a/Le droit d'asile pour les nuls.md b/Le droit d'asile pour les nuls.md
new file mode 100644 (file)
index 0000000..2b77c1f
--- /dev/null
@@ -0,0 +1,409 @@
+# Le droit d'asile pour les nuls
+
+* **src**: https://www.reddit.com/r/france/comments/1dn72d2/le_droit_dasile_pour_les_nuls/
+* **auteur** : SowetoNecklace
+* **date**: 2024-06-24
+
+Salut à tous,
+
+
+En cette période où l’immigration va devenir un gros sujet d’une 
+manière ou d’une autre, j’ai voulu faire un petit truc pour rappeler les
+bases de ce qu’est le droit d’asile. J’entends énormément de confusion 
+sur les termes migrants, réfugiés, demandeur d’asile, etc. et j’ai voulu
+faire un pavé pour rafraîchir un peu les mémoires.
+
+
+Avant toutes choses, je sais que l’asile n’est qu’une facette de 
+l’immigration. Un peu d’autopromo ne fait pas de mal, vous avez des 
+infos sur les mécaniques des migrations [ici](https://old.reddit.com/r/france/comments/q5qhh3/immigrations_14_leurope_et_leldorado/) et [ici](https://old.reddit.com/r/france/comments/mpauaf/migrations_horss%C3%A9rie_comment_entrer/) sur comment les gens se déplacent jusqu’à chez nous.
+
+
+Maintenant que c’est dit, on va rappeler les termes de base : Un **migrant**,
+c’est un terme générique pour toute personne qui tente la migration. 
+Certains cercles de gauche utilisent le terme « exilé.e.s », terme qui 
+ne me plaît pas personnellement. Un **demandeur d’asile**,
+c’est quelqu’un qui a fait une demande – ce qui est un droit 
+inaliénable - et dont le dossier est en cours, sans qu’on se soit 
+prononcés sur la validité de sa demande. Un **réfugié**, 
+c’est une personne dont on a accepté la demande d’asile et qui peut 
+s’établir durablement (et légalement) en France. Le terme est un peu 
+galvaudé aujourd'hui, donc on va souvent dire (moi compris !) que 
+n'importe qui ayant fui son pays, quel que soit son statut, est un 
+réfugié.
+
+
+**Comment on devient réfugié ?**
+
+
+Quand un gus arrive en France, le dépôt de la demande d’asile se 
+fait en préfecture. Les préfectures orientent les gens vers des 
+associations avec qui l’Etat a passé des contrats qui les prennent 
+matériellement en charge – assistance sociale, logement quand c’est 
+possible – et vers l’OFII qui leur attribue des aides (On y reviendra 
+plus tard). Une fois qu’il est officiellement considéré comme demandeur 
+d’asile, il a 21 jours pour transférer une demande devant l’OFPRA dans 
+laquelle il décline ses informations personnelles et un résumé des 
+raisons pour lesquelles il demande l’asile.
+
+
+Il y a, en gros, trois « moyens » d’obtenir l’asile :
+
+
+La convention de Genève de 1951 définit le statut de réfugié dans 
+son article 1, A, 2. Il y est écrit « Toute personne qui craint avec 
+raison d’être persécutée en raison de sa **race**, de sa **religion**, de sa **nationalité**, de son **appartenance à un certain groupe social** ou de ses **opinions politiques**
+» peut être considérée comme réfugiée. Ces cinq motifs, on les appelle «
+motifs conventionnels », ouvrent au statut de réfugié. Par la suite, on
+y a rajouté **l’orientation sexuelle et identité de genre**. La France donne l’asile pour 10 ans renouvelables dans ces cas-là.
+
+
+A l’origine, on considérait uniquement que les « persécutions » 
+devaient émaner de l’Etat ou des autorités du pays. Par exemple, des 
+opposants politiques iraniens, des convertis chrétiens en Arabie 
+saoudite. Cette définition a évolué avec le temps pour que tous les 
+agents persécuteurs soient comptés : Par exemple, un Afghan qui risquait
+de se faire fracasser par les talibans parce qu’il était hazara, alors 
+que les talibans n’étaient pas encore au pouvoir, pouvait avoir le 
+statut de réfugié.
+
+
+On a ensuite la protection dite subsidiaire (PS). Elle se décline en
+trois motifs : PS1, PS2, PS3. La PS1 n’est presque plus jamais utilisée
+aujourd’hui. La PS2 couvre toute personne craignant avec raison d’être 
+exposée à des « traitements inhumains ou dégradants » pour des motifs 
+hors de la Convention de Genève. Un Géorgien qui risque de se faire tuer
+par la mafia parce qu’il a contracté des dettes qu’il ne pouvait pas 
+rembourser, un Albanais impliqué dans une vendetta entre deux familles, 
+une Russe fuyant des violences conjugales. Comme il ne s’agit 
+généralement pas de persécutions émanant de l’Etat, il appartient au 
+demandeur d’expliquer pourquoi il ne peut pas obtenir la protection de 
+la police ou des autorités de son pays. La PS offre le droit à une 
+carte de séjour de 4 ans, renouvelable.
+
+
+La PS3, c’est une troisième mesure disant que même quelqu’un qui 
+n’est pas personnellement ciblé par un acteur armé peut mériter la 
+protection en raison de la « violence aveugle découlant d’un conflit 
+armé ». Pour cela, la France – et les autres pays, séparément – étudient
+les situations de conflit armé dans les pays et décrètent s’il y a la 
+PS3 dans telle ou telle zone. A l’heure actuelle, la PS3 est ouverte 
+dans les pays suivants : Afghanistan, Haiti, République démocratique du 
+Congo, Somalie, Soudan, Syrie, Ukraine, Yémen.
+
+
+Mais attention : Tous les pays qui sont « ouverts à la PS3 » ne le 
+sont pas sur tout leur territoire. Par exemple, en Ukraine, quelqu’un 
+qui est de Kharkiv – où les Russes sont en train de pousser à fond – 
+aura plus facilement droit à la PS3 que quelqu’un de Lviv. En Syrie, la 
+PS3 est plus facilement atteignable à Idlib qu’à Damas. Etc, etc.
+
+
+Il faut aussi comprendre que la PS3 protège de la **violence aveugle**, pas de la **dictature** ou de la **répression**.
+Par exemple, depuis que les Talibans sont arrivés au pouvoir en 
+Afghanistan, les pays européens ont progressivement restreint la PS3 sur
+tout l’Afghanistan. Normal : La guerre est finie, il n’y a plus de « 
+violence aveugle ».
+
+
+**Donc il suffit de venir en France pour être considéré comme réfugié ?**
+
+
+Bien sûr que non, et heureusement. Quand on est considéré comme 
+demandeur d’asile, on doit passer un entretien devant l’OFPRA. Le but de
+cet entretien est d’écouter les raisons pour lesquelles la personne est
+venue, tenter de trouver les trous dans l’histoire, confronter les 
+déclarations du demandeur aux informations qu’on a et à ses propres 
+incohérences. Ils peuvent aussi apporter des documents à l’appui de 
+leurs déclarations.
+
+
+**Donc il y a des mensonges ?**
+
+
+Oooooof, mais tellement. Le taux d’accord de l’OFPRA est d’environ 
+29% en 2022, ce sont les derniers chiffres qu’on a en réserve. Les 
+différentes communautés se refilent des histoires, ce qui fait qu’à 
+chaque nationalité on a une « histoire classique », un truc régurgité 
+sans aucun côté spontané, dans laquelle on trouve des trous en 30 
+minutes chrono.
+
+
+Des membres de chaque communauté en place en France gagnent leur vie
+en proposant ces histoires et en les faisant apprendre aux demandeurs 
+d’asile. Une « histoire afghane » classique coûte 50€, une « histoire 
+turque » coûte environ 100€, une « histoire bangladaise » coûte 300€. Ce
+n’est pas que les histoires bangladaises sont plus élaborées que les 
+autres, c’est que la communauté bangladaise est connue pour être gérée 
+par des mafieux qui exploitent leurs compatriotes autant qu’ils peuvent.
+
+
+Même quand une histoire sort de la trame de « l’histoire classique 
+», ça ne veut pas dire qu’on la croira, il y a toujours un travail 
+d’évaluation et de compréhension à faire.
+
+
+C’est pour ça que les textes disent « Quiconque craint **avec raison**
+». Dans la presse, personne ne semble remettre en cause les 
+déclarations des gens qui affirment avoir « fui leurs pays pour des 
+raisons politiques ». 70% du temps, ces « raisons politiques » (ou 
+religieuses, ethniques, etc.) sont totalement fausses et servent de 
+cache-sexe à d’autres motifs d’immigration.
+
+
+Quant à la PS3, elle s’applique **en plus** des autres 
+motifs. Prenons par exemple un Syrien qui déclare avoir été arrêté par 
+les forces de Bachar al-Assad, et être originaire d’une zone à PS3. Si 
+on déclare que son histoire sur son arrestation est nulle, mais qu’il 
+est effectivement originaire d’une zone à PS3, on peut écarter son 
+histoire mais lui accorder la protection sur la base de la PS3.
+
+
+**Mais les gens mentent jamais sur la PS3 ?**
+
+
+Bien sûr que si. Les communautés dont je parlais plus haut sont au 
+courant de quelles zones ouvrent à la PS ou non. Donc parfois elles vont
+indiquer à un gars venant d’une zone « tranquille » qu’il doit dire 
+qu’il vient d’une zone « dangereuse ». Il y a tout un questionnement sur
+le sujet visant à déterminer d’où vient vraiment une personne.
+
+
+On a aussi, pour certaines nationalités, des gens venant de pays 
+voisins qui vont faire semblant d’être originaire d’un pays « chaud » 
+pour pouvoir avoir un titre de séjour, faux documents à l’appui.
+
+
+**Et si un conflit prend fin ?**
+
+
+Alors la PS3 prend fin. On revient périodiquement sur les 
+qualifications de la PS, en regardant le niveau de violence, le nombre 
+d’incidents, et on peut aussi rapidement restreindre la PS que 
+l’élargir. Ces dernières années, l’Afghanistan et la Syrie ont vu leurs 
+niveaux de PS baisser au fur et à mesure que le conflit baissait en 
+intensité.
+
+
+Ça ne veut pas dire que les gens sous PS3 vont se faire virer du 
+jour au lendemain, mais quand ils viendront demander le renouvellement 
+de leur carte de séjour, il faudra réexaminer la zone d’où ils viennent,
+et s’ils n’ont pas de nouveau droit à la PS3, ils peuvent voir le 
+renouvellement de leur carte refusée. Rien ne les empêche, après, de 
+solliciter une carte de séjour sur un motif qui ne relève pas de 
+l’asile, comme le travail.
+
+
+**Alors si les gens mentent, pourquoi ils s’embêtent à demander l’asile plutôt que de demander un titre de séjour normal ?**
+
+
+Pour deux raisons : Déjà, le statut de réfugié est protecteur, entre
+4 et 10 ans direct de plein droit. Ensuite, parce que la demande 
+d’asile ouvre à une prise en charge et quelques droits avant même que la
+demande soit traitée.
+
+
+Les aides pour un demandeur d’asile, on désigne ça sous le nom des **conditions matérielles d’accueil**. Il y a trois grandes catégories dans les conditions matérielles d’accueil :
+
+
+• Le droit à une allocation (l’allocation de demande d’asile, ADA), 
+dont le montant pour une personne seule va de 6,80€ par jour à 14,20€ 
+par jour selon les circonstances,
+• Le droit à un logement, soit au 
+115 soit dans un foyer – dans les faits ce sont les familles avec 
+enfants, les mineurs, les femmes isolées qui sont logées en priorité. 
+Par manque de place, les hommes seuls et les couples sans enfants 
+dorment souvent dans la rue ou trouvent des piaules par leurs propres 
+moyens,
+• Le droit à la CMU à partir de 3 mois de séjour en France. 
+Avant, les demandeurs d’asile ont droit à une couverture qui ressemble à
+la controversée AME.
+
+
+Ces aides font partie des raisons principales pour lesquelles des 
+demandeurs qui n’ont pas le droit à l’asile vont tenter de déposer une 
+demande malgré tout. La migration médicale géorgienne, qui a atteint son
+paroxysme en 2018-2019, cherchait à tirer profit de la couverture 
+médicale. D’autres, notamment des Rroms des Balkans, espèrent percevoir 
+un peu d’argent de poche durant les quelques mois d’attente de leur 
+demande d’asile et rentrer un peu plus riche au pays. On a aussi des 
+réseaux qui mentent à des demandeurs potentiels, en leur disant « 
+T’inquiète, on t’amène en France et on t’aide à faire une demande 
+d’asile » pour ensuite pouvoir leur voler leurs aides (tout en les 
+renvoyant au pays de force). Ça a été, pendant un temps, la spécialité 
+de réseaux moldaves et ukrainiens qui ciblaient les Rroms de chez eux.
+
+
+Ceux qui vont se dire « Ouah, la France est généreuse en fait ! » 
+attendez deux secondes. Les conditions matérielles d’accueil sont 
+proposées par l’OFII et si un demandeur refuse une des offres qu’on lui 
+fait, il perd tout. Y’a pas le droit de bénéficier d’un truc, mais pas 
+d’un autre. Ça se voit surtout lors du logement : Si on vous propose un 
+logement ouvertement insalubre, avec des murs verts de moisissure, et 
+que vous refusez, vous perdez tout. Si on vous propose un logement à 
+Strasbourg, et à votre maman (avec qui vous êtes venu en France) un 
+logement à Brest, et que vous dites que vous voulez rester au même 
+endroit, vous perdez tout.
+
+
+Les services français, en tout cas dans certains départements, font 
+tout pour amener les gens à refuser une part de la prise en charge, ce 
+qui leur permet de couper l’ADA et les autres avantages (Eh, faut bien 
+économiser les p’tits sous). Par exemple, la communauté bangladaise en 
+Ile-de-France est connue pour rester dans une zone très restreinte, 
+autour d’Aubervilliers-Pantin, et les services tentent au maximum de 
+leur proposer des logements hyper éloignés de cette zone, ostensiblement
+pour casser l’effet communautaire mais en espérant fort qu’ils refusent
+pour pouvoir les sortir du système.
+
+
+Quant à la couverture médicale, le délai de carence de 3 mois est 
+relativement récent. Auparavant, la CMU était donnée dès le premier 
+jour. Mais suite à la vague de migrants médicaux géorgiens (Pendant un 
+temps, les Géorgiens étaient la deuxième plus grosse nationalité de 
+demande d’asile après les Afghans, et tous ou presque étaient des 
+migrants médicaux déguisés). La France a pris de nombreuses mesures pour
+dissuader les Géorgiens de venir, notamment celle d’introduire un délai
+de carence pour la couverture médicale. Ça a un peu marché, les 
+géorgiens sont sortis du top 5 des demandes d’asile récemment.
+
+
+**Et si un mec a commis un crime dans son pays, il peut devenir réfugié ?**
+
+
+C’est compliqué. Une personne qui craint avec raison des 
+persécutions dans son pays peut normalement prétendre au statut de 
+réfugié. Mais parfois, ces gens ont commis dans le cours de leur vie des
+crimes contre l’humanité, ou des crimes graves de droit commun, qui 
+rendent son accueil en France impossible. On appelle ça la **clause d’exclusion**,
+qui est différente de juste « On te refuse l’asile ». Pour introduire 
+une clause d’exclusion, il faut d’abord reconnaître que le demandeur 
+risque réellement des persécutions (sinon on fait un refus d’asile et 
+balek). Mais après, si on a des doutes sur ce qu’il a pu commettre – Un 
+colonel de l’armée afghane, un ex-jihadiste syrien, un Bangladais qui a 
+violé une mineure – il faut le questionner sur le sujet pour avoir un 
+faisceau d’indices.
+
+
+L’exemple le plus criant d’exclusions qu’on ait eu en France, ce 
+sont des génocidaires rwandais. Le gouvernement rwandais étant composés 
+de Tutsis, les ex- génocidaires hutus risquent d’être mis en pièces si 
+on les renvoie à Kigali. Mais en même temps… Peut-on vraiment accorder 
+un statut à quelqu’un qui s’est rendu coupable d’un génocide ? Non.
+
+
+**On peut perdre le statut de réfugié ?**
+
+
+C’est difficile, mais oui. Déjà, le droit interdit à une personne 
+considérée comme réfugiée de rentrer dans son pays ou de contacter les 
+autorités consulaires de son pays d’origine. On part du principe que si 
+tu as fui ton pays, c’est que tu ne peux pas y rentrer. Y’a toujours des
+gens qui tentent – notamment en prenant des avions avec une escale dans
+un pays tiers pour pas se faire griller – et quand la France en grille,
+ils risquent la perte de leur statut.
+
+
+Plus piquant, on a ceux qui constituent une menace grave à l’ordre 
+public. Selon les communautés, ça peut être pour diverses raisons : 
+Radicalisation violente (le nombre de messages à la gloire de Daesh 
+qu’on s’est tapés…), violences conjugales, crime organisé… Généralement 
+ceux qui sont accusés de tout ça ont droit à un nouvel entretien pour se
+justifier avant de perdre leur statut de réfugié.
+
+
+**Il faut être rentré légalement en France pour faire une demande d’asile ?**
+
+
+Non. Le droit d’asile est prévu pour des gens qui n’ont pas 
+forcément les moyens de bouger de manière régulière, alors quand on 
+enregistre leurs demandes d’asile, on ne leur reproche pas d’être entré 
+en France clandestinement.
+
+
+Il y a par contre trois manières de déposer une demande d’asile sans entrer en France clandestinement :
+
+
+Tout d’abord, vous pouvez vous rendre dans une ambassade de France 
+demander un visa au titre de l’asile. Un fonctionnaire consulaire vous 
+fera un entretien, puis vous accordera (ou non) un visa pour rentrer en 
+France où le traitement « standard » d’une demande d’asile par l’OFPRA 
+commencera.
+
+
+En général, il est peu recommandé de faire ça dans votre propre 
+pays. Si vous êtes déjà surveillé par l’Etat, la mafia ou le groupe de 
+terroristes locaux, s’ils voient que vous êtes sur le point de partir, 
+ils vont vous choper. Mais vous pouvez vous rendre dans l’ambassade de 
+France du pays voisin, par exemple.
+
+
+Ensuite, vous pouvez demander l’asile à la frontière. Vous prenez 
+l’avion vers la France avec votre passeport, mais sans visa. Au moment 
+de passer la frontière française à Roissy, vous dites juste « Je demande
+l’asile » et on vous fera passer un premier entretien qui déterminera 
+si on a de bonnes raisons de vous laisser rentrer en France demander 
+l’asile. Cet entretien ne vous donne pas le droit à l’asile de suite, 
+c’est « un droit de demander l’asile ».
+
+
+Enfin, si vous êtes déjà présent dans un pays proche du vôtre et 
+reconnu réfugié par le Haut-Commissariat aux Réfugiés de l’ONU, la 
+France – comme d’autres pays d’Europe – a pris l’engagement de soulager 
+les autres pays en prenant une part de personnes en quota. Du coup, vous
+pouvez vous inscrire dans un programme du HCR et « faire des vœux » de 
+pays où vous voulez vous rendre, et ces pays feront des entretiens pour 
+vous et décideront s’ils sont d’accord pour vous prendre ou non.
+
+
+A ma connaissance, on ne fait ça que pour trois nationalités pour le
+moment : Afghans, Syriens, et (plus rarement) pour des Congolais de la 
+RDC.
+
+
+**On peut pas juste refuser que des demandeurs déposent une demande d’asile ?**
+
+
+Non, cent fois non : Le principe de « non-refoulement » s’applique à
+ceux qui tentent de déposer des demandes d’asile. C’est un principe 
+entériné dans la convention de Genève qui dit qu’on ne peut renvoyer 
+quelqu’un vers un pays où il risque de subir des persécutions ou des 
+traitements inhumains ou dégradants. Ce qui signifie donc que quand 
+quelqu’un allègue avoir de telles craintes, il faut les étudier, et 
+éventuellement répondre « Après étude, on pense qu’il ne craint rien » 
+si on veut le renvoyer.
+
+
+**Et les renvoyer dans d’autres pays ?**
+
+
+C’est un autre sujet, un sujet qui risque fort de se poser vu les 
+projets de « centres de demande d’asile » dans des pays voisins que 
+l’Europe compte mettre en place. La réalité, c’est que la majorité des 
+réfugiés dans le monde (environ 80%) vivent dans des pays voisins du 
+lieu qu’ils ont quitté : Afghans en Iran, Congolais en Tanzanie, 
+Bangladais en Inde, etc… Ceux qui viennent par la suite en Europe le 
+font généralement pour des raisons économiques, même s’ils ont fui leur 
+pays à cause de persécutions.
+
+
+Pour autant, quand on étudie une demande d’asile, on ne l’étudie 
+qu’à partir de deux pays : La France et leur pays d’origine. Souvent, 
+ils ont vécu de manière clandestine dans les pays voisins, et n’y ont 
+aucun statut. Dans leur pays d’origine, ils sont (naturellement) 
+citoyens, donc ils auront un statut juridique en cas de retour. La 
+France refuse de considérer le renvoi vers un pays où ils n’auront aucun
+statut juridique.
+
+
+C’est aussi pour ça que, quand une personne se présente et qu’elle a
+la double nationalité, il faudra étudier ses craintes auprès des deux 
+pays de nationalité. Un Turco-Russe par exemple, devra expliquer 
+pourquoi il a fui la Russie, mais aussi pourquoi il risque d’être 
+persécuté en Turquie.
+
+
+Voilà, c’est une mini-FAQ assez rapide, j’ai sûrement oublié des 
+choses vu que j’ai écrit ça sur le pouce en une journée. Si vous avez 
+des questions ou des zones d’ombre à éclaircir, n’hésitez pas !
+
diff --git a/Phone/Framagenda.md b/Phone/Framagenda.md
new file mode 100644 (file)
index 0000000..0fa43f7
--- /dev/null
@@ -0,0 +1,12 @@
+# Framagenda
+
+How to connect to Framagenda?
+
+Required:
+* Login: Nikiroo
+* Password:
+* Server address: https://framagenda.org
+* Server (WebDav) path: /remote.php/dav/principals/users/Nikiroo/
+
+Not needed:
+* Port: 443 (+SSL)
diff --git a/color-theme.md b/color-theme.md
new file mode 100644 (file)
index 0000000..d2dce68
--- /dev/null
@@ -0,0 +1,21 @@
+# Dark-Olycmpic
+
+## Icon theme
+
+GT3 Icons
+
+## Colours
+
+Light (side bar): #404552
+
+Window Bg: #383c4a
+
+Menu Bar (darker): #2d303b
+
+Text Fg: #d0ced4
+
+### xfce4-terminal
+
+Change background colour to Window Bg
+
+
diff --git a/git.md b/git.md
new file mode 100644 (file)
index 0000000..f5bda75
--- /dev/null
+++ b/git.md
@@ -0,0 +1,53 @@
+# Git
+
+Set upstream:
+* `git push --set-upstream remote_name local_branch`
+* `git pull --set-upstream remote_name local_branch`
+
+Delete branch:
+* `git branch -d xxx`
+* `git branch -D xxx` (force delete)
+* `git push MY_REMOTE --delete XXX`
+* `git push MY_REMOTE :XXX` (identical to above)
+
+Move branch
+* `git checkout OLD_NAME`
+* `git branch -m NEW_NAME`
+
+
+Active branch in a bare repository:
+* see `repo/HEAD` (and change it if needed)
+
+Create a new branch and switch to it:
+* `git checkout -b BRANCH`
+
+Merge unrelated repositories:
+* `git pull ../other/ master --allow-unrelated-histories --no-rebase`
+
+## Submodules
+
+At start:
+* `git clone XXX --recurse-submodules`
+
+At new one:
+* git submodule add https://github.com/... path
+* `./` is allowed, `.` is not *but only on remote paths, not local paths*
+* `../other-prj.git` is also allowed
+
+Manually:
+* git submodule init
+* git submodule update (--recursive)
+
+Or in one command:
+* git submodule update --init (--recursive)
+
+If problems:
+* git submodule deinit (--all)
+
+If head detached:
+* `git branch -u <origin>/<branch> <branch>`
+* `git checkout -b <branch> --track <origin>/<branch>`
+
+
+The `git submodule sync` will update your config file with the details from the .gitmodules file, so the latter should be considered the 'master'.
+
diff --git a/index.md b/index.md
new file mode 100644 (file)
index 0000000..e0accd8
--- /dev/null
+++ b/index.md
@@ -0,0 +1,3 @@
+# Niki's doc
+
+My doc
diff --git a/mkdocs/mkdocs.yml b/mkdocs/mkdocs.yml
new file mode 100644 (file)
index 0000000..aefe3d7
--- /dev/null
@@ -0,0 +1,11 @@
+site_name: Niki's Doc
+theme:
+  name: material
+  features:
+    - content.action.edit
+plugins:
+  - privacy
+# - offline
+#repo_url: https://github.com/nikiroo/fanfix
+# repo_name: squidfunk/mkdocs-material
+#edit_uri: edit/master/docs/
diff --git a/mkdocs/update.sh b/mkdocs/update.sh
new file mode 100755 (executable)
index 0000000..433dd43
--- /dev/null
@@ -0,0 +1,38 @@
+#!/bin/sh
+
+cd "`dirname "$0"`" || exit 42
+DDIR=/home/user/Notes
+
+if [ "$1" = "" ]; then
+       # Host
+       cd ..
+       rm -f mkdocs/ok
+       touch mkdocs/wip
+       OPTS="-v $PWD:$DDIR:rw" /opt/docker/launch.sh \
+               --start $DDIR/mkdocs/update.sh mkdocs \
+               build
+       echo
+       echo Leaving docker machine...
+       echo
+       [ -e mkdocs/ok ] ; rep=$? ; rm -f mkdocs/ok
+       if [ $rep = 0 ]; then
+               echo Copying to remote site...
+               echo TODO
+       else
+               echo Failed to update, no remote copy started: $rep
+       fi
+       rm -f mkdocs/wip
+       exit $rep
+fi
+
+# Docker
+echo
+echo Entering docker machine...
+echo
+
+cd
+cp "$DDIR/mkdocs/mkdocs.yml" "$HOME/" || exit
+ln -s "$DDIR" docs || exit
+mkdocs build -d "$DDIR"/mkdocs/site || exit
+touch "$DDIR/mkdocs/ok"
+
diff --git a/mp4.md b/mp4.md
new file mode 100644 (file)
index 0000000..070ec0e
--- /dev/null
+++ b/mp4.md
@@ -0,0 +1,280 @@
+# MP4 Conversion
+
+Table of contents:
+
+* Cut a movie part
+* Conversion
+       * Explanation
+* (auto-)Crop a video -- Black borders removal
+       * Detect crop values automatically
+       * Test and apply crop
+* CBR, CRF, and Changing Resolution using FFmpeg
+       * Creating a Constant BitRate (CBR) Video
+       * Using the CRF option to set desired quality
+       * Change the resolution of the video to 1280×720
+       * Conclusion
+* Extract audio
+       * Extract via mkvextract
+* Conversion to projo
+* FFMPEG flags
+* Slow down audio
+
+## Cut a movie part
+
+src: http://superuser.com/questions/138331/ddg#704118
+
+Using ffmpeg to cut up video.
+
+As other people mentioned, putting -ss before (much faster) or after (more accurate) the -i makes a big difference. The section "Fast And Accurate Seeking" on the ffmpeg seek page tells you how to get both, and I have used it, and it makes a big difference. Basically you put -ss before AND after the -i, just make sure to leave enough time before where you want to start cutting to have another key frame. Example: If you want to make a 1-minute clip, from 9min0sec to 10min 0sec in Video.mp4, you could do it both quickly and accurately using:
+
+```sh
+       ffmpeg -ss 00:08:00 -i Video.mp4 -ss 00:01:00 \
+               -t 00:01:00 -c copy VideoClip.mp4
+```
+
+The first -ss seeks fast to (approximately) 8min0sec, and then the second -ss seeks accurately to 9min0sec, and the -t 00:01:00 takes out a 1min0sec clip.
+
+Also note this important point from that page:
+
+> If you use -ss with -c:v copy, the resulting bitstream
+> might end up being choppy, not playable, or out of
+> sync with the audio stream, since ffmpeg is forced
+> to only use/split on i-frames.
+
+This means you need to re-encode the video, even if you want to just copy it, or risk it being choppy and out of sync. You could try just -c copy first, but if the video sucks you'll need to re-do it.
+
+## Conversion
+
+src: https://video.stackexchange.com/questions/19590/convert-mp4-to-webm-without-quality-loss-with-ffmpeg
+
+Convert mp4 to webm without quality loss with ffmpeg.
+
+Use two-pass Constant Quality mode:¹
+
+```sh
+       ffmpeg  -i input.mp4  -b:v 0  -crf 30  -pass 1  -an -f webm -y /dev/null
+       ffmpeg  -i input.mp4  -b:v 0  -crf 30  -pass 2  output.webm
+```
+
+### Explanation
+
+Setting the video bitrate to zero while also specifying the CRF (Constant Rate Factor) enables Constant Quality mode which targets a certain perceptual quality level. For VP9, the CRF can range from 0 (best quality) to 63 (smallest file size).
+
+It is important to set the video bitrate to zero. If you do not specify a video bitrate, it defaults to something low which gets you Constrained Quality mode, where each frame has a maximum bitrate. While that can be useful for streaming, it reduces quality significantly as frames with a lot of motion will not have the bandwidth needed to look good.
+
+Another part of the reason you’re losing quality is that webm (VP9) prefers to encode in two passes for best results. The first pass compiles statistics about the video which is then used in the second pass to make a smaller and higher quality video.
+
+Please see the ffmpeg VP9 documentation if you’d like to learn more.
+A word about transcoding
+
+By the way, in general, transcoding formats (taking a compressed video and recompressing it with a different codec) is a bad idea as you’ll not only add the normal errors from lossy video encoding, but you’ll waste bits in the new format trying to preserve the artifacts from the old.
+
+If you mean "without quality loss" literally: the -lossless 1 option of ffmpeg’s VP9 encoder enables lossless quality mode, but with a potentially enormous increase in filesize.
+
+All you need is this:
+
+```sh
+       ffmpeg  -i input.mp4  -lossless 1  output.webm
+```
+
+When I tried -lossless 1 on a low-quality mp4, the resulting webm was 100× larger, which was not accceptable to me. However, if your mp4 files are already very high quality, I expect the size difference will not be so great.
+
+Footnote 1: If you're using Microsoft Windows instead of UNIX, change /dev/null to NUL.
+
+## (auto-)Crop a video -- Black borders removal
+
+Source and more info: René Calles blog [renevolution.com](https://web.archive.org/web/20190317205731/http://www.renevolution.com:80/ffmpeg/2013/05/23/understanding-ffmpeg-part-iii-cropping.html)
+
+### Detect crop values automatically
+
+src: https://superuser.com/questions/772795/is-it-possible-to-autocrop-black-borders-of-a-video-with-ffmpeg#772833
+
+It is possible to automatically detect crop values with `ffplay`:
+
+```sh
+       fplay -i YourMovie.mp4 -vf "cropdetect=24:16:0"
+
+       # cropdetect=limit:round:reset
+       # 
+       # limit = black threshold (default 24)
+       # round = output resolution must be divisible to this
+       # reset = after how many frames the detection process will start over
+```
+
+You will see the result in the text output, which can vary over time.
+
+### Test and apply crop
+
+src: https://www.linuxuprising.com/2020/01/ffmpeg-how-to-crop-videos-with-examples.html
+
+When you have the correct values in hand (or if you want to test them manually), `ffplay` can still be used for that:
+
+```sh
+       ffplay -filter:v "crop=w:h:x:y" input.mp4
+       ffplay -vf       "crop=w:h:x:y" input.mp4
+```
+
+When you are happy with the result, you can start the actual cropping:
+
+```sh
+       ffmpeg -i YourMovie.mp4 -vf "crop=640:256:0:36" \
+               YourCroppedMovie.mp4
+```
+
+* The crop filter `crop=W:H:X:Y` means we're using the "crop" video filter, with 4 values:
+  * w the width of the output video (so the width of the cropped region), which defaults to the input video width (input video width = iw, which is the same as in_w); out_w may also be used instead of w
+  * h the height of the output video (the height of the cropped region), which defaults to the input video height (input video height = ih, with in_h being another notation for the same thing); out_h may also be used instead of h
+  * x the horizontal position from where to begin cropping, starting from the left (with the absolute left margin being 0)
+  * y the vertical position from where to begin cropping, starting from the top of the video (the absolute top being 0)
+
+A few notes:
+
+* The filter will automatically center the crop if x and y are omitted, so x defaults to (iw-w)/2, and y to (ih-h)/2
+* There is also an optional keep_aspect option that you can set to 1 to force the output display aspect ratio to be the same of the input (example usage: "crop=100:100:0:0:keep_aspect=1"). This won't work with images, that's why you don't see a separate example with screenshot here
+* FFmpeg gets the original input video width (iw) and height (ih) values automatically, so you can perform mathematical operations using those values (e.g. iw/2 for half the input video width, or ih-100 to subtract 100 pixels from the input video height).
+
+## CBR, CRF, and Changing Resolution using FFmpeg
+
+src: https://ottverse.com/cbr-crf-changing-resolution-using-ffmpeg/
+
+In this article, we will go through the process of compressing a video using the H.264/AVC codec (libx264) and discuss the following:
+
+* Creating a Constant Bitrate (CBR) encoded video
+* Using the Constant Rate Factor (CRF) option to set desired quality
+* Change the resolution of the video to 1280x720 or 720p. 
+
+For this purpose, we would be using a sample video with a resolution = 1920x1080 that can be downloaded at this link.
+
+### Creating a Constant BitRate (CBR) Video
+
+To understand CBR, we need to understand what is bitrate. Bitrate is the amount of information or data stored per second in any media file such as audio or video. In technical terms, it is the rate of the data output of an encoder. For example, 2200 kbps as a bitrate means that 2200 kilobits of data is stored per second. For a deeper discussion on bitrate, don’t miss this article on "bitrate vs. resolution".
+
+If the bitrate is "constant" throughout a video, it is termed as a CBR video. However, it is not possible to have constant bitrate for all the frames because of the different frame types and encoding priorities. Hence, if the bitrate is constant over a pre-determined time-period, the video is called a CBR-encoded video.
+
+In order to output a constant bitrate video, we would be using the following FFmpeg output options :
+
+* -b:v – Specifies the average target output bitrate of the video
+* -maxrate – Specifies the maximum bitrate tolerance
+* -minrate – Specifies the minimum bitrate tolerance
+* -bufsize – Specifies the rate control buffer size that helps to maintain the bitrate according to the values of b:v, maxrate and minrate
+
+After this, we also need to specify the video encoder using the -c:v option. As mentioned earlier, we are going to use the libx264 encoder in all the three cases.
+
+Let’s say, we need to have a CBR of 2200 kbps for our sample video. The FFmpeg command for the CBR conversion will be as follows :
+
+```sh
+       ffmpeg -i crowdrun.mp4 -b:v 2200k -maxrate 2200k \
+               -minrate 2200k -bufsize 2200k \
+               -c:v libx264 output.mp4
+```
+
+If we try to analyze the bitrate of the output file, we would see that the difference between the highs and the lows of the bitrates in the file is very less. Ideally in CBR mode, the bitrate should be perfectly constant during the entire video but that is the ideal case and is not possible to achieve with software encoders.
+
+(Related:  LCEVC vs. AVC - Incredible 28% Gain at 3x Speed.)
+
+### Using the CRF option to set desired quality 
+
+The Constant Rate Factor or CRF is an option available in the libx264 encoder to set our desired output quality. It enables us to specify a target value that maps to a specific quality by adjusting the bitrates automatically based on the input video.
+
+This method is better if we want to have the same output quality for different kinds of input videos as FFmpeg would automatically adjust the bitrates based on the input video properties. On the other hand, the previous method will keep the same bitrate which will result in different output qualities for different inputs.
+
+The CRF value ranges from 0 to 51 where:
+
+* 0 is lossless (best) with highest file size
+* 23 is the default
+* 51 is the poorest quality with lowest file size
+
+With low CRF value, the bitrate and hence, the file size of the video will increase. So it is important to decide the value based on the user requirements.
+
+Let’s say, we need a compressed output video with lesser file size, we can go with the value of 30. The FFmpeg command for this would be:
+
+```sh
+       ffmpeg -i crowdrun.mp4 -crf 30 -c:v libx264 output.mp4 
+```
+
+
+### Change the resolution of the video to 1280×720
+
+FFmpeg provides a huge set of filters for various purposes. One of them is the scale filter that helps to scale the input to any resolution.
+
+The two parameters for this filter that we would be using are:
+
+* w : It specifies the output width of the video
+* h : It specifies the output height of the video
+
+Here, we would also add the CRF parameter(discussed in the last point) to compress and reduce the file size of the output video.
+
+The FFmpeg command for this would be:
+
+```sh
+       ffmpeg -i crowdrun.mp4 -vf scale=w=1280:h=720 -crf 30 -c:v libx264 output.mp4
+```
+
+### Conclusion
+
+In this article, we learned how to use FFmpeg to produce a CBR-encoded video, CRF-encoded video, and how to change the resolution of a file. These three operations are very important to any video compression system and we hope you are able to use them to further your video compression using FFmpeg.
+
+## Extract audio
+
+```sh
+       ffmpeg -i input.mp4 -map a -c copy test.mp4
+```
+
+### Extract via mkvextract
+
+```sh
+       mkvinfo "$1" # identify the track number
+```
+
+```sh
+       mkvextract "$1" tracks \
+               0:video.mpg 2:audio-jpn.dda 4:subs-fr.ssa
+```
+
+## Conversion to projo
+
+```sh
+       ffmpeg -i audio-jpn.dda -i video.mpg \
+               -c:v libx264 -c:a libmp3lame \
+               -vf subtitles=subs-fr.ssa \
+               output.mpg
+```
+
+## FFMPEG flags
+
+All the flags for an input file must be used before the linked `-i`.  
+All the flags not part of an input files (after the last `-i`) target the output file.
+
+It is important not to mix input and output arguments.
+
+Input arguments:
+
+* `-an`: take no audio from this input file
+* `-vn`: take no video from this input file
+
+Output arguments:
+
+* `-c:v libx264`: convert video to x264
+* `-c:a libmp3lame`: convert audio to MP3
+* `-c:v copy`: copy the video data as-is
+* `-c:a copy`: copy the audio data as-is
+
+# Slow down audio
+
+It is possible to slow down the audio of a video while style keeping the same pitch, with a complex filter.
+
+You need to use a correlated number for the speed and the pitch:
+* speed (tempo) = X
+* pitch = 1 / X
+
+For instance, to slow down to 75% of the original speed, you would use:
+* 0.75 for the tempo
+* 1.33 for the pitch
+
+```sh
+    ffmpeg -i INPUT.EXT -filter_complex \
+        "[0:a]atempo=0.75[a];[0:v]setpts=1.33*PTS[v]" \
+        -map "[v]" -map "[a]" \
+        OUTPUT.EXT
+```
+
diff --git a/scaling.md b/scaling.md
new file mode 100644 (file)
index 0000000..16ad0a9
--- /dev/null
@@ -0,0 +1,141 @@
+# Linux display
+
+This iis detailed in depth on [how does Linux's display works?](https://unix.stackexchange.com/questions/596894) QA.
+
+On most desktops system (like KDE or Gnome) there are settings available on their respective settings panel, this guide is for additional/manual settings that can be applied to scale an application or the whole desktop. This [reference article](https://wiki.archlinux.org/index.php/HiDPI) have many valuable informations for the matter.
+
+## Scaling applications
+
+Scaling application can be done mainly via [DPI](https://unix.stackexchange.com/questions/596765/is-x-dpi-dot-per-inch-setting-just-meant-for-text-scaling), specific environment variable (explained bellow), application own setting or some specific desktop setting (out of scope of this QA).
+
+* Qt applications can be scaled with the following environment variables, note that many applications are hard-coding sizing and font and thus the result on such app may not be as expected:  
+
+```sh
+    export QT_AUTO_SCREEN_SET_FACTOR=0
+    export QT_SCALE_FACTOR=2
+    export QT_FONT_DPI=96
+```
+
+* Gnome/GTK applications can be scaled with the following environment variables:  
+
+```sh
+    export GDK_SCALE=2
+    export GDK_DPI_SCALE=0.5
+```
+
+* Gnome/GTK can as well be scaled globally with this Gnome setting:  
+
+```sh
+    gsettings set org.gnome.desktop.interface text-scaling-factor 2.0 
+```
+
+* Chromium, can be scaled with the following command:  
+
+```sh
+    chromium --high-dpi-support=1 --force-device-scale-factor=1.5
+```
+
+* [Xpra](https://en.wikipedia.org/wiki/Xpra) (python) can be used along with i[Run scaled](https://github.com/kaueraal/run_scaled/blob/master/run_scaled) to achieve a per app scaling.
+
+* Environment variables modification can be placed in `~/.profile` for a global and automatic appliance after login.
+
+## Scaling the desktop with Xorg X11
+
+[Xorg](https://wiki.archlinux.org/index.php/Xorg)'s extension RandR have a scaling feature and can be configured with [`xrandr`](https://wiki.archlinux.org/index.php/Xrandr). This can be used to scale the desktop to display a bigger environment, this can be useful for HiDPI (High Dots Per Inch) displays.
+
+RandR **can also be used the other way around**, example making a screen with 1366x768 max resolution support a greater resolution like 1920x1080. This is achieved by simulating the new greater resolution while rendering it for the supported max resolution, similar to when we watch a Full-HD video on a screen that is not Full-HD.
+
+## Scaling the desktop without changing the resolution
+
+* Getting the screen name:  
+
+```sh
+    xrandr | grep connected | grep -v disconnected | awk '{print $1}'
+```
+
+* Reduce the **screen size** by 20% (zoom-in):  
+
+```sh
+    xrandr --output screen-name --scale 0.8x0.8
+```
+
+* Increase the **screen size** by 20% (zoom-out):  
+
+```sh
+    xrandr --output screen-name --scale 1.2x1.2
+```
+
+* Reset `xrandr` changes:  
+
+```sh
+    xrandr --output screen-name --scale 1x1
+```
+
+## Scaling the desktop and simulate/render a new resolution
+
+When using `xrandr` to "zoom-in" with the **previous method**, the desktop remain full screen but when we "zoom-out" with for instance `xrandr --output screen-name --scale 1.2x1.2` (to get an unsupported resolution) the desktop is not displayed in full screen because this require updating the resolution (to probably a higher unsupported resolution by the screen), we can use a combinaison of `--mode`, `--panning` and `--scale`, xrandr's parameters to achieve a full screen "zoom-out" scaling (simulate a new resolution), example:
+
+* Get the current setup:  
+
+```sh
+    xdpyinfo | grep -B 2 resolution
+    # or
+    xdpyinfo
+```
+
+* Configuration example:  
+
+```
+    Scaling at:                      120%
+    Used/max screen resolution:      1366 x 768
+    Resolution at 120% (res x 1.2):  1640 x 922 (round)
+    Scaling factor (new res / res):  1.20058565 x 1.20208604 
+```
+
+* The idea here is to increase the screen resolution virtually (because we are limited to 1366x768 physically) the command would be (replace screen-name):  
+
+```sh
+    xrandr --output screen-name --mode 1366x768 --panning 1640x922 --scale 1.20058565x1.20208604
+```
+
+* Reset the changes with:  
+
+```sh
+    xrandr --output screen-name --mode 1366x768 --panning 1366x768 --scale 1x1
+
+    # restarting the desktop may be required example with KDE
+    # kquitapp5 plasmashell
+    # plasmashell &
+```
+
+## Making xrandr changes persistent
+
+There is a multitude of methods to make `xrandr` changes persistent, [this](https://unix.stackexchange.com/questions/125556/how-can-i-make-xrandr-changes-persist) and [this](https://askubuntu.com/questions/63681/how-can-i-make-xrandr-customization-permanent) QA have many examples.
+
+## Experiments notes
+
+As a side note and experiments result while using SDDM + KDE, and after many tests to achieve a persistent config, I ended up loading a script with `~/.config/autostart` (`systemsettings5` > Startup... > Autostart), and naming my script `00-scriptname` to make it run first.
+
+```sh
+# 00-scriptname
+
+# Applying the main xrandr suited changes (scaling at x1.15)
+
+xrandr --output eDP1 --mode 1366x768 --panning 1574x886 --scale 1.15226939x1.15364583
+
+# This is where it get odd/complicated, sometimes the screen resolution is not applied correctly or not applied at all... 
+# Note that "xrandr --fb" can be used alone to change the screen resolution on a normal situation... 
+# Here we will be taking advantage of xrandr's "--fb" feature to make the config appliance stable and works every-time.
+
+# The odd thing here is while re-applying the new resolution 1574x886 with "--fb" nothing happen, but 
+# if we use use an unsupported resolution like 1574x884 (vs 1574x886) then xrandr force the resolution 
+# to "reset itself" to the configured resolution (1574x886)... 
+
+# In short just re-apply the setting with "--fb" and an unsupported resolution to force a reset.
+# ("--fb" can be used alone here without re-applying everything)
+
+#xrandr --fb 1574x884 
+xrandr --fb 1574x884 --output eDP1 --mode 1366x768 --panning 1574x886 --scale 1.15226939x1.15364583
+```
+
+
diff --git a/web-css.md b/web-css.md
new file mode 100644 (file)
index 0000000..1dfd9f0
--- /dev/null
@@ -0,0 +1,65 @@
+## WebDev
+
+A few (already working today) somewhat new CSS thingies.
+
+CSS custom properties (or, "CSS Variables"):
+```css
+:root { --main-color: red; }
+div.main { color: var(--main-color); }
+div.fallback { color: var(--main-color, red); }
+```
+
+```css
+element.style.getPropertyValue("--my-var"); // get variable from inline style
+getComputedStyle(element).getPropertyValue("--my-var"); // get variable from wherever
+element.style.setProperty("--my-var", jsVar + 4); // set variable on inline style
+```
+
+
+Info over RGB (and other) colors: now recommanded to use space as sperator (i.e., `color: rgb(0 0 0);`)
+
+Ratio: `height: 100px; aspect-ratio: 16/9;`
+
+For check/radio boxes and progress: `accent-color: green;`
+
+New size units mostly for Android/Apple dumb phones: `svh`, `lvh`, `dvh`: a percentage of Small, Large or Dynamic viewport (Large = fullscreen size, Small = with toolbar)
+
+CSS nesting: 
+```css
+div { .subby { ... } }  /* equals to "& .subby" -- note the space */
+div { &.subby { ... } } /* & can be used for more precision       */
+div { & td { ... } }    /* & is required for if no other symbol   */
+```
+
+
+The `:is` selector: 
+```css
+div > :is(.subby, .fatty) { ... }
+```
+
+Importing: 
+```css
+@import sub.css;
+@import sub2.css layer(myLayer);
+```
+
+Layers: group rules without regard to specifity (also, outside of layers has priority over inside of a layer):
+```css
+@layer layer1 layer2 ... ; /* order           */
+@layer layer1 { ... }      /* rules           */
+@layer { ... }             /* anonymous layer */
+```
+
+### Interesting future CSS
+
+(Do not use, not ready yet, wait a few months/years...)
+
+Color mix: background-color: color-mix(in srgb, #34c9eb 100%, white);
+(Defaults to 50%, can be in hsl or in lab or..., works very well with custom properties.)
+
+The `:has` selector: allows you to select an element depending upon its content (also called *the parent selector*):
+```css
+h1 { color: red; margin: 0 0 1rem 0; }
+h1 :has(h2) { margin: 0 0 0.25rem 0; } /* less margin if a H2 follows it */
+```
+