<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Pablo Beltran</title>
    <description>The latest articles on DEV Community by Pablo Beltran (@pablo_beltran).</description>
    <link>https://dev.to/pablo_beltran</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4104916%2Fb221ff1a-a4dd-4ee8-8ea0-28bcfd58422a.png</url>
      <title>DEV Community: Pablo Beltran</title>
      <link>https://dev.to/pablo_beltran</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/pablo_beltran"/>
    <language>en</language>
    <item>
      <title>Launched my first mobile application after being kidnapped using a taxi application</title>
      <dc:creator>Pablo Beltran</dc:creator>
      <pubDate>Fri, 02 Oct 2026 23:49:03 +0000</pubDate>
      <link>https://dev.to/pablo_beltran/launched-my-first-mobile-application-after-being-kidnapped-using-a-taxi-application-5fh4</link>
      <guid>https://dev.to/pablo_beltran/launched-my-first-mobile-application-after-being-kidnapped-using-a-taxi-application-5fh4</guid>
      <description>&lt;p&gt;Yes, the title is correct. This is really what happened to me, and today I'm going to write about this unusual experience and how my career as a software engineer led me to this simple solution.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Preface &amp;amp; Context
&lt;/h2&gt;

&lt;p&gt;A few years ago - December 2022, to be more precise - I called a cab using a transportation service like Uber. It was around 10:00 p.m., not too early and not too late. Maybe it was because of the season, but getting a confirmation from the app was taking it's time.&lt;/p&gt;

&lt;p&gt;The taxi arrived after approximately 30 minutes. When it did, everything seemed normal. The vehicle was relatively new, without dents, and the interior was clean. The driver seemed kind, too. Everything seemed normal. Little did I know that this would be the start of an experience I wouldn't wish on anyone.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmkxixxwlr9vll8g7vdcf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmkxixxwlr9vll8g7vdcf.png" alt="Me getting kidnapped in a taxi" width="631" height="292"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  1.1. Llegar a Casa - a web application
&lt;/h3&gt;

&lt;p&gt;While talking with a good friend about my experience, he mentioned that one of his friends had gone through something similar while using another service. It was far more common than we thought. He mentioned how cool it would be to have an app that let you review drivers by license plate. I agreed, and we discussed how it could prevent people from riding in that vehicle, potentially saving their lives.&lt;/p&gt;

&lt;p&gt;In my opinion, this idea had one major issue: to be helpful, the app needed a large user base. Let's be honest: most of our apps have fewer than 100 users, so this was a huge deal-breaker.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F51npz456oc27u6fs1xzz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F51npz456oc27u6fs1xzz.png" alt="Llegar a casa system architecture" width="798" height="224"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the nights that followed, I couldn't shake the urge to build an app that could verify the transportation people were about to use. That's when I thought: what if data about these incidents was public and available to use? That's how the first idea, &lt;em&gt;"Llegar a Casa,"&lt;/em&gt; was born. If I made a website that let users check a vehicle's information before riding the vehicle, they could help prevent cases like this.&lt;/p&gt;

&lt;p&gt;It took me around a week to figure out how to access the public data, design the website, and create a system to handle requests. I was excited, and I built the project with love: micro-services, caching, rate limiting, a database, cron jobs, and more. I was over-engineering a simple solution for the love of learning.&lt;/p&gt;

&lt;p&gt;I was proud of the solution. Everything worked great locally. I even built a landing page! Then it was time to deploy the app to the cloud and make it available to everyone. Once it was deployed, I immediately grabbed my phone and tried to make my first request. I typed in the license plate and clicked. Error.&lt;/p&gt;

&lt;p&gt;Looking at the logs, the error was crystal clear. The data sources were blocked because of a geolocation issue. When I developed the application, I tested it directly from my laptop, never in the cloud (a rookie mistake). That meant my requests used my real IP address, which worked fine. But once the app was in the cloud, its requests came from a foreign IP address, triggering &lt;a href="https://en.wikipedia.org/wiki/Incapsula" rel="noopener noreferrer"&gt;Incapsula&lt;/a&gt;'s protection. I decided I didn't want to spend more time or resources on the project, so I left it open source and let it slowly fade away.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Building and distributing Takya
&lt;/h2&gt;

&lt;p&gt;It's 2026, and Ecuador is facing record levels of violence. In 2025, the country recorded 9,216 intentional homicides, about 32% more than in 2024 and the highest annual total on record (&lt;a href="https://www.primicias.ec/seguridad/ecuador-homicidios-asesinatos-violencia-crimen-organizado-2025-114304/" rel="noopener noreferrer"&gt;Primicias&lt;/a&gt;). Similar incidents have happened to people I know, and they seem to be happening more often. One night, while thinking about how to solve the problem that stopped the web version from accessing public records, I had an idea: what if the app made those requests directly from the user's phone? That would remove the backend server between the app and the public data sources.&lt;/p&gt;

&lt;h3&gt;
  
  
  2.1. Simplicity is better
&lt;/h3&gt;

&lt;p&gt;Over the years, I've learned that a simpler solution is often the better one. Takya's core job was to request information from public data sources, so I asked myself: did it really need a complex backend?&lt;/p&gt;

&lt;p&gt;I'm not a mobile developer, but I have several years of experience building production applications with React. That experience helped me choose a practical way to test my idea: could users retrieve the information if their phones made the requests directly? I developed and tested Takya on an iPhone 12 and a Samsung A17.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5sbvyyatczisednakj7u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5sbvyyatczisednakj7u.png" alt="Takya system architecture" width="468" height="223"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I chose React Native and Expo, which let me build for multiple platforms from one codebase. This attempt felt very different from the first one. AI tools are now part of my development workflow, and they helped me build a minimum viable product (MVP)—an early version with the essential features—quickly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fg1pdd914cod2d722ga4l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fg1pdd914cod2d722ga4l.png" alt="Main process flowchart" width="800" height="365"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I started with a flowchart of the user journey, then used Cursor and &lt;a href="https://openai.com/codex/" rel="noopener noreferrer"&gt;Codex&lt;/a&gt; to help build the app. I provided the URLs of the public data sources and asked Codex to retrieve information from them. Seeing it work on my phone was a great moment.&lt;/p&gt;

&lt;p&gt;AI made it possible to get to a working version quickly, but I still guided the work and made the key engineering decisions. I organized the project, designed its components, created reusable hooks to share logic, and tested the app at both the unit and end-to-end levels. The tools accelerated implementation; I was still responsible for deciding what to build and making sure it worked.&lt;/p&gt;

&lt;p&gt;Once the core flow worked, I added a couple of safeguards. SQLite caching stores recent results on the device, so the app can reuse them instead of requesting the same information again. I also added a rate limiter to control how frequently searches send requests and reduce unnecessary load on the public data sources. After several days of testing, the app was ready to prepare for release.&lt;/p&gt;

&lt;h3&gt;
  
  
  2.2. Publishing Takya
&lt;/h3&gt;

&lt;p&gt;With development and testing complete, I turned to preparing Takya for the App Store and Google Play. Before setting up developer accounts, I also wanted to present Takya as a complete product rather than just a side project.&lt;/p&gt;

&lt;p&gt;First, I built the &lt;a href="https://takya.app/" rel="noopener noreferrer"&gt;marketing website&lt;/a&gt; with plain HTML, CSS, and JavaScript, then deployed it using &lt;a href="https://www.cloudflare.com/" rel="noopener noreferrer"&gt;Cloudflare Workers&lt;/a&gt;. I also prepared a &lt;a href="https://en.wikipedia.org/wiki/Privacy_policy" rel="noopener noreferrer"&gt;privacy policy&lt;/a&gt; and a support channel for people using the app. Then I made promotional materials with HTML, CSS, and Codex. Building them this way made it easy to adjust the designs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkf0p0zm8izu4hh00450w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkf0p0zm8izu4hh00450w.png" alt="Takya app promo image" width="800" height="618"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With the app and promotional materials ready, I created developer accounts for Apple's App Store Connect and Google Play Console. This was the most tedious part of the process. Both platforms require developer registration before you can submit an app for review.&lt;/p&gt;

&lt;p&gt;The App Store submission was quick and straightforward. Google Play required more steps: before the app could be released, I had to complete a 14-day closed test with at least 12 testers. At the time of writing, that process was still underway, so the Android version wasn't available yet.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. The outcome
&lt;/h2&gt;

&lt;p&gt;Up until today, Takya has no more than 10 users - most of them friends or relatives. Despite of this, I feel satisfied with the outcome. It was my first mobile application and was a joy to develop after failing a few years ago.&lt;/p&gt;

&lt;p&gt;Nowadays, it is easier than ever to create application - either mobile, web, desktop or whatever - why not try to contribute a bit to our society in some way? Ten users may not be a lot but it is at least important for me as they are family and friends.&lt;/p&gt;

&lt;p&gt;I'm looking forward to keep improving the application and develop some others I have in mind! I do have some old projects that would benefit for the mobile format. Thank you for taking the time to read the blog, I hope you enjoyed this short journey.&lt;/p&gt;

&lt;h3&gt;
  
  
  3.1. Contribution
&lt;/h3&gt;

&lt;p&gt;Takya is open-source, you can read the source code and contribute to the project in &lt;a href="https://github.com/Ilchampo/takya" rel="noopener noreferrer"&gt;Github&lt;/a&gt;. I would like to expand to neighbor countries on the future!&lt;/p&gt;

</description>
      <category>mobile</category>
      <category>software</category>
      <category>security</category>
      <category>opensource</category>
    </item>
    <item>
      <title>My journey to "I use arch btw"</title>
      <dc:creator>Pablo Beltran</dc:creator>
      <pubDate>Thu, 03 Sep 2026 03:04:27 +0000</pubDate>
      <link>https://dev.to/pablo_beltran/my-journey-to-i-use-arch-btw-1200</link>
      <guid>https://dev.to/pablo_beltran/my-journey-to-i-use-arch-btw-1200</guid>
      <description>&lt;h2&gt;
  
  
  1. How this project started?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F45iexrkluk5b0vlboyti.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F45iexrkluk5b0vlboyti.jpg" alt="Me"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'm going to be honest, it's been ages since I have written something without the use of AI to fix my writing. English is not my first language so please bear with me!&lt;/p&gt;

&lt;p&gt;With the rapid rise of AI, I felt that I have been losing passion for what I used to love at some point: &lt;strong&gt;learning&lt;/strong&gt;. Nowadays, we can quickly solve most of our problems with the use of AI, often times, not even reviewing if it correct or not. That's why I decided to take some time daily to learn something new without or minimal use of AI.&lt;/p&gt;

&lt;p&gt;The first step is deciding, what should I try to learn first? Well, it was quiet easy to find out what. If you are into Linux, you have probably heard of &lt;a href="https://omarchy.org/" rel="noopener noreferrer"&gt;Omarchy&lt;/a&gt; at this point. Like it or not, there's no deny that it's getting more popular among developers. So, &lt;em&gt;why not try to build a decent looking Arch workspace?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Before continuing, I would like to mention that this is not a guide. There are lot of resources online that teaches you how to install Archlinux and other packages.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Why Archlinux?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fe01yqb997fo0hy93npd7.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fe01yqb997fo0hy93npd7.jpg" alt="Archlinux logo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Archlinux has -or had- the reputation of being difficult to get started with. Most of us are used to booting into a nice-looking, functional operating system. Although I have some Linux knowledge, I wanted to have a better understanding of what it takes to have a decent workspace.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Installing Archlinux
&lt;/h2&gt;

&lt;p&gt;The first step is actually installing Arch on my device. The device I'm going to use is my trusty built PC that I currently use exclusively for gaming. There are a few things to consider before jumping into installing Arch:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;My PC has an Nvidia RTX 5050 and AMD Ryzen 5 CPU.&lt;/li&gt;
&lt;li&gt;Need dual boot to switch between Windows 11 and Archlinux.&lt;/li&gt;
&lt;li&gt;I don't want to change the BIOS options repeatively.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With this in mind, I quickly created a bootable USB using &lt;a href="https://rufus.ie/en/" rel="noopener noreferrer"&gt;RUFUS&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  3.1. Booting the USB
&lt;/h3&gt;

&lt;p&gt;If you are a Windows 11 user and have dual boot, you may know that Windows requires Windows Secure Boot. In order to boot another operation system, you'll need to change your Secure Boot options.&lt;/p&gt;

&lt;p&gt;The first time you launch Archlinux, you'll first notice there's no &lt;a href="https://en.wikipedia.org/wiki/Graphical_user_interface" rel="noopener noreferrer"&gt;GUI&lt;/a&gt;. This can be intimidating at first for some users but thankfully, the Arch Wiki provides a clear and concise &lt;a href="https://wiki.archlinux.org/title/Installation_guide" rel="noopener noreferrer"&gt;installation guide&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;A few things that made the installation easier for me was having an extra SSD and Ethernet connection. If you are using WiFi, you'll probably need some extra configuration. Also, you can always create a new partition if you only have one storage device.&lt;/p&gt;

&lt;h3&gt;
  
  
  3.2. Nvidia &amp;amp; AMD drivers
&lt;/h3&gt;

&lt;p&gt;In my case, my PC has an Nvidia GPU and Ryzen CPU. In order for things to work properly, I had to install some extra drivers. This can be easily achieve with the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pacstrap &lt;span class="nt"&gt;-K&lt;/span&gt; /mnt amd-ucode nvidia-open nvidia-utils
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Afterwards, you can quickly check if the drivers were successfully installed by running:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nvidia-smi &lt;span class="c"&gt;# you should see your GPU information&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Thankfully, everything worked for me in the first try!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: from now on I will use pacman instead of the pacstrap wrapper.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3.3. Installing a compositor
&lt;/h3&gt;

&lt;p&gt;Installation was successful, now what? With only a terminal as interface, some tasks such as using a browser are impossible -I think). In order to do these tasks, we need neither a &lt;a href="https://en.wikipedia.org/wiki/Desktop_environment" rel="noopener noreferrer"&gt;Desktop Environment&lt;/a&gt; or a &lt;a href="https://en.wikipedia.org/wiki/Compositing_manager" rel="noopener noreferrer"&gt;Compositor&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In my case, I decided to go with a compositor instead of desktop environment. I have already used others windows tilling managers such as &lt;a href="https://i3wm.org/" rel="noopener noreferrer"&gt;i3wm&lt;/a&gt;. This time, I want something that has more features out-of-the-box.&lt;/p&gt;

&lt;p&gt;While browsing through X, I found the &lt;a href="https://hypr.land/" rel="noopener noreferrer"&gt;Hyprland&lt;/a&gt; project account. This was exactly what I was looking for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Window tilling manager.&lt;/li&gt;
&lt;li&gt;Modern animations.&lt;/li&gt;
&lt;li&gt;Out of the box configuration.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyrikouwmmuvjpd4wa74v.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyrikouwmmuvjpd4wa74v.jpg" alt="Hyprland default"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The setup was quickly, you just have to install some basic packages and the dependencies will be installed too. We now have a way to interact with applications more visually.&lt;/p&gt;

&lt;h3&gt;
  
  
  3.4. Installing missing packages
&lt;/h3&gt;

&lt;p&gt;Once I finish installing Hyprland, I moved on to installing missing packages for audio and software I normally use. For audio, I'm using &lt;a href="https://pipewire.org/" rel="noopener noreferrer"&gt;pipewire&lt;/a&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;pacman &lt;span class="nt"&gt;-S&lt;/span&gt; pipewire pipewire-audio pipewire-pulse wireplumber
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I also installed other packages that will go nicely with Hyprland.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;pacman &lt;span class="nt"&gt;-S&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
    alacritty &lt;span class="se"&gt;\ &lt;/span&gt;      &lt;span class="c"&gt;#Terminal&lt;/span&gt;
    waybar &lt;span class="se"&gt;\ &lt;/span&gt;         &lt;span class="c"&gt;#Control bar&lt;/span&gt;
    wofi &lt;span class="se"&gt;\ &lt;/span&gt;           &lt;span class="c"&gt;#App launcher&lt;/span&gt;
    mako &lt;span class="se"&gt;\ &lt;/span&gt;           &lt;span class="c"&gt;#Notifications&lt;/span&gt;
    thunar &lt;span class="se"&gt;\ &lt;/span&gt;         &lt;span class="c"&gt;#File manager&lt;/span&gt;
    pavucontrol &lt;span class="se"&gt;\ &lt;/span&gt;    &lt;span class="c"&gt;#Graphical mixer&lt;/span&gt;
    wl-clipboard &lt;span class="se"&gt;\ &lt;/span&gt;   &lt;span class="c"&gt;#Copy-paste data&lt;/span&gt;
    grim &lt;span class="se"&gt;\ &lt;/span&gt;           &lt;span class="c"&gt;#Screenshots&lt;/span&gt;
    slurp &lt;span class="se"&gt;\ &lt;/span&gt;          &lt;span class="c"&gt;#Selection screenshots&lt;/span&gt;
    hyprpaper &lt;span class="se"&gt;\ &lt;/span&gt;      &lt;span class="c"&gt;#Wallpapers&lt;/span&gt;
    hyprlock &lt;span class="se"&gt;\ &lt;/span&gt;       &lt;span class="c"&gt;#Lock screen&lt;/span&gt;
    hypridle          &lt;span class="c"&gt;#Idle utils&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  4. Personalizing Hyprland
&lt;/h2&gt;

&lt;p&gt;Time to start customizing Hyprland. Personally, this was the step I enjoyed the most. Like I mentioned before, Hyprland provides an out-of-the-box configuration. You can access the configuration file using your installed text editor. For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nvim ~/.config/hypr/hyprland.lua    &lt;span class="c"&gt;# open with neovim&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The configuration file is written in &lt;a href="https://www.lua.org/" rel="noopener noreferrer"&gt;Lua&lt;/a&gt;. I haven't tried Lua before but I can guarantee you is a pretty straightforward programming language. If it is also your first time programming in Lua, I highly recommend you watching the following video &lt;a href="https://www.youtube.com/watch?v=CuWfgiwI73Q" rel="noopener noreferrer"&gt;video&lt;/a&gt;, it is half an hour.&lt;/p&gt;

&lt;p&gt;I will not include all the configuration files on this blog. You can check the repository for all the different configuration files.&lt;/p&gt;

&lt;h3&gt;
  
  
  4.1. Lua config files
&lt;/h3&gt;

&lt;p&gt;The default configuration file is a bit painful to work on in my opinion. I decided to split the configuration file into several smaller modules, each representing a different module.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~/.config/hypr
&lt;span class="nb"&gt;mkdir &lt;/span&gt;config
&lt;span class="nb"&gt;touch &lt;/span&gt;animations.lua &lt;span class="se"&gt;\ &lt;/span&gt;&lt;span class="c"&gt;#Window animations&lt;/span&gt;
      appearance.lua &lt;span class="se"&gt;\ &lt;/span&gt;&lt;span class="c"&gt;#Define your theme here&lt;/span&gt;
      autostart.lua  &lt;span class="se"&gt;\ &lt;/span&gt;&lt;span class="c"&gt;#What happens on start&lt;/span&gt;
      input.lua      &lt;span class="se"&gt;\ &lt;/span&gt;&lt;span class="c"&gt;#Configure your input keyboard&lt;/span&gt;
      keybinds.lua   &lt;span class="se"&gt;\ &lt;/span&gt;&lt;span class="c"&gt;#Add the key binds that you like the most&lt;/span&gt;
      monitors.lua   &lt;span class="se"&gt;\ &lt;/span&gt;&lt;span class="c"&gt;#Set your monitor information&lt;/span&gt;
      rules.lua        &lt;span class="c"&gt;#Rules for other packages&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Note: Keep in mind that this is my initial configuration. It may change over time depending on my needs.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4.2. Packages config files
&lt;/h3&gt;

&lt;p&gt;If you are into Linux, you most likely have heard the term &lt;em&gt;"ricing"&lt;/em&gt;. If not, ricing is basically turning your OS into a "&lt;a href="https://en.wikipedia.org/wiki/Pimp_My_Ride" rel="noopener noreferrer"&gt;Pimp my Ride&lt;/a&gt;" homage.&lt;/p&gt;

&lt;p&gt;Other of the reasons why I choose to install Arch is it's personalization. The packages I have installed so far can be mostly customized by creating their respective directories and configuration files on &lt;code&gt;~/.config&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Once everything was done, I just had to reboot my system and hooray! I now have a decent looking Archlinux desktop. With more time and dedication you can results like &lt;a href="https://hypr.land/hall_of_fame/" rel="noopener noreferrer"&gt;these&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2wze0l9po7pv5q6ywtnj.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2wze0l9po7pv5q6ywtnj.jpg" alt="Desktop"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As I'm versioning all the changes, I wanted a way to quickly clone the repository and apply the changes. For this, I created a script that will automatically update the files. You can run the script with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo&lt;/span&gt; ./apply_changes.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Note: I suck at shell, sometimes it crashes.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Can Linux and Windows coexist?
&lt;/h2&gt;

&lt;p&gt;I haven't mentioned this before but this project took me a week to reach up until this point. During this time, I wanted to play some games with friends, this required to switch the Secure Boot option often in the BIOS - which became annoying quickly.&lt;/p&gt;

&lt;p&gt;This was definitely the part I dislike the most. Took some time to figure out the solution on how to properly have dual boot of Windows 11 and Archlinux using &lt;code&gt;grub&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The process required to install &lt;code&gt;sbctl&lt;/code&gt; to create and enroll the keys. After some time, it finally worked. I'll probably create a guide for this as I'm sure I'm going to need it on the future.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# A snippet of the commands I ran&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;pacman &lt;span class="nt"&gt;-S&lt;/span&gt; sbctl

&lt;span class="nb"&gt;sudo &lt;/span&gt;sbctl status
&lt;span class="nb"&gt;sudo &lt;/span&gt;sbctl create-keys
&lt;span class="nb"&gt;sudo &lt;/span&gt;sbctl enroll-keys &lt;span class="nt"&gt;-m&lt;/span&gt;

findmnt /boot

&lt;span class="nb"&gt;sudo &lt;/span&gt;grub-mkconfig &lt;span class="nt"&gt;-o&lt;/span&gt; /boot/grub/grub.cfg
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you are having troubles with this, I recommend this &lt;a href="https://forum.endeavouros.com/t/guide-how-to-enable-secure-boot-on-dual-boot-systems-with-arch-linux/70845" rel="noopener noreferrer"&gt;guide&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. What if the real "i use arch btw" was the friends we made along the way?
&lt;/h2&gt;

&lt;p&gt;I started this project as a way ignite again the passion for learning and sure it did. Artificial Intelligence, in my opinion, is one of the greatest milestones of humanity. I just think, we, the everyday people, are abusing it's use and it's taking a toll.&lt;/p&gt;

&lt;p&gt;Learning how to install Archlinux and configure Hyprland has been a blast. It's been some time since I genuinely was looking forward the next day to keep implementing new features. Not only that, I think I found a hobby in writing, it was super fun and will definitely continue writing more. &lt;/p&gt;

&lt;p&gt;I hope you, the reader, enjoyed this small article as much as I enjoyed writing it.&lt;/p&gt;

&lt;p&gt;Thank you for your time.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Repository &amp;amp; contribution
&lt;/h2&gt;

&lt;p&gt;You can check the repository on &lt;a href="https://github.com/Ilchampo/arch-hyprland-dotfiles/" rel="noopener noreferrer"&gt;Github&lt;/a&gt;. Please, feel free to contribute to the repository!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: this is an on-going project so it will most likely change over time.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>hyprland</category>
      <category>linux</category>
      <category>productivity</category>
      <category>archlinux</category>
    </item>
  </channel>
</rss>
