<?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>Forem: Lakshmanan P</title>
    <description>The latest articles on Forem by Lakshmanan P (@luxxgit2k4).</description>
    <link>https://forem.com/luxxgit2k4</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1137899%2Fbd5bf397-312f-4090-9968-a64b7c289bb6.jpg</url>
      <title>Forem: Lakshmanan P</title>
      <link>https://forem.com/luxxgit2k4</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/luxxgit2k4"/>
    <language>en</language>
    <item>
      <title>[Boost]</title>
      <dc:creator>Lakshmanan P</dc:creator>
      <pubDate>Wed, 03 Sep 2025 07:14:00 +0000</pubDate>
      <link>https://forem.com/luxxgit2k4/-51jp</link>
      <guid>https://forem.com/luxxgit2k4/-51jp</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/andychiare" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2656%2Fme2.jpg" alt="andychiare"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/andychiare/being-a-developer-in-the-vibe-coding-era-3me8" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Being a Developer in the Vibe Coding Era&lt;/h2&gt;
      &lt;h3&gt;Andrea Chiarelli ・ Aug 26&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#ai&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#vibecoding&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#developer&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#programming&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>ai</category>
      <category>vibecoding</category>
      <category>developer</category>
      <category>programming</category>
    </item>
    <item>
      <title>What was your wins and losses in last year ?</title>
      <dc:creator>Lakshmanan P</dc:creator>
      <pubDate>Sun, 07 Jan 2024 09:21:36 +0000</pubDate>
      <link>https://forem.com/luxxgit2k4/what-was-your-wins-and-losses-in-last-year--1em</link>
      <guid>https://forem.com/luxxgit2k4/what-was-your-wins-and-losses-in-last-year--1em</guid>
      <description>&lt;p&gt;&lt;strong&gt;Mine&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Wins
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Expanded my circle.
&lt;/li&gt;
&lt;li&gt;Learnt new things.&lt;/li&gt;
&lt;li&gt;Spent great time with my friends.&lt;/li&gt;
&lt;li&gt;Attended many tech events.&lt;/li&gt;
&lt;li&gt;Got a chance to socialize with many developers.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Losses
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;I bathed my laptop in water so I was not able to do anything.&lt;/li&gt;
&lt;li&gt;Stress and depression due to inefficiency.&lt;/li&gt;
&lt;li&gt;Not able to sleep well.&lt;/li&gt;
&lt;li&gt;Lost some friends.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But 2023 year was a good one though. I hope this year goes well to me and to you all....&lt;/p&gt;

&lt;p&gt;Share your experiences in the comment&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Simple Weather notification project built with python in mobile.</title>
      <dc:creator>Lakshmanan P</dc:creator>
      <pubDate>Sat, 02 Sep 2023 07:54:13 +0000</pubDate>
      <link>https://forem.com/luxxgit2k4/simple-weather-notification-project-built-with-python-in-mobile-3ipj</link>
      <guid>https://forem.com/luxxgit2k4/simple-weather-notification-project-built-with-python-in-mobile-3ipj</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;smtplib&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;email.message&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;EmailMessage&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;schedule&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;
&lt;span class="c1"&gt;# Configuration
&lt;/span&gt;&lt;span class="n"&gt;EMAIL_USERNAME&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;  &lt;span class="s"&gt;"your@email.com"&lt;/span&gt;
&lt;span class="n"&gt;EMAIL_PASSWORD&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;   &lt;span class="s"&gt;"yourpassword"&lt;/span&gt;  &lt;span class="c1"&gt;# or your actual email password if using less secure apps
&lt;/span&gt;&lt;span class="n"&gt;RECIPIENT_EMAIL&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"recipient@gmail.com"&lt;/span&gt;



&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;send_weather_notification&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;city&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"city"&lt;/span&gt;
    &lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s"&gt;"http://api.openweathermap.org/data/2.5/weather?q=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;city&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;&amp;amp;appid=yourapikey&amp;amp;units=metric"&lt;/span&gt;

    &lt;span class="c1"&gt;# Rest of your code for fetching weather data and creating email content
&lt;/span&gt;    &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;weather_data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

    &lt;span class="n"&gt;temperature&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;weather_data&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"main"&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="s"&gt;"temp"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="n"&gt;description&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;weather_data&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"weather"&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="s"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

    &lt;span class="n"&gt;notification_title&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Weather Forecast"&lt;/span&gt;
    &lt;span class="n"&gt;notification_text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s"&gt;"Temperature: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;temperature&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;°C&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;Description: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;description&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;

    &lt;span class="c1"&gt;# Set up email notification
&lt;/span&gt;    &lt;span class="n"&gt;msg&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;EmailMessage&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="n"&gt;msg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;set_content&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;notification_text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;msg&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"Subject"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;notification_title&lt;/span&gt;
    &lt;span class="n"&gt;msg&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"From"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;EMAIL_USERNAME&lt;/span&gt;
    &lt;span class="n"&gt;msg&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"To"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;RECIPIENT_EMAIL&lt;/span&gt;

    &lt;span class="c1"&gt;# Send the email
&lt;/span&gt;    &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;smtplib&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;SMTP_SSL&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"smtp.gmail.com"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;smtp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;smtp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;login&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;EMAIL_USERNAME&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;EMAIL_PASSWORD&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;smtp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;send_message&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;msg&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Schedule the email to be sent every day at 16:00 (4:00 PM)
&lt;/span&gt;&lt;span class="n"&gt;schedule&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;every&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="n"&gt;day&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;at&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"8:00"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="n"&gt;do&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;send_weather_notification&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;schedule&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;run_pending&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;This is a simple weather forecast project built with termux in mobile which sends you the weather via email.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Introduction:
&lt;/h2&gt;

&lt;p&gt;You can change the &lt;code&gt;youremail@.com&lt;/code&gt;, &lt;code&gt;yourpassword&lt;/code&gt;, &lt;code&gt;recipient@gmail.com&lt;/code&gt;, &lt;code&gt;city&lt;/code&gt; in the code to your respective email address, password, recipient email and city.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Installation:
&lt;/h2&gt;

&lt;p&gt;To run the script, you'll need Python 3 installed on your system. You can install it according to your specific operating system or desktop environment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For example I use Linux mint in my pc and termux in my mobile so the command to install python3 in them is:&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Debian/Ubuntu-based systems:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt update
sudo apt install python3

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Termux:
&lt;/h3&gt;

&lt;p&gt;If you are using termux in android:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pkg install python3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After installing python3 if you don't have the package manager 'pip' you can install it using this command in the terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt-get install python3-pip

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Libraries
&lt;/h3&gt;

&lt;p&gt;Install these libraries:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip3 install requests
pip3 install smtplib
pip3 install schedule

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;These libraries may already be present in the 'pip' make sure if its there using the above commands.&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip3 install smtplib                                                                     
Defaulting to user installation because normal site-packages is not writeable
ERROR: Could not find a version that satisfies the requirement smtplib (from versions: none)
ERROR: No matching distribution found for smtplib

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you get it this means that smtplib is not an external package to be downloaded using pip it's actually a part of python's standard library.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Getting the API key:
&lt;/h2&gt;

&lt;p&gt;I used an api key from this site [&lt;a href="https://openweathermap.org/"&gt;https://openweathermap.org/&lt;/a&gt;].&lt;/p&gt;

&lt;p&gt;You can also get your key by following these steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Visit the OpenWeatherMap website at [&lt;a href="https://openweathermap.org/"&gt;https://openweathermap.org/&lt;/a&gt;].&lt;/li&gt;
&lt;li&gt;Sign up for a free account by clicking on the "Sign Up" or "Join" button on the top right corner of the homepage.&lt;/li&gt;
&lt;li&gt;After signing up, log in to your OpenWeatherMap account.&lt;/li&gt;
&lt;li&gt;Once logged in, navigate to the "API keys" section, usually found in your account settings or profile.&lt;/li&gt;
&lt;li&gt;Generate a new API key by clicking on the appropriate button or link. You may be asked to specify the type of API key you need, such as a "Free" or "Basic" plan key.&lt;/li&gt;
&lt;li&gt;The generated API key will be displayed on the screen. Make sure to copy and securely store this key as you will need it to access OpenWeatherMap's API services.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. Execution:
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Run this in the terminal:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python3 weather_notification.py

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If this command prints to the next line at the scheduled time you'll get the email.&lt;/p&gt;

&lt;h3&gt;
  
  
  Running in the background:
&lt;/h3&gt;

&lt;p&gt;If you want to the kill the terminal but want to receive the email use this command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nohup python3 weather_notification.py &amp;amp;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;nohup&lt;/code&gt; command stands for "no hang up." It's used in Unix-like operating systems (including Linux) to run a command or a script in such a way that it can continue running even after you log out or close the terminal session.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;nohup&lt;/code&gt; also redirects the standard output (stdout) and standard error (stderr) streams of the command or script to a file called &lt;code&gt;nohup.out&lt;/code&gt; in the current directory. This allows you to capture any output or error messages generated by the process.&lt;/p&gt;

&lt;p&gt;When you run a command with &lt;code&gt;nohup&lt;/code&gt;, it can be started in the background (using the &lt;code&gt;&amp;amp;&lt;/code&gt; symbol) so that you can continue using the terminal for other tasks.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>python</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Creating a new desktop environment in Linux Mint with i3.</title>
      <dc:creator>Lakshmanan P</dc:creator>
      <pubDate>Wed, 30 Aug 2023 05:29:04 +0000</pubDate>
      <link>https://forem.com/luxxgit2k4/creating-a-new-desktop-environment-in-linux-mint-with-i3-1p65</link>
      <guid>https://forem.com/luxxgit2k4/creating-a-new-desktop-environment-in-linux-mint-with-i3-1p65</guid>
      <description>&lt;p&gt;Before moving into installing and setting up i3 let's discuss some features of it.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;It automatically arranges windows in a neat manner preventing the overlapping of windows thereby giving maximized screen space for multitasking.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It involves only keyboard bindings so you can save the time spent for mouse interaction.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The major advantage is switching between workspaces. I3 lets you create and manage workspaces dynamically allowing you to switch between applications in a easy way. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The window tiling in i3 reduces the window clutter which makes you to focus on the particular task. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I3 doesn't involve any window decoration hence it provides a neat and minimalist look.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The other major advantage is that minimum usage of ram. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You can customise i3 by adding functionality by using scripts and plugins. You can also customise your own key bindings, colors , layout behaviour and so on.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;**&lt;/p&gt;

&lt;h2&gt;
  
  
  Installing and Setting up i3:
&lt;/h2&gt;

&lt;p&gt;**&lt;br&gt;
Now let's see how to install and set up I3 in your desktop:&lt;/p&gt;

&lt;p&gt;Step 1: Open your terminal on your desktop using ctrl+alt+t or by your custom shortcut.&lt;/p&gt;

&lt;p&gt;Step 2: Update your packages in the terminal to check whether your packages or upto date by using this command &lt;/p&gt;

&lt;pre&gt;



```

sudo apt update

```



&lt;/pre&gt;

&lt;p&gt;Step 3: Now run this command to install the i3 package.&lt;/p&gt;

&lt;pre&gt;



```

sudo apt install i3

```



&lt;/pre&gt;

&lt;p&gt;Step 4: After installation log out of the screen. Now you'll be taken to your login screen.&lt;/p&gt;

&lt;p&gt;Step 5: Before logging in check for a gear like or settings icon. Select it to open a list of desktop environment. There i3 will be listed select it and login in with your cerenditials.As shown below:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0c6nSob4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v5ndx2br1k5ljx3u56m6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0c6nSob4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v5ndx2br1k5ljx3u56m6.png" alt="Image description" width="600" height="443"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 6: When you login in to your desktop it will ask you to generate a config file for i3.Press enter to continue.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9zukpyYB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8pbrwwqzwky9nlsbtl1y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9zukpyYB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8pbrwwqzwky9nlsbtl1y.png" alt="Image description" width="330" height="240"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 7: After generating the config file it will ask you to select the mod key. You can choose which is suitable for you. This mod key or modifier is used for the keyboard shortcuts.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aDcCig7g--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l7e1wyl4z88q581mn7s2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aDcCig7g--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l7e1wyl4z88q581mn7s2.png" alt="Image description" width="330" height="240"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Step 8: If you follow these steps correctly you will be using the i3 now.&lt;/p&gt;

&lt;p&gt;**&lt;/p&gt;

&lt;h2&gt;
  
  
  Keyboard shortcuts:
&lt;/h2&gt;

&lt;p&gt;**&lt;/p&gt;

&lt;p&gt;These are some basic keyboard shortcuts for the i3:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Modifier key + d (to start and search applications)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Modifier key + enter (to open the terminal)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Modifier key + shift + q (to close an application)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Modifier key + shift + num keys like 1 ,2 (for moving an application to the workspace)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Modifier key + num keys (to switch between the workspaces)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The modifier key is the default key you choose it can be the windows or the alt key.&lt;/p&gt;

&lt;p&gt;**&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;**&lt;/p&gt;

&lt;p&gt;You can customise the key bindings and i3's behaviour by editing the config file. It wil be located in:&lt;/p&gt;

&lt;pre&gt;



```

~/.config/i3/config

```



&lt;/pre&gt;

&lt;p&gt;To understand more about the i3's features and key bindings refer their documentation:&lt;br&gt;
&lt;a href="https://i3wm.org/docs/"&gt;https://i3wm.org/docs/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>linux</category>
      <category>beginners</category>
      <category>programming</category>
      <category>developer</category>
    </item>
    <item>
      <title>"Supercharge Your Workflow with XFCE's Productivity Arsenal"</title>
      <dc:creator>Lakshmanan P</dc:creator>
      <pubDate>Sun, 27 Aug 2023 14:54:23 +0000</pubDate>
      <link>https://forem.com/luxxgit2k4/supercharge-your-workflow-with-xfces-productivity-arsenal-1f8h</link>
      <guid>https://forem.com/luxxgit2k4/supercharge-your-workflow-with-xfces-productivity-arsenal-1f8h</guid>
      <description>&lt;p&gt;Recently, I installed Linux Mint XFCE on my PC, and I was truly amazed by its remarkable features. The ability to customize my own environment was a pleasant surprise. What stood out even more was its efficiency in resource utilization. While Windows consumes a substantial 4GB of my 8GB RAM just to boot, XFCE uses a mere 20%, providing a smoother experience. &lt;/p&gt;

&lt;p&gt;When it comes to performance, XFCE outshines the competition. Even during active tasks, it conserves resources, utilizing only about 20% of my RAM. Thunar, the default file manager, is both user-friendly and easily configurable. Its simplicity makes it intuitive, and its remarkable speed enhances usability.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;THE ULTIMATE PRODUCTIVITY PLAYGROUND:&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;The XFCE4 emulator offers a powerful feature – the ability to manage multiple terminals within a single window using tabs. When paired with Vim, this combination becomes an ultimate productivity powerhouse. Say goodbye to the constant mouse scrolling as XFCE with Vim transforms your keyboard into a versatile tool. It's not just about text editing; it's about efficiently navigating your system. Personalized keyboard shortcuts empower you to accomplish tasks swiftly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Features of XFCE that contribute to enhanced productivity:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Workspace Management:&lt;/strong&gt; XFCE allows you to create multiple workspaces, making it easy to organize and switch between different tasks or projects. This feature helps you maintain a clutter-free environment and focus on one task at a time.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Window Tiling:&lt;/strong&gt; XFCE offers a built-in window tiling feature that allows you to arrange open windows side by side or in a grid layout. This is particularly useful for comparing documents, coding, or multitasking.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Thunar Custom Actions:&lt;/strong&gt; Thunar, XFCE's default file manager, supports custom actions that you can define. This feature enables you to create context-menu shortcuts for frequently performed tasks, such as converting images, compressing files, or opening files with specific applications.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Keyboard Shortcuts:&lt;/strong&gt; XFCE lets you define custom keyboard shortcuts for various actions, applications, and commands. This feature streamlines your workflow, enabling quick access to essential functions without reaching for the mouse.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Panel Customization:&lt;/strong&gt; XFCE's panel is highly customizable. You can add application launchers, taskbars, system monitors, and more to your panel, tailoring it to your specific needs. This ensures that your most-used tools are just a click away.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Thunar Bulk Renamer:&lt;/strong&gt; Thunar's built-in bulk renamer tool is invaluable for renaming multiple files in a consistent manner. This tool saves time when managing files and folders, especially during tasks like organizing downloaded files or media libraries.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Workspace Switcher:&lt;/strong&gt; XFCE's workspace switcher applet provides a visual representation of your workspaces, making it easy to switch between them. This visual overview is particularly helpful when juggling multiple tasks or projects.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Application Finder:&lt;/strong&gt; The application finder in XFCE allows you to quickly search and launch applications by typing their names. This is a fast alternative to navigating menus, helping you access tools swiftly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Session Manager:&lt;/strong&gt; XFCE's session manager remembers your open applications and their positions when you log out or shut down. When you log back in, your work environment is restored, allowing you to continue where you left off.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Global Menu and Titlebar:&lt;/strong&gt; XFCE's global menu and titlebar options can save screen real estate by consolidating application menus and window controls into the top panel. This optimization is especially beneficial for laptops or smaller screens.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Workspace Naming:&lt;/strong&gt; XFCE enables you to name your workspaces, which is useful for categorizing tasks, projects, or even different clients. This naming feature aids in quickly identifying and switching to the workspace you need.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Task Manager Applet:&lt;/strong&gt; XFCE's task manager applet displays open applications, making it easy to switch between them with a single click. It also provides options for minimizing, maximizing, and closing applications.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Notification Area:&lt;/strong&gt; XFCE's notification area keeps you informed about system status, updates, and notifications from various applications. This helps you stay on top of important events without interrupting your workflow.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Lightweight Resource Usage:&lt;/strong&gt; XFCE's minimal resource consumption ensures smooth performance, even on older or less powerful hardware. This efficiency contributes to a seamless and productive experience.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;CONCLUSION&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;These features make XFCE a versatile and efficient desktop environment that empowers users to tailor their workspace to their specific requirements, ultimately boosting productivity.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>linux</category>
      <category>beginners</category>
    </item>
    <item>
      <title>**Unleashing Creativity: Crafting Stunning Web Designs with Tailwind CSS v3</title>
      <dc:creator>Lakshmanan P</dc:creator>
      <pubDate>Sun, 20 Aug 2023 09:24:50 +0000</pubDate>
      <link>https://forem.com/luxxgit2k4/unleashing-creativity-crafting-stunning-web-designs-with-tailwind-css3-28e7</link>
      <guid>https://forem.com/luxxgit2k4/unleashing-creativity-crafting-stunning-web-designs-with-tailwind-css3-28e7</guid>
      <description>&lt;p&gt;In the fast-paced world of web development, design plays a pivotal role in capturing user attention and conveying information effectively. One tool that has taken the web design community by storm is Tailwind CSS3. With its revolutionary approach to layout and styling, Tailwind CSS3 has redefined the way developers create visually appealing and responsive web pages.&lt;/p&gt;

&lt;p&gt;A Paradigm Shift in Page Layout: Tailwind CSS3 Takes the Lead&lt;/p&gt;

&lt;p&gt;Gone are the days of manually writing complex CSS rules and struggling to achieve the desired layout. Tailwind CSS3 introduces a unique utility-first approach that empowers developers to quickly build modern interfaces without sacrificing creativity. This approach involves utilizing small, single-purpose utility classes to compose layouts, styles, and components.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Streamlining Development: The Power of Utility Classes&lt;/strong&gt;**&lt;/p&gt;

&lt;p&gt;Tailwind CSS3 provides an extensive set of utility classes that cover a wide range of design aspects. From spacing and typography to flexbox and grid layouts, Tailwind's utility classes offer a comprehensive toolkit to bring your design vision to life. Whether you're a seasoned developer or just starting, these classes make it easy to create visually captivating designs without diving deep into custom CSS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Responsive Design Made Effortless&lt;/strong&gt;**&lt;/p&gt;

&lt;p&gt;In the age of multiple devices and screen sizes, responsive design is non-negotiable. Tailwind CSS3 simplifies responsive design through its intuitive class naming convention. By appending prefixes like "sm:" (small), "md:" (medium), and "lg:" (large) to your classes, you can effortlessly adapt your design to different screen sizes. This level of flexibility ensures your web pages look stunning on various devices, from smartphones to desktops.&lt;/p&gt;

&lt;p&gt;*&lt;strong&gt;&lt;em&gt;Customization and Brand Consistency&lt;/em&gt;&lt;/strong&gt;*&lt;/p&gt;

&lt;p&gt;While utility classes provide a solid foundation, Tailwind CSS3 recognizes the importance of customization. With a simple configuration file, you can define your own color palette, typography settings, and more. This allows you to maintain brand consistency effortlessly throughout your web application. Tailwind CSS3's utility classes serve as building blocks, and you have the freedom to mix and match them while staying true to your design guidelines.&lt;br&gt;
**&lt;br&gt;
&lt;strong&gt;A Developer's Dream: Boosting Efficiency and Collaboration&lt;/strong&gt;**&lt;/p&gt;

&lt;p&gt;Tailwind CSS3 not only enhances design capabilities but also boosts development efficiency and collaboration. Its intuitive class names and predictable outcomes make it easier for developers to communicate and understand each other's code. This promotes smoother collaboration among team members, ensuring a seamless transition from design to development.&lt;/p&gt;

&lt;p&gt;*&lt;strong&gt;&lt;em&gt;Final Thoughts: Designing the Future with Tailwind CSS3&lt;/em&gt;&lt;/strong&gt;*&lt;/p&gt;

&lt;p&gt;In a world where user experience is paramount, Tailwind CSS3 emerges as a game-changer in web design. Its utility-first approach, responsive design capabilities, and customization options empower developers to transform their ideas into stunning and functional web pages. Whether you're a seasoned professional or a budding developer, Tailwind CSS3 invites you to embark on a journey of creativity, efficiency, and innovation.&lt;/p&gt;

&lt;p&gt;So, gear up to elevate your web design skills and unlock a world of possibilities with Tailwind CSS3. Experience the art of streamlined development, where code and creativity unite to craft visually captivating digital experiences that leave a lasting impact.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Useful tools that might come in handy :</title>
      <dc:creator>Lakshmanan P</dc:creator>
      <pubDate>Thu, 17 Aug 2023 13:48:55 +0000</pubDate>
      <link>https://forem.com/luxxgit2k4/useful-tools-that-might-come-in-handy--m0i</link>
      <guid>https://forem.com/luxxgit2k4/useful-tools-that-might-come-in-handy--m0i</guid>
      <description>&lt;ol&gt;
&lt;li&gt;Vim: Vim's advantages lie in modal editing, customizability, efficient navigation, built-in commands, low resource usage, plugins, universal availability, improved typing skills, and a focus on efficiency. Its learning curve yields long-term productivity gains, encouraging touch typing and streamlining text editing.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;2.Tmux: A terminal multiplexer that allows you to split your terminal into multiple panes, making it easier to manage multiple tasks and command-line sessions.&lt;/p&gt;

&lt;p&gt;3.Cht.sh: An online cheat sheet tool that lets you access programming language documentation and examples right from the command line. It's a quick way to look up syntax and usage while you're coding.&lt;/p&gt;

&lt;p&gt;4.fzf: A command-line fuzzy finder that makes it incredibly easy to search and navigate through your command history, files, and more.&lt;/p&gt;

&lt;p&gt;5.jq: A command-line tool for processing and manipulating JSON data, which is particularly useful when working with APIs and data-driven applications.&lt;/p&gt;

&lt;p&gt;6.The Silver Searcher (ag): A faster alternative to 'grep', 'ag' is a code-searching tool that's particularly useful when working with large codebases. It's optimized for speed and supports regex searching.&lt;/p&gt;

&lt;p&gt;7.Zsh with Oh My Zsh: While Zsh itself isn't unknown, combining it with Oh My Zsh and its various plugins can greatly enhance your command-line experience, providing autocomplete, syntax highlighting, and more.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>github</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Just Realized this thing</title>
      <dc:creator>Lakshmanan P</dc:creator>
      <pubDate>Sat, 12 Aug 2023 15:12:53 +0000</pubDate>
      <link>https://forem.com/luxxgit2k4/just-realized-this-thing-1gla</link>
      <guid>https://forem.com/luxxgit2k4/just-realized-this-thing-1gla</guid>
      <description>&lt;p&gt;"We should not rely on tutorial videos that are hours long, as they can be time-consuming. Instead, we can watch tutorials when we are introduced to a new concept. As we make progress, it's beneficial to shift towards referring to documentation or using cheat sheets. By doing so, we can save time for learning additional topics and apply our knowledge in our day-to-day lives. While this might already be familiar to you, I've recently come to understand its significance."&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>codenewbie</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
