<!DOCTYPE html>
<html>
 
<head>
    <title>The linux room</title>

<style>

body {
    color: blue;
    background-image: url('images/linux_background.png');
}

table {
	color: black;
	background-color: #bebebe;
	margin-top: 10px;
	margin-bottom: 10px;
	margin-left: 10px;
	margin-right: 10px;
	border=1
}

</style>

</head>
 
<body>
    <center>
        <img src="images/flying_tux.gif" alt="Tux the penguin flying"/>
        <table border="1" width="60%">
            <tr>
                <td>
                    <h2>My current setup</h2>
                    <ul>
                        <li>Distro: <a href="#fedora">fedora xfce</a></li>
                        <li>Web browser: <a href="#icecat">icecat</a></li>
                        <li>Mail client: <a href="#claws">claws</a></li>
                        <li>Editor: <a href="#lite-xl">lite-xl</a></li>
                        <li>Media player: <a href="#mpv">mpv</a></li>
                        <li>Feed reader: <a href="#liferea">liferea</a></li>
                        <li>Terminal: <a href="#alacritty">alacritty</a></li>
                        <li>Shell: <a href="#zsh">zsh</a></li>
                        <li>Terminal based editor: <a href="#neovim">neovim</a></li>
                        <li><a href="#emacs">emacs</a></li>
                    </ul>
                </td>
            </tr>
            
            <tr>
                <td>
                    <h2><a href="https://codeberg.org/nathansmith/dotfiles" target="_blank">Dotfiles</a></h2>
                    <p>This is a repo for my dotfiles and its kind of fucked up.
                    Some configs have there own repos because I didn't think ahead lmao.
                    </p>
                </td>
            </tr>

            <tr>
                <td>
                    <h2><a href="index.html">--&gt; Back to main page</a></h2>
                </td>
            </tr>
        </table>

        <table border="1" width="60%">
            <tr>
                <td>
                    <h2>Why linux</h2>
                    <p>
                        I have always liked being able to customize, mod, and poke inside different things.
                        Computers are machines for us to play around with and use how we see fit yet the only thing
                        the big tech companies want to do it lock everything up and it disgusts me.
                        Fuck google, fuck microsoft, fuck apple, and fuck all the other evil tech companies!!!
                        Its time for the open source revolution and seize them all and open source the entire world!!!
                        Without linux or any other unix life would be much much worse. Linux is my safe place 
                        from all the shit in the world.
                    </p>
                    <img src="images/windows_kills_kittens.jpg" alt="Window kills kittens" width="95%"/>
                </td>
            </tr>
        </table>

        <table border="1" width="60%">
            <tr>
                <td>
                    <h2 id="fedora">Fedora xfce</h2>
                    <p>
                        Fedora been my go to for quite a while though I sometimes switch desktops lmao.
                        I have tried the gnome version but it doesn't really fit me so most 
                        of the time I have used the kde spin though recently kde just haven't
                        been feeling the same. It has been feeling buggy and have been fighting 
                        with nvidia drivers. After running xfce on my second computer for a while
                        I grew to really like it and started using it on my main and it have been 
                        running much better then kde.
                    </p>
                </td>
            </tr>
            <tr>
                <td>
                    <h2>Setting up fedora</h2>
                    <p>
                        Fedora has a little extra setup you wouldn't see in something like linux mint though 
                        it isn't that bad.
                    </p>
                    <h3>Packages</h3>
                    <p>
                        You can speed up dnf by adding these to /etc/dnf/dnf.conf<br>
                        <code>
                            max_parallel_downloads=20<br/>
                            fastestmirror=True
                        </code>
                        <br/><br/>
                        The default repos have lots of stuff but you might want an app that isn't in it like steam.
                        I know the gnome version has a enable 3rd party repos button that does everything I listed here
                        but I am on the xfce version and also had to do this on the kde verison.
                    </p>
                    <ul>
                        <li>
                            Setup rpm fusion to get more packages in dnf with the 
                            <a href="https://docs.fedoraproject.org/en-US/quick-docs/rpmfusion-setup/" target="_blank">resources here</a>
                        </li>
                        <li>
                            Install flatpak if not already there using "sudo dnf install flatpak" then add 
                            <a href="https://flathub.org/setup/Fedora" target="_blank">flathub</a>
                             to get some cool apps!
                        </li>
                    </ul>
                    
                    <h3>Multimedia</h3>
                    <p>
                        By default fedora doesn't have many codecs and you need to install them yourself.
                        Without them many media files will not work and lots of youtube videos will not be able to play.
                        The fedora docs use to show how to install them but they removed it from their page
                        and instead shows a new version which installs some stuff but not everything.
                        I do both of them to make sure I get all the codecs I need.
                    </p>
                    <ul>
                        <li>Update your system with <code>sudo dnf upgrade</code></li>
                        <li>Install the new packages with <code>sudo dnf group install multimedia</code></li>
                        <li>
                            Install the old ones with these three commands in a row:
                            <ul>
                                <li><code>sudo dnf install gstreamer1-plugins-{bad-\*,good-\*,base} gstreamer1-plugin-openh264 gstreamer1-libav --exclude=gstreamer1-plugins-bad-free-devel</code></li>
                                <li><code>sudo dnf install lame\* --exclude=lame-devel</code></li>
                                <li><code>sudo dnf swap ffmpeg-free ffmpeg --allowerasing</code></li>
                            </ul>
                        </li>
                    </ul>

                    <h3>Nvidia drivers</h3>
                    <p>
                        Nvidia isn't the best on linux and I like AMD much more though I am stuck with nvidia for now.
                        For xfce there are some extra settings to enable it but it works great once that is done.
                        You will need rpm fusion first before you can install the drivers.
                    </p>
                    <ul>
                        <li>
                            Follow the fedora docs on nvidia
                            <a href="https://docs.fedoraproject.org/en-US/quick-docs/set-nvidia-as-primary-gpu-on-optimus-based-laptops" target="_blank">here</a>
                        </li>
                        <li>
                            Also look at the rpmfusion docs on nvidia
                            <a href="https://rpmfusion.org/Howto/NVIDIA" target="_blank">here</a>
                        </li>
                        <li>
                            Follow the archwiki on nvidia in lightdm 
                            <a href="https://wiki.archlinux.org/title/NVIDIA_Optimus#LightDM" target="_blank">here</a>.
                        </li>
                        <li>
                            For multi monitor refresh rate issues add these to your /etc/environment<br/>
                            <code>
                                CLUTTER_DEFAULT_FPS=&lt;refresh rate of your sync monitor&gt;<br/>
                                __GL_SYNC_DISPLAY_DEVICE=&lt;monitor to sync to&gt;
                            </code>
                            <br/><br/>
                            Then open your nvidia settings, go to OpenGL Settings and turn off "Allow Flipping".
                        </li>
                    </ul>
                </td>
            </tr>
            <tr>
                <td>
                    <h2>xfce settings in fedora</h2>
                    <p>
                        By default xfce is a very plain desktop and looks kind of old and shitty
                        (like this website), but it can look and feel great with some work!
                    </p>
                    <ul>
                        <li>Install nicer icons with <code>sudo dnf install papirus-icon-theme papirus-icon-theme-dark</code> then set them as your icon theme</li>
                        <li>
                            Install a better theme. Some good ones are:
                            <ul>
                                <li><a href="https://drasite.com/flat-remix-gtk" target="_blank">flat-remix</a></li>
                                <li><a href="https://www.xfce-look.org/p/1681313/" target="_blank">gruvbox</a></lib>
                                <li><a href="https://www.xfce-look.org/p/2098041" target="_blank">DoorMaker</a></li>
                                <li><a href="https://www.xfce-look.org/p/1394325" target="_blank">BaZik</a></li>
                            </ul>
                        </li>
                        <li>
                            The default menu is alright but I like whisker menu more.
                            <ul>
                                 <li>Install it with <code>sudo dnf install xfce4-whiskermenu-plugin</code></li>
                                 <li>Go into the panel settings to remove the old one and change it to whisker menu.</li>
                            </ul>
                        </li>
                        <li>
                            Enable clipman as one of the startup apps for a kde like clipboard.
                        </li>
                        <li>
                            Make some nicer keybinds:
                            <ul>
                                <li>I like to bind the <code>xfce4-popup-whiskermenu</code> command to shift-super.
                                You can't bind things to just super in xfce. It will break other shortcuts.</li>
                                <li>Bind "super+v" to <code>xfce4-clipman-history</code> to make it feel more like the kde clipboard</li>
                            </ul>
                        </li>
                        <li>
                            Make new windows show up at the mouse by going into the "Window ManagerTweaks" "Placement" tab, 
                            turning the minimum size all the way up and chaning the place windows position to under the mouse pointer.
                        </li>
                    </ul>
                </td>
            </tr>
            <tr>
                <td>
                    <h2>Rofi in xfce</h2>
                    The default xfce appfinder been causing me issues lately so I decided to switch to rofi.
                    <br/><br/>
                    To make rofi work with my workflow I like to add some binds for it:
                    <ul>
                        <li>Bind <code>rofi -show drun -icon-theme "Papirus-Dark" -show-icons</code> to super+d</li>
                        <li>Bind <code>rofi -show run</code> to super+r</li>
                    </ul>
                    There is much more I could use rofi for but this is all I need.
                </td>
            </tr>
            <tr>
                <td>
                    <h2>Useful things in fedora</h2>
                    Fedora doesn't have "update-grub" so instead you have to use these:<br/>
                    <code>
                        sudo grub2-mkconfig -o /etc/grub2.cfg<br/>
                        sudo grub2-mkconfig -o /etc/grub2-efi.cfg
                    </code>
                </td>
            </tr>
        </table>

        <table border="1" width="60%">
            <tr>
                <td>
                    <h2 id="icecat">icecat</h2>
                    <p>
                        I use to use firefox but switched to librewolf because 
                        <a href="https://digdeeper.club/articles/mozilla.xhtml" target="_blank">mozilla is evil as fuck</a>.
                        If you don't know librewolf it its the ungoogled-chromium of firefox. Than I switched from librewolf to icecat.
                        <br/><br/>
                        The builtin plugins are decent. Librejs and its other contend blocking plugins are way more annoying
                        than something like umatrix but I am giving them a fair chance knowing that umatrix might not have
                        much of a future even if its still quite functional still. I still like to install ublock even with
                        everything that comes builtin.
                    </p>
                    <h3>Settings</h3>
                    <p>
                        The clipboard doesn't work in icecat by default so go into <code>about:config</code> and change
                        <code>dom.event.clipboardevents.enabled</code> to true.
                    </p>
                    <h3>Search engines</h3>
                    <p>
                        The best search engine is <a href="https://searx.space" target="_blank">searx</a>.
                        Finding instances can be annoying because a lot of time the engine you want to use
                        gets blocked.
                    </p>
                </td>
            </tr>

             <tr>
                <td>
                    <h2 id="claws">Claws mail</h2>
                    <p>
                        I have used thunderbird in the past though like I said before
                        <a href="https://digdeeper.club/articles/mozilla.xhtml" target="_blank">mozilla is evil as fuck</a>.
                        I have some gmail accounts and haven't gotten them to work in claws yet though I am working on 
                        moving everything away from gmail because fuck google!! Though my other accounts work in it just fine.
                        Its a quite basic mail client so you often have to play around with different things to get accounts to work.
                        Also tried evolution but it was too bloated but not nearly as bad as thunderbird.
                    </p>
                </td>
            </tr>

            <tr>
                <td>
                    <h2 id="lite-xl">lite-xl</h2>
                    <p>
                        I started using lite-xl because I wanted a editor that was simple but very configurable.
                        Neovim and kate were my two favorite editors and lite-xl is kind of a mix of the two.
                        It uses lua for its config files and has some really cool things like: a project structure
                        to make it fit better for coding, support for all the major languages and lsp plugins.
                    </p>

                    <h3>lite-xl config</h3>
                    <p>
                        I have my config on a repo here <a href="https://codeberg.org/nathansmith/liteLXConfig" target="_blank">here</a>.
                        On different screen sizes lite-xl may look bad and to fix it you need to set the <code>LITE_SCALE</code> environment variable.
                        <br/><br/>
                        
                        My config has buttons for quickly opening a terminal and file explore in the current directory.
                        It doesn't know what your defaults are for those apps so to set them just change the varibles
                        in the "init.lua" file.
                    </p>
                </td>
            </tr>

            <tr>
                <td>
                    <h2 id="mpv">mpv</h2>
                    <p>
                        I switched to mpv because vlc was acting weird with audio sometimes when watching anime and nothing
                        in this world is worse then something getting in the way of anime time! Just like lite-xl and neovim
                        mpv uses lua for its config files and is really simple by default. It also can play youtube videos
                        or other online streams just by giving it a url.<br/><br/>
                        
                        The only thing I did to config mine was install plugins for a nicer interface
                        and mpris yet
                        <a href="https://codeberg.org/nathansmith/mpvconfig" target="_blank">it has its own repo</a> when it
                        could just be in the dotfiles repo. Like I said, my dotfiles are kind of fucked up.
                    </p>
                </td>
            </tr>

            <tr>
                <td>
                    <h2 id="liferea">Liferea</h2>
                    <p>
                        Feed readers are one of those things I use on and off. A lot like mail clients feed readers
                        tend to be very bloated. Liferea is my favorite but
                        it has always had issues with nvidia drivers until I found out a trick.<br/><br>
                        If liferea has issues add this to your /etc/environment and reboot</br>
                        <code>WEBKIT_DISABLE_DMABUF_RENDERER=1</code>
                        
                        <br/><br/>
                        Some cool tricks:
                    </p>
                    <ul>
                        <li>
                            Get <a href="https://github.com/shevabam/get-rss-feed-url-extension" target="_blank">
                            this plugin</a> to find feeds easier.
                        </li>
                        <li>
                            You can turn youtube channels into rss feeds with
                            <code>https://www.youtube.com/feeds/videos.xml?channel_id={channel_id}</code><br/>
                            This can be done for all your subscriptions with
                            <a href="scripts/youtube_subs_export.py" target="_blank">
                                this script</a>
                        </li>
                        <li>
                            You can drag and drop youtube urls from your feed reader into mpv so you can keep up with
                            your subscriptions without even touching youtube's website.
                        </li>
                    </ul>
                </td>
            </tr>
        </table>
        
        <table border="1" width="60%">
            <tr>
                <td>
                    <h2 id="alacritty">Alacritty</h2>
                    <p>
                        I only started using it very recently because I been using kitty for a long time.
                        I switched to alacritty because ssh in kitty is fucked up and I found out that
                        alacritty now has a option for toml files for the config. The yml files was
                        one of the biggest things keeping me away from alacritty.<br/><br/>
                        You can find my config on the
                        <a href="https://codeberg.org/nathansmith/dotfiles/src/branch/main/.config/alacritty" target="_blank">dotfiles repo</a>.
                    </p>
                </td>
            </tr>

            <tr>
                <td>
                    <h2 id="zsh">zsh</h2>
                    <p>
                        zsh is pretty cool though I been playing with fish a bit and been thinking of switching to that.
                        zsh has lots of cool things like vi keys and is somewhat compatable with bash to.<br/><br/>
                        
                        For my zsh config to work you need powerline and nerd fonts which can be installed with:
                    </p>
                    <ul>
                        <li><code>sudo dnf install powerline</code></li>
                        <li>
                            Download a nerd font from the <a href="https://www.nerdfonts.com/font-downloads" target="_blank">nerd fonts site</a>.
                            Personal I use hack font and configured neovim with it.
                        </li>
                    </ul>
                </td>
            </tr>

            <tr>
                <td>
                    <h2 id="neovim">Neovim</h2>
                    <p>
                        I been using neovim for quite a while and have added a lot to my config. Onetime in the middle
                        of the night I thought my neovim config was trying to kill me because of the pain I caused it
                        by doing a bad job programming it. It looked like a flat snake head that was tired and pissed off.<br/>
                        I don't use neovim for programming things much anymore and prefer graphical editors
                        for that now but I still use neovim sometimes.<br/><br/>

                        You can find my neovim config (the one that tried to kill me)
                        <a href="https://gitea.com/nathansmithsmith/nvim_config" target="_blank">here</a>.
                    </p>
                </td>
            </tr>

            <tr>
                <td>
                    <h2 id="emacs">Emacs</h2>
                    <p>
                        Don't use emacs. Its stupido.    
                    </p>
                </td>
            </tr>
        </table>
    </center>
</body>
</html>