<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">

<channel>
<title>Ryo's Website</title>
<link>https://ryo.nopwd.lol</link>
<description>Notes about linux and foss</description>
<language>en-us</language>
<link href="https://ryo.nopwd.lol/rss.xml" rel="self" type="application/rss+xml"/>

<item>
<title>Searxng using Docker and Nginx</title>
<link>https://ryo.nopwd.lol/note/long.html#searx</link>
<pubDate>Sat, 24 Aug 2024 17:45:44 +0000</pubDate>
<guid>https://ryo.nopwd.lol/note/long.html#searx</guid>
<description>
<![CDATA[
<pre>
You don't need to be a docker wizard to setup searxng, i'll show you step by step.
Unfortunately we are banned from Docker Hub so you should do something:
- registry key (the one i use)
- dns/proxy

Change the registry key in Docker Daemon file:
<code>
/etc/docker/daemon.json
-------------
{
  "registry-mirrors": ["https://docker.iranserver.com"]
}
</code>
Or you can pass it through the daemon as an argument:
<code># dockerd --registry-mirror "&lt;url&gt;"</code>

I like to run Docker as a non-root user, so first add your user to 'docker' group:
<code># usermod -a -G docker &lt;user&gt;</code>

! Now if you want to run Searxng on your pc for testing purposes, just follow
the <a href="https://docs.searxng.org/admin/installation-docker.html">original document</a> . I'll show you the setup in a vps with domain, so it depends
on your needs to follow or not.

First you need a domain/sub domain, i like the name sx.&lt;domain&gt; but it's yours.

- create a directory for the Container and cd to it.
- choose a port for docker, i choose 1234 for example.

Pull the image:
<code>$ docker pull searxng/searxng</code>
Create and run the container:
<code>$ docker run --rm -d -p 8791:8080 -v "${PWD}/searxng:/etc/searxng" searxng/searxng</code>

!! the important thing you should do is this option in 'searxng/settings.yml' file
that you need root access to edit:
<code>base_url: https://sx.nopwd.lol/</code>
* just search for 'base_url' and change it from 'false' to the url you want.

It's time to setup Nginx and we are done.
! Setup SSL with Certbot and change domain.com to you own.

<code>
server {
	listen 80;
	listen [::]:80;
	server_name domain.com;

	location / {
		proxy_pass http://127.0.0.1:8791/;
		proxy_buffering off;
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP \$remote_addr;
	}

	listen 443 ssl;
	ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem;
	ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem;
	include /etc/letsencrypt/options-ssl-nginx.conf;
	ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
</code>

Just reload the server and done!
<code>$ systemctl reload nginx</code>

I hope this article helped you, it took me some days to figure it out.
</pre>
]]>
</description>
</item>

<item>
<title>Proxy in terminal</title>
<link>https://ryo.nopwd.lol/note/small.html#proxy</link>
<pubDate>Sat, 24 Aug 2024 15:43:30 +0000</pubDate>
<guid>https://ryo.nopwd.lol/note/small.html#proxy</guid>
<description>
<![CDATA[
<pre>
First of all you should know that <b>most</b> of the downloading and uploading are done
by <a href="https://curl.se">curl</a> program. in this article i'm talking about telling
this program to use proxy and how to use shell to make this process faster.

As the manpage says it looks for two environment variables that you should export:
<code>$ export http_proxy="http://&lt;address&gt;:&lt;port&gt;"</code>
for example:
<code>$ export http_proxy="http://127.0.0.1:2081"</code>
and also another one for https protocol:
<code>$ export https_proxy=$http_proxy</code>

Programs mostly use curl for transfering data so now you are using proxy. when you done
your job and don't want to use proxy anymore, you should unset this variables:
<code>$ unset http_proxy https_proxy</code>

You can simply make a shell function for toggling proxy. put this in your '.bashrc'
or '.zshrc' and if you are using fish you shouldn't use that:
<code>
proxy_connect=0
PS2=$PS1
toggle_proxy() {
  if [[ "$proxy_connect" -eq 0 ]]; then
    export http_proxy="http://127.0.0.1:2081"
    export https_proxy=$http_proxy
    proxy_connect=1
    echo "activated"
    PS1="%{$fg[red]%}][proxy]%{$reset_color%}$%b "
  else
    unset http_proxy
    unset https_proxy
    proxy_connect=0
    echo "deactivated"
    PS1=$PS2
  fi
}
</code>

Now you can simply use that function:
<code>$ toggle_proxy</code>
When you are done:
<code>$ toggle_proxy</code>

I hope this article helped you. you can email me: ryo@nopwd.lol
</pre>
]]>
</description>
</item>

<item>
<title>New Video</title>
<link>https://ryo.nopwd.lol/data/void-install.mkv</link>
<pubDate>Wed, 05 Jun 2024 07:21:05 +0000</pubDate>
<guid>https://ryo.nopwd.lol/data/void-install.mkv</guid>
<description>
<![CDATA[
<pre>
I uploaded the screen record of me installing the voidlinux in qemu.
You can watch it online:
<code>$ mpv https://ryo.nopwd.lol/data/void-install.mkv</code>
</pre>
]]>
</description>
</item>

<item>
<title>Send signal to process</title>
<link>https://ryo.nopwd.lol/note/small.html#signal</link>
<pubDate>Wed, 22 May 2024 04:39:30 +0000</pubDate>
<guid>https://ryo.nopwd.lol/note/small.html#signal</guid>
<description>
<![CDATA[
<pre>
In unix you can send different signals to processes or group of processes.
Think of it as a command, you send that to a program for different goals.

*) How can i send that?
There is a simple CLI program called 'kill' for this job.

List all signal names
<code>$ kill -l</code>

Send a signal &lt;signame&gt; to a process with id &lt;pid&gt;:
<code>$ kill -s &lt;signame&gt; &lt;pid&gt;</code>
Also you can put signal number instead of it's name:
<code>$ kill -&lt;signum&gt; &lt;pid&gt;</code>

*) How to find a process id(pid)?
You can find it using 'pgrep', for example to find the pid of surf browser:
<code>$ pgrep surf</code>
Note: if you have multiple instances of a program, you will get the pid of all of them.

*) How 'kill' command itself works?
The 'signal' is a concept in unix so you use it in your C programs, this 'kill' command is just
a program that uses this feature. For more information go to the /usr/include/signal.h header file.

For example in <a href="https://surf.suckless.org">Suckless Surf</a> browser you can reload the current page by SIGHUP signal(through the surf manpage).
<code>$ kill -s SIGHUP $(pgrep surf)</code>
</pre>
]]>
</description>
</item>

<item>
<title>Vim macro demo video</title>
<link>https://ryo.nopwd.lol#video</link>
<pubDate>Sun, 19 May 2024 17:42:38 +0000</pubDate>
<guid>https://ryo.nopwd.lol#video</guid>
<description>
<![CDATA[
<p>
I started to put videos in my website, first about the
<a href="https://ryo.nopwd.lol/data/vim-macro.mkv">vim macro</a>.
</p>
]]>
</description>
</item>

<item>
<title>Screen Brightness</title>
<link>https://ryo.nopwd.lol/note/small.html#brightness</link>
<pubDate>Sat, 18 May 2024 03:29:37 +0000</pubDate>
<guid>https://ryo.nopwd.lol/note/small.html#brightness</guid>
<description>
<![CDATA[
<pre>
- This solution does not depend on x11 or wayland.
- You don't need root permission.

There is program called <a href="https://github.com/Hummer12007/brightnessctl">brightnessctl</a> that you can use for this job, That's included
in many distributions like Arch and Void. Simply set the brightness:
<code>$ brightnessctl set 400</code>

*) I wrote this simple script to avoid being flashbanged when starting computer at night:
----------
now=$(TZ=Iran date +%H)
night=21
morning=6

if [ "$now" -ge "$night" ] ||
   [ "$now" -le "$morning" ]
then
  brightnessctl set 300
else
  brightnessctl set 600
fi
----------

You should run this script at startup, for example in .xinitrc file:
<code>dash /path/to/script.sh</code>
<b>Note:</b> Remember to place it somewhere before executing the window manager.

*) Also you can give shortcuts to increase/decrease the brightness.
For example in bspwm config file:
<code>
super + F11
	brightnessctl set +50

super + F12
	brightnessctl set 50-
</code>
</pre>
]]>
</description>
</item>

<item>
<title>Installing GTK themes</title>
<link>https://ryo.nopwd.lol/note/small.html#gtk</link>
<pubDate>Wed, 15 May 2024 09:54:32 +0000</pubDate>
<guid>https://ryo.nopwd.lol/note/small.html#gtk</guid>
<description>
<![CDATA[
<pre>You can easily install new GTK themes, just follow this steps:

First download the theme and check that it contain xfwm folder, for example you can get
my favorite one <a href="https://github.com/thesquash/gtk-theme-raleigh/">Raleigh</a>, old but gold.

Now you should move the theme folder(e.g /themes/Raleigh-Dark) to a specific path like
$HOME/.local/share/themes(you can put it in $HOME/.themes but don't do it). Also move the icon
folder(e.g /icons/Raleigh-Dark) to $HOME/.local/share/icons.

More info in <a href="https://wiki.archlinux.org/title/GTK#Configuration_tools">arch wiki</a>.
Then just tell the GTK to use this theme and icon:
<code>
~/.config/gtk-3.0/settings.ini
------------
[Settings]
gtk-theme-name = Raleigh-Dark
gtk-icon-theme-name = Raleigh-Dark
</code>
Done! Just quit and reopen the gtk apps.

* But i don't like this boomer theme
Most of the people not going to like my opinion, for them i suggest <a href="https://github.com/ubuntu/yaru">Yaru</a>.
It is a bloat one so it take some minutes to clone, also you can just get latest tag.

After cloning or extracting the compressed tag you should build and compile it:
<code>$ mkdir build; cd build</code>
<code>$ meson setup . .. -D prefix=$HOME/.local -D buildtype=release</code>
<code>$ ninja install</code>

Now you have installed the most bloat theme ever, just go to the settings.ini and change
the names to Yaru-dark.</pre>
]]>
</description>
</item>

<item>
<title>Torrent Guide</title>
<link>https://ryo.nopwd.lol/note/long.html#torrent</link>
<pubDate>Tue, 14 May 2024 16:50:16 +0000</pubDate>
<guid>https://ryo.nopwd.lol/note/long.html#torrent</guid>
<description>
<![CDATA[
<pre>You should be careful about torrent websites, you're on your own, but you can decrease
the risk by some researching. For example find official URL of the torrent sites from subreddits.
Check the number of seeds, five is good. Seed is a computer that sharing file(s).</pre>

<p>After getting the torrent file or magnet link you need a bittorrent client.<br>
I use <a href="https://transmissionbt.com/">transmission</a> because it is
lightweight and easy to use, also you can find it in most of distributions.<br>
<code>voidlinux: transmission</code><br>
<code>archlinux: transmission-cli</code></p>

<pre>
First you need to run the daemon:
<code>$ transmission-daemon</code>

You can check the content of a torrent file with:
<code>$ transmission-show somefile.torrent</code>
but it only works with files not magnet links.

Get the status of all torrents you have been added:
<code>$ transmission-remote --list</code>
<b>Note:</b> You need the ID of the added torrent for later steps.

Add the torrent file or magnet link to the client but start the download paused.
I guessed you don't want all files, if so, just remove the last switch and go to stop part:
<code>$ transmission-remote --add somefile.torrent --start-paused</code>
<b>Note:</b> In case of magent link don't forget to put '"' around the link.
If it succeed, it will give you a success message.

Then list files of the torrent:
<code>$ transmission-remote --torrent &lt;ID&gt; --files</code>
As you can see the Get option for all of them is Yes so if you start, all of them
will start downloading, so set all of them to No by:
<code>$ transmission-remote --torrent &lt;ID&gt; --no-get all</code>

Now select file(s) that you want:
<code>$ transmission-remote --torrent &lt;ID&gt; --get &lt;num&gt;,&lt;num&gt;,...</code>
For example:
<code>$ transmission-remote --torrent 1 --get 5,7-10,4,2</code>
It marks files #5, #7, #8, #9, #10 and #4 to the download list.
Now start the torrent:
<code>$ transmission-remote --torrent &lt;ID&gt; --start</code>

You can check the status with:
<code>$ transmission-remote --torrent &lt;ID&gt; --list</code>
By using Watch command you don't need to enter that many times:
<code>$ watch transmission-remote --torrent &lt;ID&gt; --list</code>

After it is downloaded just stop it from seeding(uploading):
<code>$ transmission-remote --torrent &lt;ID&gt; --stop</code>

+ Getting notification after download completed
In the daemon settings file there is two options for this:
$HOME/.config/transmission-daemon/settings.json
<code>
...
"script-torrent-done-enabled": true,
"script-torrent-done-filename": "~/.local/script/tordone.sh",
...
</code>
The tordone.sh script is where we want to call our notification to say something:
<code>
#!/usr/bin/env dash
dunstify "Torrent Done"
</code>
Also don't forget to make it executable:
<code>$ chmod u+x tordone.sh</code>

* Does this client only has this little options?
No, you can find many more options in the manual(transmission-remote(1) manpage).
For example how to limit the download speed, or how to change download folder.
</pre>
]]>
</description>
</item>

<item>
<title>My Setup</title>
<link>https://ryo.nopwd.lol/#setup</link>
<pubDate>Sun, 12 May 2024 17:16:57 +0000</pubDate>
<guid>https://ryo.nopwd.lol/#setup</guid>
<description>
<![CDATA[
<p>
I started writing about programs i use, there is a high chance to find something interesting
in this list.
</p>
]]>
</description>
</item>

<item>
<title>Swap Capslock and Escape</title>
<link>https://ryo.nopwd.lol/note/small.html#caps</link>
<pubDate>Fri, 10 May 2024 04:03:16 +0000</pubDate>
<guid>https://ryo.nopwd.lol/note/small.html#caps</guid>
<description>
<![CDATA[
<pre>
Great location, useless job, it's capslock.
<code>$ setxkbmap -option caps:swapescape</code>
Put it on in your .xinitrc file, before running window manager.
The 'swapescape' is the mostly used option but not the only one, you can see
all of the options with their description in this file:
<code>/usr/share/X11/xkb/rules/base.lst</code>
Just search for the word 'caps:'.
</pre>
]]>
</description>
</item>

<item>
<title>Read news using RSS</title>
<link>https://ryo.nopwd.lol/note/small.html#rss</link>
<pubDate>Tue, 7 May 2024 18:47:52 +0000</pubDate>
<guid>https://ryo.nopwd.lol/note/small.html#rss</guid>
<description>
<![CDATA[
<pre>
Instead of going to each program's website to check for updates you can use RSS to read
them all in one place. It's just an XML file called feed, that contains the information
and you can put that into a RSS client and done!

Many websites have RSS feeds, they mostly put the link of that in an icon like this:
<img src="data/rss.png" style="width: 20px">

- What client i suggest? <a href="https://newsboat.org">newsboat</a>
It is easy to use and also terminal BASED, also in the Void and Arch repository.
After installing, you need to create this file:
<code>$HOME/.config/newsboat/urls</code>

With this content:
<code>https://ryo.nopwd.lol/rss.xml
https://lukesmith.xyz/index.xml
https://voidlinux.org/atom.xml
https://brycevandegrift.xyz/rss.xml</code>

Now just start 'newsboat' program, you need to reload the feeds(press R), enjoy!
</pre>
]]>
</description>
</item>

<item>
<title>No to Videos, Templates...</title>
<link>https://ryo.nopwd.lol/note/small.html#xdg</link>
<pubDate>Sun, 5 May 2024 19:27:45 +0000</pubDate>
<guid>https://ryo.nopwd.lol/note/small.html#xdg</guid>
<description>
<![CDATA[
<pre>
If you hate those annoying folders like Videos, Templates, Downloads etc, that always
respawned after you delete them, just do this simple thing:
There is a file named 'user-dirs.dirs' in '$HOME/.config' path, just change the content
to whatever you want, also you can remove them so you'll get rid of them.
This is my config for this file, enjoy the minimalism:

XDG_DESKTOP_DIR="$HOME/.local/desktop"
XDG_DOWNLOAD_DIR="$HOME/pocket/browser"
</pre>
]]>
</description>
</item>

<item>
<title>Void Linux Installation</title>
<link>https://ryo.nopwd.lol/note/long.html#void</link>
<pubDate>Fri, 3 May 2024 15:40:28 +0000</pubDate>
<guid>https://ryo.nopwd.lol/note/long.html#void</guid>
<description>
<![CDATA[
<pre>
Let's see the installation of the best linux distro ever.

First of all, choose the iso image:
- base (Recommended): It's BASED but not that hard, just be patient.
- xfce: the name of a desktop, this version comes with a graphical environment.
- glibc or musl: I like musl but you need glibc literally for everything, so choose glibc.

It's recommended to have a working internet on your host(real) machine, but not necessary.
Go to the <a href="#qemu">qemu</a> note and boot the live iso.
Choose the first option in boot menu. You will see a blackscreen with some text on it,
this is called TTY and it's your friend, don't panic!

As the void says you have to default users:
anon: normal user that can <b>not</b> perform OS installation tasks.
root: this is what you want.

void-live login: root
password: voidlinux   # don't show what you are typing for security reasons

* Note: if you feel like mistyped something, just press Ctrl+u that will delete line.

Run the installer:
# void-installer

Note: by pressing a letter you will go to the first occurrence of it.
- Keyboard Layout: us
- Network: choose the only option and say yes to DHCP appliance.
- Source: Local, so it will get files from the iso not internet.
- Mirror: World
- Hostname: other machines in a network will know you by this name besides of IP,
    but it's a VM so take it easy, write a simple name.
- Locale: en_US.UTF-8
- Timezone: America, New York
- RootPassword: write any password that you want and like hostname write a simple one,
    but write it somewhere because it's the pass of the most important user, root.
- UserAccount: now you create a normal user, so choose a goofy name and for display name
    delete the default value(ctrl+u) and write the same name you have chosen.
	Write a memorable password for the user. You don't need to change group membership
	of the user, the default is fine.
- BootLoader: the only disk you have(e.g. /dev/sda) and say yes to graphical terminal.
- Partition: Use cfdisk because it's easier for you. In this example we create partitions
	for BIOS/MBR system, but just know there are other options.
	- dos
	- create a New partition with size of 512M and select 'primary'(also for next one)
	    also change Type to 'Linux swap / Solaris'.
	- go to the Free space and make a new one with default size(space left)
	    but don't change default type(Linux).
	- Write and Quit
- Filesystems: for the first one select 'swap', say yes to confirm.
    For second one 'ext4' with mount point '/'.
- Install: just read the warning carefully and don't remember to set a timer!

<h3>Graphics</h3>
Now you have a working system, but just TTY, it's good but you maybe need some graphics.
First of all you should know some basic stuff:
You have saw windows on screen, the program that manage it is called <b>window manager</b>.
This program itself needs a low-level program that works with the hardware and it gives
the ability to put a pixel on the screen.
For that low-level guy we choose X11 and for window manager i3.

# Install

In this example i use voidlinux but that doesn't have much difference in other distros.
Just install this packages:
<code>$ sudo xbps-install -S xorg i3 xinit i3status dmenu st vim</code>
Explanation:
xorg: this is the low-level one.
i3: go to it's <a href="https://i3wm.org/docs/userguide.html">website</a> to learn how to use it.
xinit: initialize window manager and other X11 related programs.
i3status: you can have some information like battery usage and network status.
dmenu: program launcher, suckless version of the windows like ones.
st: terminal emulator
vim: the most important one

Create a '.xinitrc' in your home with this content:
<code>#!/bin/sh
exec i3</code>

Start the window manager with:
<code>$ startx</code>
</pre>
]]>
</description>
</item>

<item>
<title>Installing Fonts</title>
<link>https://ryo.nopwd.lol/note/small.html#font</link>
<pubDate>Tue, 30 Apr 2024 17:58:13 +0000</pubDate>
<guid>https://ryo.nopwd.lol/note/small.html#font</guid>
<description>
<![CDATA[
<pre>
You can install fonts by moving them to a specific path:
Note: First create the destination folder if you haven't it already.
<code>$ mv avenir_roman_12.otf ~/.local/share/fonts</code>
You can install fonts in any format, i just use an OTF font in this example.

Then reload the system fonts:
<code>$ fc-cache -f</code>

Now you can find the exact name of the font you just installed, by:
<code>$ fc-list | grep -i aven
~/.local/share/fonts/avenir_roman_12.otf: Avenir:style=Roman,Regular
</code>
Just write a part of that so you will get the name(in this example Avenir).
</pre>
]]>
</description>
</item>

<item>
<title>Qemu Basics</title>
<link>https://ryo.nopwd.lol/note/long.html#qemu</link>
<pubDate>Thu, 25 Apr 2024 14:47:25 +0000</pubDate>
<guid>https://ryo.nopwd.lol/note/long.html#qemu</guid>
<description>
<![CDATA[
<p>
Thanks to <a href="https://brycevandegrift.xyz">brycevandegrift</a>, i learned
about qemu from one of his youtube videos, before reading this article go check out
his website and this <a href="https://youtu.be/vfYmGs1i4Sk?feature=shared">video</a>.
</p>

<pre>
Qemu is a complicated program and i don't know even one percent of it.
This are just the basic stuff so you can run a virtual machine.
It has support for many architectures but you only need one or two of them,
because of that some distributions like Arch and Debian splits it to a number of packages.
For Arch you probably only need this ones:

qemu-base, qemu-ui-gtk, qemu-hw-display-virtio-vga
qemu-hw-display-virtio-gpu-gl, qemu-hw-display-virtio-gpu
</pre>

<ol>
<li>Some Advice</li>
<pre>It a good idea to make your disk images structured, for example:
<code>[~/virts]$ tree
.
|---temple
|   --- run.sh
|   --- temple.qcow2
|---arch-test
|   --- arch-test.qcow2
|   --- run.sh
|---university
|   --- start.sh
|   --- university.qcow2</code>
note: tree is a program that shows files/folders in a tree like format.
</pre>
<li>Create Image</li>
Image is the name of the virtual disk that we want to create.
<code>$ qemu-img create -f qcow2 void.qcow2 8G</code>
Explanation: -f: choose the format of the image, in this case 'qcow2'(mostly used).

<li>Install OS</li>
<pre>You need to first install an OS to the image so you can use the machine.
In this example we install the 64-bit <a href="https://voidlinux.org/">voidlinux</a>:

<code>$ qemu-system-x86_64 -enable-kvm -smp 2 -m 2G -vga virtio \
-display gtk,gl=on -hda void.qcow2 -cdrom ~/iso/void.iso -boot menu=on</code>

Explanation:
enable-kvm: this one is important, for now just know that without it
your machine will that slow that you almost can't use it.

smp: number of the cpu cores

m: the RAM size, 'G' for gigabytes and 'M' for megabytes(default)

vga: type of the VGA card, i did have a great experience with 'virtio'.

display: type of the display, you can choose sdl instead of gtk.
With gl on, in full-screen mode it will look like a real machine.

hda: selects the hard disk for the machine

cdrom: it's like to put a flash or cdrom to your machine.
In this example we put the voidlinux live iso to that, later on you can put something else.

boot: the boot order, with 'menu=on' you can choose to the drive to boot with a menu.</pre>

<li>Done!</li>
<pre>After installing the OS, for the next time just run the last command without
cdrom and boot options. To prevent typing that again you can write it to a file.
<code>$ dash run.sh</code>
note: you can use other shells instead of dash(bash/zsh/fish) that's not matter.</pre>
</ol>

<p>
This are some most used shortcuts:
</p>
<ol>
<li>Ctrl+Alt+f: fullscreen</li>
<li>Ctrl+Alt+g: grab the mouse</li>
</ol>
]]>
</description>
</item>

<item>
<title>Manpage in Vim</title>
<link>https://ryo.nopwd.lol/note/small.html#manvim</link>
<pubDate>Sat, 20 Apr 2024 20:32:17 +0000</pubDate>
<guid>https://ryo.nopwd.lol/note/small.html#manvim</guid>
<description>
<![CDATA[
<pre>
You can use vim as a manpager[0] and even better give it a shortcut to open
the manpage of the word that is under the cursor(useful for c/shell coding).

[0]: program that displays the manpage in a formatted way like what a browser
does for a html page.

- Why?
The default manpager on most of the Linux/BSD distributions is 'less'
and that's fine but not even comparable to the power of Vim.

Put this commands on your vimrc:
<code>
runtime ftplugin/man.vim
set keywordprg=:Man
</code><br>
first: loads the 'man.vim' script(that's built in)
second: run the 'Man' command with word under the cursor as it's argument
when you press 'K'.
</pre>
]]>
</description>
</item>

<item>
<title>LaTeX Installation</title>
<link>https://ryo.nopwd.lol/note/small.html#latex</link>
<pubDate>Sun, 7 Apr 2024 16:52:41 +0000</pubDate>
<guid>https://ryo.nopwd.lol/note/small.html#latex</guid>
<description>
<![CDATA[
<pre>Don't install it using the mainstream package managers(e.g. apt, pacman...),
instead just go to the TeX Live <a href="https://www.tug.org/texlive/">website</a>
and get the installer and choose the <b>basic</b> scheme, it's about 300M!</pre>
]]>
</description>
</item>

<item>
<title>Emojis Not Showing Up</title>
<link>https://ryo.nopwd.lol/note/small.html#emoji</link>
<pubDate>Wed, 3 Apr 2024 13:11:45 +0000</pubDate>
<guid>https://ryo.nopwd.lol/note/small.html#emoji</guid>
<description>
<![CDATA[
<pre>
If you see squares instead of emojis on the browser, that's because they are not
available on your system. There is a font package that contains most of them,
and that's called <a href="https://fonts.google.com/noto">noto</a> and included
on most of the package managers.
<code>archlinux: noto-fonts-emoji</code>
</pre>
]]>
</description>
</item>

<item>
<title>There's no place like $HOME</title>
<link>https://ryo.nopwd.lol/note/compile.html</link>
<pubDate>Tue, 26 Mar 2024 18:30:22 +0000</pubDate>
<guid>https://ryo.nopwd.lol/note/compile.html</guid>
<description>
I wrote a blog about installing programs manually, with this topics:
How to?
- Download
- Extract
- Build
- - Cmake
- - Meson
- - Configure
- - Make
- Install
- Post Install
</description>
</item>

<item>
<title>Git Shallow Clone</title>
<link>https://ryo.nopwd.lol/note/small.html#git</link>
<pubDate>Mon, 25 Mar 2024 03:41:08 +0000</pubDate>
<guid>https://ryo.nopwd.lol/note/small.html#git</guid>
<description>
<![CDATA[
<pre>You can do a shallow clone with:
<code>$ git clone --depth=1 --no-tags --single-branch someurl</code>
In big projects it saves you a lot of time and space.
To know what this switches mean, check out the git-clone manpage.
</pre>
]]>
</description>
</item>

<item>
<title>Curl get the file size</title>
<link>https://ryo.nopwd.lol/note/small.html#curl</link>
<pubDate>Sat, 23 Mar 2024 04:47:11 +0000</pubDate>
<guid>https://ryo.nopwd.lol/note/small.html#curl</guid>
<description>
<![CDATA[
<pre>Sat Mar 23: You can get size of a file on a http server using curl.
<code>$ curl --head https://ryo.nopwd.lol/test.pdf</code></pre>
]]>
</description>
</item>

<item>
<title>Order in $PATH</title>
<link>https://ryo.nopwd.lol/note/small.html#path</link>
<pubDate>Thu, 21 Mar 2024 06:19:32 +0000</pubDate>
<guid>https://ryo.nopwd.lol/note/small.html#path</guid>
<description>
<![CDATA[
<pre>Thu Mar 21: When you want to run a program in a shell it will read a variable
called <code>PATH</code> and search for the executables in the order.
For example if the content of this variable on your system is like this:
<code>/usr/bin:/home/you/.local/bin</code>
and you have a executable with name <code>zathura</code> in both of this paths, shell will
run the one that is in <code>/usr/bin</code>, so the order is important.</pre>
]]>
</description>
</item>

<item>
<title>Fix a Meson Warning</title>
<link>https://ryo.nopwd.lol/note/small.html#meson</link>
<pubDate>Sat, 2 Mar 2024 05:41:22 +0000</pubDate>
<guid>https://ryo.nopwd.lol/note/small.html#meson</guid>
<description>
<![CDATA[
<pre>I've found <a href="https://github.com/chm46e/xupric">xupric</a> web browser <s>interesting</s>, so decided to check this project.
In the building step i saw this:
<code>WARNING: find_library('libconfuse') starting in "lib" only
	works by accident and is not portable</code><br>
<b>fix:</b> I just opened the 'meson.build' file and delete the 'lib' part.</pre>
]]>
</description>
</item>

</channel>
</rss>
