-
Notifications
You must be signed in to change notification settings - Fork 0
/
linux-notes.txt
1112 lines (695 loc) · 43.5 KB
/
linux-notes.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
## Using totme (gnome's free video player in ubuntu and popos)
Use cli tool i.e., `totem` or you can actually use air or air_silent too, i.e., air totem videoFileName.mp4 .
## amazing i3
https://faq.i3wm.org/question/2562/is-there-a-way-to-focus-the-previous-window/index.html
https://github.com/i3/i3/issues/838#issuecomment-338426921
## Installed postman canary simply
Go to postman official site and download the canary version and extract it to ~ folder, use the script to execute the PostmanCanary binary, yo!! Also, read the file `~/my_bin/postman`.
## Try this from your launcher start epiphany(a webkit powered browser, same as safari):
epiphany
The only thing that you should be keeping in mind about it that you must never use ctrl+shift+c to turn on element selector (though it works but only for 20% case). Just simply click the button 💓︎💓︎ which turns on the element selector in the inspector.
You can open the element inspector with ctrl+shift+i though.💓︎💓︎
🔽︎🔽︎🔽︎
https://stackoverflow.com/questions/40635409/scroll-to-top-not-working-for-safari
https://www.google.com/search?q=emulate+safari+on+linux&oq=emulate+safari+on+linux&aqs=chrome.0.0j69i57.3130j0j1&sourceid=chrome&ie=UTF-8
https://www.google.com/search?q=test+website+for+safari+online&ei=qni2YP6hN8XJrQHc7oygBg&oq=test+website+for+safari+online&gs_lcp=Cgdnd3Mtd2l6EAMyBggAEBYQHjIGCAAQFhAeMgYIABAWEB46BQgAEJECOggIABCxAxCDAToCCAA6BQgAELEDOgQIABBDOgcIABCxAxBDOg0ILhCxAxDHARCjAhBDOgUIABDJA1DkQliZa2Dga2gBcAJ4AIABqwGIAegekgEEMC4yOZgBAKABAaoBB2d3cy13aXqwAQDAAQE&sclient=gws-wiz&ved=0ahUKEwj-nvfVhPfwAhXFZCsKHVw3A2QQ4dUDCA4&uact=5
https://www.lambdatest.com/test-on-safari-7-browser-online#:~:text=Run%20Appium%20Test%20Scripts%20on,cross%20browser%20compatibility%20and%20responsiveness.
https://stackoverflow.com/questions/1825599/testing-web-application-on-mac-safari-when-i-dont-own-a-mac
https://www.browserstack.com/
https://app.eu-central-1.saucelabs.com/dashboard/tests/vdc
https://app.lambdatest.com/console/realtime
https://www.google.com/search?q=test+safari+apps+on+linux&oq=test+safari+apps+on+linux&aqs=chrome..69i57.5561j0j1&sourceid=chrome&ie=UTF-8
https://apple.stackexchange.com/questions/273185/testing-a-website-using-safari-on-linux
https://askubuntu.com/questions/911158/webkit-how-to-test-your-website-on-safari-10
## Installed safari using wine
src: https://www.maketecheasier.com/install-safari-on-linux/
Use command like ``wine explorer`` to open the explorer for wine.🤠︎🤠︎
You can now run the cli binary i.e., `~/my_bin/aliases/safari`, also you can directly run safari from super+/ (i.e., from laucher as well🦸︎🦸︎).
``wine /home/array/.wine/drive_c/Program Files (x86)/Safari/Safari.exe``
# Installed aws cli
NOTE: No need to alias python3 to python during below process at all.
src: https://docs.aws.amazon.com/cli/latest/userguide/install-linux.html
```bash
curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"
unzip awscli-bundle.zip
sudo apt-get install python3-venv #Needed to do this coz below command throws error if you don't install ``python3-venv`` via apt first.
sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws
```
# Installed bcompare software for comparing file and folder, and it seems amazing!! ~from ankur@blulabs
Install from https://www.scootersoftware.com/download.php this site..!!! (sudo apt install fileHere).
# You can check which are the groups currently joined by the user
groups <username>
## DONT" TRY TO RUN IT ON your setup, it suckss! , #Installed chrome-remote-desktop - FAILED<
A good article though: https://kifarunix.com/install-and-setup-chrome-remote-desktop-on-ubuntu-20-04/
First download the .deb file from the https://remotedesktop.google.com/access/ and then i installed it with below command
``sudo apt install ./my-chrome-remote-desktop-deb-file-here``, and i can check the status of this service via below command:
Possibly you need to use below command to restart the app:
systemctl restart chrome-remote-desktop@$USER
``systemctl status chrome-remote-desktop``.
## what does rc stands for in vimrc, eslintrc, prettierrc ??
rc: Recourse Config file.
## The file used for todo.sh program
vi .todo/todo.txt
## Installed alephjs
deno run --reload -A https://deno.land/x/aleph/install.ts
## Installed deno
Uninstall command: https://reactgo.com/uninstall-deno/
rm -rf $HOME/.deno
Used command
```
curl -fsSL https://deno.land/x/install/install.sh | sh -s v1.6.3
#Src: https://github.com/denoland/deno_install/blob/master/README.md#install-specific-version
#Upgrading/downgrading deno(amazingcli): https://stackoverflow.com/questions/66687576/how-to-downgrade-deno
# Since i needed to have version 1.6.3 of deno, i actually reinstalled deno with above commadn to install that version.
curl -fsSL https://deno.land/x/install/install.sh | sh
```
Also, i manually needed to add alias for deno as stated from the logs of above command, so added below line to ``my_bin/sources/source1`` file:
```alias deno='/home/array/.deno/bin/deno'```
Added the deno bin's path to PATH variable in source1 file coz deno was saying so on using deno cli...
```export PATH="/home/array/.deno/bin:$PATH"```
source: official deno docs @ https://deno.land/manual/getting_started/installation
## Want code to format on save for .bash and .sh file ..??
Just install this extension: https://marketplace.visualstudio.com/items?itemName=foxundermoon.shell-format and turn the default format in vsocde setting as null, so that appropriate formatters will be chosen for appropriate files,yo!!🤺︎🤺︎🤺︎
## Just read about the -c option in ``sh``, e.g., ``sh -c``
Searchig in ``man sh`` just helps me out ,yo!!
-c Read commands from the command_string operand instead of from the standard input. Special parameter 0 will be set from the command_name operand and the po‐
sitional parameters ($1, $2, etc.) set from the remaining argument operands.
Example: sh -c 'sleep 3 && echo I was sleeping for 3 seconds'
## If you interested in a minial file manager based on terminal..
Refer this video, it seems amazing: https://youtu.be/L6Vu7WPkoJo
## I disabled the menubar in ``gnome-terminal`
You can get this setting in 'Preferences' > 'Enable the menu accelerator key(F10 by default)'.
And now when I open new terminals, they look so elegant in design🤺︎🤺︎!! Anytime you want the menu bar, just right click in terminal and its there!!
## Little raw notes, but they are helpful though.!!
I have enabled devilspie2 on startup using above screenshot.
I added below line to ~/.profile file so that copyq is opened on user login.
flatpak run com.github.hluk.copyq &
note, i added the last & in the end of the command as it would keep the script executing otherwise the flow of execution will be stopped, and that is what you don't want..!!
#My commands in the end of .profile
devilspie2 --folder ~/my_bin/files/devilspie2 &
flatpak run com.github.hluk.copyq &
#sxhkd -c ~/my_bin/files/sxhkdrc &
#^^ this is to start key-binding software, yikes, src: https://github.com/baskerville/sxhkd
*****
In i3, i changed the scrolling as natural scrolling by using guide as here:
https://askubuntu.com/questions/1122513/how-to-add-natural-inverted-mouse-scrolling-in-i3-window-manager
*****
stop/start gnome desktop manager: sudo service gdm stop, sudo service gdm start
****
Make tap on trackpad behave as usual as demonstrated in this article <3
https://cravencode.com/post/essentials/enable-tap-to-click-in-i3wm/
::ALSO, dont' forget to logout and login after editin that file, also mentioned in the article as well.
****
💝︎💝︎💝︎💝︎ I guess this is information everybody needs to have to be able to set fonts..!!
Read this awesome article : https://jichu4n.com/posts/how-to-set-default-fonts-and-font-aliases-on-linux/
To know what fonts are being used on your system just use below commands:
$ fc-match sans-serif
$ fc-match serif
$ fc-match monospace
#Yikes, src: https://unix.stackexchange.com/a/412474
# They should give you the system default sans-serif, serif and monospace fonts respectively.
***
Turned on focus on hover instead of focus on click via gnome-tweaks extension.
***
Enable tabs in fullscreen too.:
https://superuser.com/questions/43964/firefox-always-show-the-tabs-in-fullscreen-mode
## Fixing vlc mkv files playing..
First of all you must get to know that fixing this isn't a a very good experience. So first of all do this:
#Note if you don't enable restricted extras, you won't be able to install from the ppa ``strukturag/libde265`` as it would throw error when you try to do ``sudo apt-get update`` i.e., the target PPA doesn't has a release file and installing from such ppa's are disbaled by default. Yikes!! Finally I fixed that shit....!!
sudo apt install ubuntu-restricted-extras
#src: https://askubuntu.com/a/1324776/702911
sudo add-apt-repository ppa:strukturag/libde265
sudo apt-get update
sudo apt-get install vlc-plugin-libde265
#src: https://askubuntu.com/a/787584/702911
Also, you might need to choose the different vlc player for the default opening application for mkv files by simply right clicking any .mkv file and choose "Properties" > "Open With"(tab) > and try changing the other "Vlc media player" from the list(as in my current case one Vlc player there is faulty and the other one works good!!). Yo, the main problem with setting my vlc player this time that I couldn't solve the issue that "installing from such ppa which doesn't have a release file are not allowed in ubuntu by default, so get to enable it via installing 'ubuntu-restricted-extras' package first. I hope this was the real process, but for now its fixed at least. Yikes!!
## Using todo.sh, I aliased it to `todo` though
Read about all the possible cli options @ https://github.com/todotxt/todo.txt-cli/blob/master/USAGE.md
src: https://github.com/todotxt/todo.txt-cli
## Not getting your binary from `~/my_bin` in i3wm when you search via $mod+/ in launcher ?
I got below solution from source: https://unix.stackexchange.com/a/335552, but the answer recommends to delete file regenrate the binaries/scripts again using automate process, but in my opinion just adding the script names to the array in the file is SIMPLY GOOD, and it doesn't require you to restart any service, yikes!!🎁︎
The solution is very simple, i.e., add the name of script to `~/.cache/dmenu_run` file. Say, I just added `youtube-tv` and `skype` to the list of array, and now it works super awesome.!!💝︎💝︎
## Installed lolcat that I can use any output to be rainbow coloured:
src: https://github.com/busyloop/lolcat
for e.g., ```ls -al | lolcat```
for e.g., ```cat anyFile | lolcat```
## Installed php
FYI: The purpose of chainging the default directory to server is that we get to do everything as sudo to anything in the /var/www/html directory and thats a little absurd.
FYI: You can restart apache service with ``restartApache2Service`` 🍋︎ my_bin binary, yikes!
FYI: Php doesn't work when you server files via live-server( or serve binary too) like servers ~tested by sahil.
FYI: See this if you want watching: https://sergeyzhuk.me/2019/10/18/php-watcher/
FYI: Default location to server apache files from: ``/var/www/html``
FYI: Change the path of default serving directory by apache2 by editing below config file:
``sudo vi /etc/apache2/sites-available/000-default.conf``
Also do the same in => sudo vi /etc/apache2/apache2.conf
src: https://stackoverflow.com/a/23175981/10012446
I guess you just need to have ``apache2`` installed on your linux to be able to run php files on your server.
Hello world example:
Place your desired php program file @ below location:
``/var/www/html/myfile.php``
with contents as
```
<?php
echo "<h1>Hello World 123</h1>";
echo "Hello World 123";
?>
```
and now browser ```http://localhost/myfile.php``` in browser, yike!!
```bash
sudo apt-get install php libapache2-mod-php
php -v #verify php was installed.
sudo systemctl restart apache2 #Restart the Apache service to apply the changes:
```
src: https://phoenixnap.com/kb/install-php-7-on-ubuntu
But imo this is cool too: https://youtu.be/TKLPDbSqOPY
## Get title name and class name of a window ?
execute command ``xprop`` in your terminal and click any window to get all its details.
For simple shortcut, use
xprop | grep 'CLASS'
src: https://www.reddit.com/r/i3wm/comments/3h94t9/how_to_find_a_name_of_a_program_to_use_for/?utm_source=share&utm_medium=web2x&context=3
## Popular linux repos for softwares
snap and flathub are two popular repos for linux softwares.
https://snapcraft.io/
https://flathub.org/
## To use cp/mv for copy/move multiple files/folders from a source to target use below methods, yikes!!
cp -t ~/my_target_folder
## Gnome screen shot cli usage::
gnome-screenshot -c #to clipboard
gnome-screenshot -w #active window
gnome-screenshot -a #custom area
gnome-screenshot -p #include mouse pointer
gnome-screenshot -i #set options interactively, yikes!!!
## List of screenshot capture utils @ arch linux docs:
https://wiki.archlinux.org/title/Screen_capture
## 9 best screencast softwares:
https://itsfoss.com/best-linux-screen-recorders/
## 10 best screencast softwares:
https://www.tecmint.com/take-or-capture-desktop-screenshots-in-ubuntu-linux/
## shutter is not very popular or developed, magick is very popular and developed though.
## Magick basic usage: (i installled it to my_bin though but using gnome-screenshot for now with i3):
https://legacy.imagemagick.org/Usage/basics/
## using fallback in bash is same as js though
echo Correct command || echo Command falied message...
Output:
Correct command
Command failed message...
ech Correct command || echo Command falied message...
Output:
no command ech found.(linux error shit)
Command failed message...
## Using i3lock from cli:
Learn more about i3lock cli options @ `man i3lock` command.
i3lock -p default
# ^^ enable mouse pointer to display
i3lock -i ~/my_bin/files/wallpapers/geometric.png
# ^^ only png images.
i3lock -u
# ^^ for no keyboard type alert or verifying or failed notification, yikes!! secret things..!!
i3lock -f
#^^ shows failed attempts
i3lock -e
## ^^ ignore empty password.
## Convert to desired resolution in linux(for i3lock)
convert -scale 1920x1080 unleash-potential.png unleash-potential-scaled-lockscreen.png
// To get resolution for current desktop, use below command:
xdpyinfo | grep 'dimensions:'
## Convert webp image format to png image format.
src: https://winaero.com/convert-webp-png-linux/
ffmpeg -i file.webp ouputfile.png
//or use
dwebp file.webp -o file.png
// you must have installed: apt install webp
## convert png to webp
cwebp file.png -o file.webp
// you must have installed: apt install webp
## Installed calc, hence we can use `calc` from cli to do calculations
src: https://www.maketecheasier.com/use-linux-terminal-as-calculator/
## insatll sxhkd
You don't need sxhkd for i3 though.
```
sudo apt install sxhkd
sxhkd
```
src: https://github.com/baskerville/sxhkd
## Started Using copyq as clipboard manager
Started using `Copyq` as Cclipboard manager and assigned ``ctrl+shift+q``, also ``q`` is more relatable to the name ``copyq`` for global shortcut binding to show/hide the copyq, yikes!!!
## Move windows across same group, multiple groups, and shrink/expand selection
::alt+shift+right/left : To expand/shrink selection
::ctrl+alt+shift+right/left: Move current tab to left/right like as you do in chrome/firefox.
::(Inbuild though)ctrk+k left/right/up/down: Move current to different groups of tabs, yikes!
## Focus windows using wmctrl
wmctrl -l #shows list of windows with window id, window title, etc.
wmctrl -a <window-id> -i #This will focus to the desirable window, but if thats a floating window i.e., "Always on visible workspace" then wmctrl just switch to the desktop in which it was opened at first. :( And that breaks what i want it to do for emoji-picker, time-spend to fix this: 8hrs.
Get list of currently opened windows using this tool as https://unix.stackexchange.com/a/635740 and its pretty.
## To run any program or a series of command at user startup:
Just put `command_shit` in the end of your `~/.profile` file, and it works out of the box, yikes!
Do remember to put & in the end of a command that is supposed to be non-terminating process command, else your login process will be disturbed coz linux waits for .profile script to finish executing and conitue the login essential processes thereby.
## Run 🏇︎ 🏇︎script on user login(for setting `Always on Visible Workspace` for emoji-picker)
src: https://unix.stackexchange.com/a/56088
my notes: Simply make an executable script say `myscript1.sh` (with #!/bin/bash shebang at file top) and copy it to ` /etc/profile.d` directory and you are done.
## Minimise window?
Added shortcut win+x (in keyboard shorcuts in pop os settings) to hide active window, yikes!!
## Enable auto rename tag(for html), now vscode has builtin support for this
enable it via searching for "editor.linkedEditing" in settings, and enable it.
## Install workrave from pop shop
Yikes!!
## insatlling kvm in popos
sudo apt install qemu-kvm
Now to install a gui to handle kvm, you must install "Virtual Machine Manager" from the pop shop or install it via below command -
sudo apt install virt-manager
Also, I had problems with directly opening virtd-manager via launcher or via cli virt-manager, but this problem is solved by opening it via - `sudo virt-manager`, yikes!
* A simple fix for this could be like, add an alias to your .bashrc file, i.e.,
alias virt-manager='sudo virt-manager'
, yikes!!, and problem is solved for ever, and now your qemu must be connected to virt-manager(UI for kvm, yikes!).
src: https://askubuntu.com/a/731709/702911
## Firefox extensions
Tip: Ctrl+shift+a to open addons in firefox!
* Extension: SuprHotKeys by Gaurav Kumar
Select any text and use ctrl+shift+space to search for it using google, yikes!!.
* Extension: Move Tab Hotkeys by Jonathon Merz
Default Hotkeys:
Alt+Shift+Left: Move tab one to the left, wrapping to the right end if the tab is currently in the first position
Alt+Shift+Right: Move tab one to the right, wrapping to the left end if the tab is currently in the last position
Alt+Shift+0: Move tab to the start of the tab bar
Alt+Shift+9: Move tab to the end of the tab bar
* Extension: Pin Unpin Tab by Jayesh Bhoot;; src: https://addons.mozilla.org/en-US/firefox/addon/pinunpin-tab/
Note: this extension already comes up bundled with alt+p keyboard shortcut, you can configure it to some other shortcut too. Remember to set different hotkey, press ctrl+shift+a to open addons, and click the gears button in top right, and then choose "Manage Extension Shortcuts".
## using snowpack
`npx create-snowpack-app my-react-app --template @snowpack/app-template-react`
## You must set emmet's setting for:
` "emmet.showExpandedAbbreviation": "inMarkupAndStylesheetFilesOnly"`
as, this will not show emmet abbreviation in intellisense, and also you should set a hotkey for emmet exapansion as `ctrl+e`, yikes!s
## installation guide from yarn for ubuntu using ppa thing:
https://classic.yarnpkg.com/en/docs/install/#debian-stable
## installed pip3 via - sudo apt install python-pip
pip3 --version
## using chown
chown array:array file/folder or .
chown -R array:array file/folder or .
:FYI - The signature is user:group
## git unstage: use binary `gu` from now onwards, it'll unstage everything even if you are in a nested folder of the git repo.
## git diff HEAD to diff between the `last commit`(i.e., HEAD) and the index(staged area).
Read this stackoverflow answer to learn about
## change default branch name to `main` made when we do `git init` by below command
```
git config --global init.defaultBranch main
#This makes chagnes to .gitconfig file in the ~ directory.
```
src: https://stackoverflow.com/a/42871621
## my browser is getting bad font: i.e., Arial, "Helvetica Neue", Helvetica, sans-serif
and specifically its "Helvetica Neue"
:: Increased the delay of double click for popos ,now doble click works pretty comfortably in nautilus app.
::filter today modified file/folders:
ls -al | grep "Mar 29"
:: install anbox(amazing android emulator made for linux):
sudo snap install --devmode --beta anbox
refer official site though: https://docs.anbox.io/userguide/install.html
#note: installv via snap didn't work :(
#note: this thing helped though: https://www.youtube.com/watch?v=UDFnebCd50Q
#install apps simply via:
adb install path_to_myapp.apk
src: https://docs.anbox.io/userguide/install_apps.html
install playstore to anbox:
source:
https://www.linuxuprising.com/2018/07/anbox-how-to-install-google-play-store.html
https://github.com/geeks-r-us/anbox-playstore-installer/
--when opening playstore(after giving all permission to playstore, at the opening app) i used below command to be able to get the login screen in playstore, yikes!! =>
sudo /snap/anbox/current/bin/anbox-bridge.sh start
=---note- my jio-app installed via apk didn't work, even when i installed jio tv from playstore, it didn't work: so i gave it all permission from "Settings>apps> jio tv", not it behaves superb!!
## Using npm while doing
```
npx create-react-app my-app --use-npm
```
src: https://stackoverflow.com/a/61938578
Move multiple folders files to a destination directory using -t flag for mv
E.g., mv -t target/ file1 file2 folder1 folder2
*Notice: You shouldn't use `/` in the end for source folders, othersie the contents insisde that will be moved.
src: https://askubuntu.com/a/217067
## Added ctrl+e to expand emmet in vscode shortcuts, yikes!!
## vlc
1. ctrl+p, choose "simple" in preferences, and tick "Start in minimal view mode", yikes!!
2. ctrl+p, choose "simple" in preferences, and untick "Resize interface to video size", yikes!!
## Make the screencast record more than 30s !!
Just execute the command as suggested in the url @ https://askubuntu.com/a/996955 to extend the max second to 600 secs, i.e., 10mins.
```bash
gsettings set org.gnome.settings-daemon.plugins.media-keys max-screencast-length 600
```
## mongodb MONGO_POOLSIZE flag in mongodb nodejs driver
Default value is 5.
src: https://stackoverflow.com/a/52347027
src2: https://medium.com/@kyle_martin/mongodb-in-production-how-connection-pool-size-can-bottleneck-application-scale-439c6e5a8424
src3: poolsize managing if you are using mongoosejs: https://mongoosejs.com/docs/connections.html#connection_pools (default value is 5 though)
wild: increasing max no. of connections for mongodb: https://stackoverflow.com/questions/16713415/mongodb-increasing-max-connections-in-mongodb
## Make your vim's backspace work as by default backspace use compatibility mode as mentioned in link as mention in [here](https://askubuntu.com/a/296396)
So, the solution is [there too](https://askubuntu.com/a/370458) that too, yikes!!
FYI: vi ~/.vimrc, and add below two lines:
```
set nocompatible
set backspace=2
```
Now, everything works fine with vim as I expect, yo!!
## Disable vscode upate notification: https://stackoverflow.com/a/43780004 , yikes!!
So I have check updates to manual i.e., update when i say update!!, yo!
## Article I follwed: https://medium.com/founding-ithaka/setting-up-and-connecting-to-a-remote-mongodb-database-5df754a4da89
{Beware do not use user authentication, i.e., do not add users and do not uncomment security in config file, and use db without any authentication}.
* a almost same article : https://medium.com/@Hardy2151/how-to-connect-to-your-remote-mongodb-server-68725a8e53f
* a latest article on doing same thing: https://www.digitalocean.com/community/tutorials/how-to-configure-remote-access-for-mongodb-on-ubuntu-20-04
sudo mongo "mongodb://124.253.64.111:27017"
### Make your mongod's settings via by executing:
```
sudo vi /etc/mongod.conf
```
and make setttings like below:
```toml
net:
port: 27017
bindIp: 0.0.0.0
```
The answer that helped: https://stackoverflow.com/a/35063229
```bash
ps -aux | grep mongod
# ^^^^ to get the pid and then use
sudo kill pid
# ^^^ to actually kill coz sudo `systemctl restart mongod` or `sudo systemctl stop mongod` don't work actually for my case.
mongod --fork --logpath /var/log/mongod.log
sudo lsof -i | grep mongod #Tells the mongod port running on...
sudo iptables -L
sudo service mongod restart
sudo vi /etc/mongod.conf
sudo systemctl restart mongod
- nextjs and netlify latest article, yikes!!: https://www.netlify.com/blog/2021/03/16/try-the-new-essential-next.js-plugin-now-with-auto-install/
- link inside that article to make nextjs site instantly with backend api's working too(if you need to enable cors too you should have a next.confi.js file similar to: https://github.com/sahilrajput03/next-netlify-starter/blob/main/next.config.js )
Running slow as see output from `free -h`
[src](https://unix.stackexchange.com/questions/415814/memory-runs-full-over-time-high-buffer-cache-usage-low-available-memory).
```
#This will probably remove all your caches from the os!(won't hurn in any way though)
sudo -i
free -h && sync && echo 3 > /proc/sys/vm/drop_caches && free -h
```
!!!!!!!!!!!!!>>>>>>>>>>>..FIX the vim backaspace shit now!!!!!!!!!!!1
## Github workflow enabling/disabling manually from github:
https://docs.github.com/en/actions/managing-workflow-runs/disabling-and-enabling-a-workflow
### Important: If you face password prompting duing git push??
Probaly the reason is you have cloned the repo from github, and thats why it needs you to enter password everytime.. So, how to fix it..?
Just do:
```
git remote -v #Show remotes.
git remote rm origin #Remove origin remote.
hub create #Caution folder name must be same as repository name, otherwise you need something like `hub create repo_name` inspite of just `hub create`.
```
Now after readding the remote, it'll not ask for any password on each push request, yikes!!
### linux
- If you type command alias in your cli, it'll show you all the aliases you have in `.bashrc` or the `config.fish` file corresponding to the shell you are using.
- Using cron, use `crontab -e` to edit the crontab file. You are only asked the first time for the editor to use to edit the file.(Though you can manually change the editor later on using command `select-editor`, yikes!!
Use https://crontab.guru/every-1-minute to make some cool cron patterns.
```bash
#Both of below ways work equally good in crontab file, (get it via `crontab -e`) !!!
#* * * * * /home/array/my_bin/req
#* * * * * ~/my_bin/re
```
- Running cron jobs for time less than one minute: visit => https://stackoverflow.com/questions/1034243/how-to-get-a-unix-script-to-run-every-15-seconds/1034304#1034304
## ..??
https://t.me/fullstackcourse/114099### Heroku apps sleep ??
Read about it here(awesomely explained, PLEASE READ THIS IN WHOLE TO UNDERSTAND THE HEROKU SERVICES..): https://devcenter.heroku.com/articles/free-dyno-hours#dyno-sleeping
tl;dr;
If an app has a free web dyno, and that dyno receives no web traffic in a 30-minute period, it will sleep. In addition to the web dyno sleeping, the worker dyno (if present) will also sleep.
### Error: a step cannot have both the `uses` and `run` keys, yikes!!!! (learn this is rule in github actions).
### Install act, a local workflow tester, yikes!
```
sudo curl https://raw.githubusercontent.com/nektos/act/master/install.sh | sudo bash
# For available comaands from act cli, visit: https://github.com/nektos/act#commands
```
## Install docker, yikes
```bash
#Date: 15March, 2021.
#Below commands are prepared by me from: https://docs.docker.com/engine/install/ubuntu/
#*****NOTE YOU MUST EXECUTE BELOW SCRIPT IN A BASH SHELL, SO IF YOU ARE USING FISH AS DEFAULT SHELL THEN YOU CAN SIMPLY GET BASH SHELL VIA TYPING `BASH` IN FISH SHELL, YIKES!!*******
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
# Verify that docker is installed using below command.
sudo docker run hello-world
```
*To install: follow instructions here: https://docs.docker.com/engine/install/ubuntu/#uninstall-old-versions
## Install tree for printing folder structure to the commandline
```bash
sudo apt install tree
tree -I node_modules #tree command by default doesn't print hidden files and folder(i.e., files prefixed with . in filename).
tree -aI '.git|node_modules' #This is best. (now aliased to `trees` in my_bin).
# src: https://zaiste.net/posts/tree-ignore-directories-patterns/
```
## Install heroku in ubuntu 16+ with below command
`sudo snap install --classic heroku`
#### What font to use for VSCODE and GNOME TERMINAL so that it supports every symbol and everything looks cool?
**Short answer**: Use **Fira Code**, see **I**nstructions, **D**ownload link and **I**nstallation process for both vscode and linux (you got to set **Fira Code Regular** or other fira font variant in that repo too) @ [here](https://github.com/tonsky/FiraCode) for both Yikes!
It works amazing for vscode and amazing for gnome terminal as well.
### How can I run a command which will survive terminal close?
stackoverflow's answer [here](https://unix.stackexchange.com/a/4006).
My notes:
```bash
$ nohup myProgram &
### or use below
$ myProgram &
$ disown
```
### For`sudo shutdow now` and `sudo reboot` help visit the gits you made @gist.
Nothing to discuss here now!
### ssh thing
- Know about passing password as argument usign `sshpass`, install it via `sudo apt install sshpass`. Know more [here](https://serverfault.com/a/946191).
- Install and run ssh on some pc by following this article [here](https://dev.to/zduey/how-to-set-up-an-ssh-server-on-a-home-computer).
- Now you can ssh a pc using
```bash
sshpass -p 'target-pass' ssh sahil@192.168.18.17 #Where taget-pass is the password of target machine, yikes!!
```
***
- You can get path of global `node_modules` folder for npm in linux via: `npm root -g` and **Ouputs:** `/usr/lib/node_modules`. src: [here](https://stackoverflow.com/questions/24830586/where-do-global-npm-packages-get-installed-on-ubuntu). Also note that, `npm get prefix` **Ouputs**: `/usr` though.
- Set NODE_PATH in linux as `/usr/lib/node_modules/`-
```bash
# in your ~/my_bin/my_bashrc_sources/source1 file add below line to make node detect globally installed modules, yo!!
export NODE_PATH=/usr/lib/node_modules #This works yikes!!
```
```bash
type node
type npm
```
### For linux systems by default npm uses /usr directory to install any global packages
You can verify that via:
```bash
sudo npm install -g markdown-styles
type generate-dm #Outpus: /usr/bin/generate-md
```
### To add a path to the path variable, simply do this..
```bash
$ sudo gedit /etc/environment
# and add the path there, and logout and login from there, otherwise if you don't want to feel the pain of login and logout, you can simply use the export thig as suggested by everyone one internet though., yikes!!
```
### Using snippy
Source: snippy is made using dmenu(a gui maker for anything in linux), visit a short tutorial in linux for dmenu, download from [here](https://tools.suckless.org/dmenu/) . Visit awesome docs for dmenu [here](https://dmenu.readthedocs.io/en/latest/).
For the source code of snippy get it [here](https://github.com/gotbletu/shownotes/blob/master/snippy.sh). For snippy tutorial demo [here](https://youtu.be/90xoathBYfk). Also try making something out of dmenu's info @ arch's linux @ [here](https://wiki.archlinux.org/index.php/dmenu).
* Place your snippet files under ~/.snippy folder and you can organise them into different folders too, yikes!!
For subsitution of Auto hotkey(python's implementation though) and linux, visit [here](https://unix.stackexchange.com/questions/165124/autohotkey-equivalent#:~:text=There's%20a%20port%20of%20AutoHotKey,unix%20systems%20is%20the%20shell.), and [here](https://github.com/autokey/autokey).
### Installing snap for cacher - a snippet manager tool
```bash
$ sudo apt update
$ sudo apt install snapd
# src:https://snapcraft.io/docs/installing-snap-on-pop
# test if its installed correctly via below commands:
$ sudo snap install hello-world
hello-world 6.3 from Canonical✓ installed
$ hello-world
Hello World!
```
### Install cacher only after installing snap on Pop OS!
source : https://snapcraft.io/cacher
another article on snippet manager: https://dev.to/tomlangdon/5-code-snippet-managers-that-will-change-the-way-you-write-code-10ml
anthoer one: https://www.slant.co/topics/7247/~code-snippets-manager#10
```bash
sudo snap install cacher
```
### Amazing map capslock key to esc and use shift+caps to general caplock toggling behaviour
```bash
sudo apt install gnome-tweak-tool
sudo apt install xcape
```
Then simply go to launcher and type **Tweaks** , then navigate to **Keyboard and Mouse**, then choose **Additional Layout Options** and then choose **Capslock Behaviour** and select **Make unmodified Caps Lock an additional Esc, but Shift + Caps Lock behaves like regular Caps Lock**, yikes, and now it works great!!, yikes!!
### omf theme
```bash
omf install agnoster #Yikes!!
omf install emoji-powerline
omf install fishbone
#Use omf remove <theme-name> # To remove any current theme, yikes.
```
source: [link for emoji-powerline](https://github.com/oh-my-fish/oh-my-fish/blob/master/docs/Themes.md#emoji-powerline)
source: [link for agnoster](https://github.com/oh-my-fish/oh-my-fish/blob/master/docs/Themes.md#agnoster)
source: [link for fishbone](https://github.com/oh-my-fish/oh-my-fish/blob/master/docs/Themes.md#fishbone)
### Installed "powerline fonts" (required for omf theme to work!)
Source: [github repo](https://github.com/powerline/fonts)
Code that simply worked, yikes!!
```bash
# clone
git clone https://github.com/powerline/fonts.git --depth=1
# install
cd fonts
./install.sh
# clean-up a bit
cd ..
rm -rf fonts
```
### Fix git's unexpected error while creating a ssh key
source: [here](https://stackabuse.com/how-to-fix-warning-unprotected-private-key-file-on-mac-and-linux/), worked well! 🏓
## Customize pop OS official article
https://support.system76.com/articles/customize-gnome/
## Bring already running program to front
```bash
sudo apt-get install wmctrl
# For shortcut to emoji-picker and to bring to front if already running.
xdotool search --classname emoji-picker windowactivate || emoji-picker
gnome-terminal -e /home/array/my_bin/run_emoji_picker
# I installled xclip to copy something to clipboard and also added alias for it, i.e.,
# alias clip='xclip -sel clip' # and now it works greatly!
# src: https://linuxize.com/post/how-to-add-directory-to-path-in-linux/
# IT IS COMPULSORY TO ADD YOUR BINARIES PATHS TO /etc/sudoers file, as then only sudo will know your binaries, yikes!!
# Use below command to add your executable(in /home/my_bin) accessible by sudo:
$ sudo visudo /etc/sudoers
# and add /home/array/my_bin to the secure_path variable, yikes!! (Now sudo will recognise your binaries in that /home/array/my_bin directory too.) Tip: Why does one needs visudo? => https://serverfault.com/a/26306
# Use below command to add your executable(in /home/my_bin) accessible by bash shell:
$ vi ~/.bashrc
and add the line:
export PATH="/home/array/my_bin:$PATH"
# Now shell will recognise your binaries in /home/array/my_bin directory too.
# To able to access all aliases (defined in ~/.bashrc file) from sudo, you must add the alias sudo to you ~/.bashrc file, i.e.,
alias sudo='sudo '
# Now all aliases will be available to your sudo command too, yikes!!, src: https://unix.stackexchange.com/a/148548
# Make shorctut to a script, program, etc directly by specifying script apth in the command box.
# Install bat file reader by first downloading the .deb package from: https://github.com/sharkdp/bat, (releases page@https://github.com/sharkdp/bat/releases)
# use below command to install:
sudo dpkg -i ~/Downloads/bat-musl_0.18.0_amd64.deb # Yikes, bat is installed now..!
# Install fish :
sudo apt install fish
set fish_greeting # This will remove the message though.
set fish_greeting "Have an awesome day!!" # This will set some message though.
# I not using any oh-my-fish themem though.., :)
chsh -s /usr/bin/fish # Yess, this did work, yikes!!
cat /etc/passwd # Verify that shell is changed in this file (** YOU NEED TO LOGOUT AND LOGIN AGAIN TO SEE THE EFFECT..),yikes! src: https://askubuntu.com/questions/195361/chsh-s-usr-bin-zsh-not-working
curl -L https://get.oh-my.fish | fish
# src: https://youtu.be/wpinXVpL5-U
#Installed hub
sudo apt install hub
```
# Log in as root
`su -s`
### Shortcuts in gnome terminal
- ```bash
gsettings set org.gnome.Terminal.Legacy.Keybindings:/org/gnome/terminal/legacy/keybindings/ next-tab '<Primary>Tab'
gsettings set org.gnome.Terminal.Legacy.Keybindings:/org/gnome/terminal/legacy/keybindings/ prev-tab '<Primary><Shift>Tab'
```
src: [Link](https://askubuntu.com/a/134632), yikes, above does ctrl+tab and ctrl+shift+tab binding for the gnome shell, yikes!!
- Also, do the binding for closing current tab with `ctrl+q` binding. Also add binding for 'Move current tab' to right or left using `alt+shift+left` and `alt+shift+right` binding, yikes! Also add the keybinding to create new terminal using ctrl+t, yikes!.
- Also added shortcut for `ctrl+v` for pasting in gnome shell, yikes!!
### Enable always show folder path in nautilus using some tool..!, i need that!!!...
This was really helpful, as single command did the work I needed, yikes..!
## Installed Emoji picker
Install from pop shop(Optionally if your emoji picker doesn't have emoji's then do, `sudo apt install fonts-noto fonts-noto-color-emoji` to get all those, yikes)
Added custom shortcut in keyboard settings i.e., `Super key + d` , as 😄😄😄 looks good as in emojis.
I assigned the command `emoji-picker` to the shortcut.
## A question about suspend and hibernation in linux...
src: https://tinyurl.com/y952e73c
src of ubuntu help: https://tinyurl.com/y952e73c
## Scripts on gist
- "Using rm to delete nested node_modules folder", you can find the script on gist, yikes..!
## What did i do to setup hibernation..?(not done yet..!!)
sudo apt install kernelstub
sudo kernelstub -a "resume=UUID=a093586f-f74a-41f8-a1ab-b983a8f7388b"
#Where UUID=<your uuid for swap drive>.
kernelstub -a "resume=PARTUUID=287d698e-06"
## What to do to setup grub for dual boot with windows..?