Fedora Operating System

Fedora is a free and open source Linux operating system (OS) that comes with a choice of desktops custom-tailored for work and play. We are not affiliated with the Fedora project, but we use this inherently secure operating system for all of our development, authorship, and design work. We enjoy having instant access to the best and newest free software. The Fedora team keeps their packages up to date with the latest tools and applications.

Fedora Spins

Besides the official version, Fedora comes in several other popular flavors, ranked at this writing by number of torrent downloads:

  1. KDE - A complete, modern desktop built using the KDE Plasma Desktop.
  2. XFCE - A complete, well-integrated Xfce desktop.
  3. LXDE - A light, fast, less-resource hungry desktop environment.
  4. Electronic-Lab - Fedora's high-end hardware design and simulation platform.
  5. Security - Security analysis tools.
  6. MATE-Compiz - A classic Fedora Desktop. With wobbly Windows.
  7. Jam-KDE - Unleash your inner musician.
  8. Design-suite - Open Creativity.
  9. Games - A perfect show-case of the best games available in Fedora.
  10. Robotics - Dive into Robotics.
  11. SoaS - Discover. Reflect. Share. Learn.

Users may create their own spins and build a custom LiveCD version of Fedora by using revisor or livecd-tools.

Post-install: After installing Fedora, it will immediately search for updates. Go ahead and install them. In the many years we have used Fedora, we had cryptic errors one time with automatic updates and it was because one of the update servers was undergoing maintenance.

Installing additional software in Fedora is a breeze. Applications->Add/Remove Software contains a list of hundreds of programs download and install in one or two clicks. For the rest of this section, add the primary user to the /etc/sudoers configuration file. It's easy. The instructions are in the file. The editor has a bit of a learning curve, however. To save files, press Esc and enter :w. To quit enter :q. Sudoedit uses the vi editor and further instructions may be found by entering :h into the command bar.

su -c "sudoedit /etc/sudoers"

Log out and back in. Now things will install using sudo: sudo yum -y install yum-fastestmirror yum-priorities The user should be removed from /etc/sudoers when done tweaking and installing for better security.

Fedora Tips and Tricks

Drive Lister
MIDI
Speed up Linux
Find target
Mouse gestures
Flash browser plugin
Java browser plugin
System Administration
Windows Programs & Games
Linux Networking
Custom Repo

Drive Lister

Mounting and unmounting drives as an unpriviliged, command-line user is safer and easier, thanks to a program we call Drive Lister (dl). Drive Lister displays the connected block devices in a device hierarchy.

We created Drive Lister because using commands like df -h, ls /dev/hd*, ls /dev/sd*, fdisk -l, cat /etc/mtab, rummaging through /sys/block, or mount /dev/sda* /mnt/userfolder -t ntfs-3g -o rw,umask=0000 may be confusing for newcomers to Linux and desktops don't always show disk drives and mount points conveniently.

Now we can use the dl command to see a list like the following. Click on the names to mount and unmount drives.

Drive    size    Description     
/dev/fd0 Empty /dev/floppy-fd0 platform:floppy disk

/dev/sda 37G ATA sAMSUNG sV4002H
 ├─/dev/sda1 102M mounted on /boot type ext3
 ├─/dev/sda2 36G mounted on / type ext3
 └─/dev/sda3 1G mounted on swap type swap

/dev/sdb 114G ATA Maxtor 6Y120P0
 └─/dev/sdb1 114G

/dev/sr0 Empty /dev/dvdrw3 HL-DT-ST DVD-RAM GSA-H55N

Desktop Icon: Our Disk Lister dl script runs in a terminal, but it may also run in a window from the desktop. Cut and paste this into a terminal as a normal user, not root, to install the icon. This assumes dl is in /usr/local/sbin

cat << EOF > ~/Desktop/diskinfo.desktop
[Desktop Entry]
Encoding=UTF-8
Name=Disk Info
GenericName=Mount and Eject Disks
Comment=Explore and discover disk devices.
Exec=gnome-terminal -x /usr/local/sbin/dl -i
Terminal=false
MultipleArgs=false
Type=Application
Icon=/usr/share/icons/wm-icons/48x48-gnome/disk.xpm
Categories=Application;Utility;Terminal
EOF

MIDI

Built-in "motherboard" audio typically has no actual MIDI hardware. To play MIDI files, most operating systems come with their own MIDI synth emulator. If programs like kmid don't work in Fedora then read on.

Linux also has MIDI synth capability by adding a synth package, such as timidity or FluidSynth. Fluidsynth has a friendly GUI called Qsynth, which has a bunch of knobs and stuff to fiddle with and runs in the background, providing emulated wavetable-style synthesis even if the soundcard doesn't have this capability.

Timidity plays midi files from the command line, which makes it worth getting. It also has a GUI which may be invoked with "timidity -ig" or started as a background daemon, allowing all MIDI applications access to its emulated MIDI ports. Timidity and fluidsynth should probably not be operating at the same time.

su -c "yum -y install qsynth timidity++"

To start timidity in daemon mode, type the following into a terminal window as a normal user, not as root!

See man timidity for usage options. For something more permanent for gnome, insert it into a user's session. For kde, cut and paste into terminal:

cat << EOF > .config/autostart/timidity.desktop
[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=Timidity
Exec=timidity -iA -Oe
X-GNOME-Autostart-enabled=true
EOF

Speed up Linux

Gnome. echo "gtk-menu-popup-delay = 100" > ~/.gtkrc-2.0

Now log out and back in. If If it is still too slow, try setting it to 0 instead of 100. Applications pop up instantly. It's as if it was fast machine or something! Xfce is even faster with this setting and there exist themes for Xfce that make it behave like Gnome.

KDE. Kickoff-->System Settings-->General Tab-->Various animations-->Very Fast

More tips are available from the KDE UserBase Wiki.

Windows users. What are Windows users doing here? Surprisingly, many of these tips from Lifehacker for speeding up Windows also apply to Linux.

Fonts. Removing extra fonts may speed things up slightly on slower machines. Fonts take up resources, especially font rendering (although this is not a problem with modern graphics cards). Also when a window manager starts, it probably loads them all into memory. This makes logging in to a session slightly slower. Plus, many of these fonts look the same and it's a pain scrolling up and down in programs to find the right font, so some users get rid of the ones they don't like. The drawback of this approach is seeing non-english pages render text as little squares.

yum remove kacst-fonts VLGothic-fonts VLGothic-fonts-proportional sazanami-fonts-gothic \
sazanami-fonts-mincho artwiz-aleczapka-fonts culmus-fonts baekmuk-ttf-fonts-common \
baekmuk-ttf-fonts-gulim lohit-fonts* thaifonts-scalable samyak-fonts* cjkunifonts* taipeifonts*

Anti-aliasing. Software font anti-aliasing was extremely slow on older machines prior to the development of good, free graphics drivers. In those days would sometimes resort to installing proprietary, 3rd-party video drivers. It was better to disable anti-aliasing in desktop settings and allow those video drivers to take care of it in hardware. We would use the anti-aliasing settings in the vendor-supplied video driver panel instead.

Templates. Remove unnecessary templates from the Templates folder. The more templates in here the slower the "right-click" menu becomes in Gnome and friends. Twenty or so should be enough for anybody. KDE solves this another way, by having users put .desktop files (shortcuts) in there instead.

Java plugin: java-1.6.0-openjdk-plugin that came standard with Fedora 11 is now icedtea-web.

Find Target

When setting up applications it can be very useful to right-click on a desktop icon and choose "find target" to immediately browse to the folder containing the application files. The script on this page can be saved in the /bin folder and given a name such as findtarget.sh and be sure to make it executable with chmod +x. If the window manager has a right-click open-with dialog, try and use that to open the icon with findtarget.sh and have it automatically browse to the installation folder. If not, simply put the desktop launcher on a desktop, preferably not right next to the trash, and drag and drop icons onto it.

Script. Put somewhere in $PATH, like /usr/bin

#!/bin/bash
# findtarget.sh by Henry Kroll III www.thenerdshow.com
cmdline=$(awk '$1 ~/^Exec/{if($3=="wine"){xx=$2; sub(".* wine ","");system(xx" winepath "$0)}else{sub("Exec=","");print $0}}' "$1")
if [ ${cmdline:0:1} == '/' ]; then
folder=$(dirname "$cmdline")
else
folder=$(dirname "`which $cmdline`")
fi
sel=`basename "$cmdline"`
#xterm -hold -e echo $1 $cmdline X $folder X $sel
#exit
case "$DESKTOP_SESSION" in
kde)   konqueror --select "$folder/$sel";;
gnome)   nautilus --browser --no-desktop "$folder";;
xfce)   thunar "$folder";;
*)   xterm -hold -e mc "$folder";;
esac

Desktop Launcher. (Save as findtarget.desktop and then Drag and Drop icons onto it)

[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=Find Target
Comment=View icon target folder
GenericName=View icon target folder
Type=Application
Exec=findtarget.sh %F
Icon=/usr/share/icons/gnome/48x48/places/folder-saved-search.png
Terminal=false
StartupNotify=true
Categories=TextEditor;Development;GTK;
X-Desktop-File-Install-Version=0.14

Linux Networking. There's the old standby, NFS but fuse-sshfs requires no set-up, since it uses existing ssh server and settings. :)

Custom Repo. If more than a handful of computers run Fedora, set up a private repo to save bandwidth. Edit /etc/yum.conf and set keepcache=1. Then either make var/cache/yum into a repo using createrepo or change cachedir in /etc/yum.conf or make a script to collect all the rpms from /var/cache/yum and put them somewhere else. Connect to this later using HTTP, FTP, NFS, fuse-sshfs or whatever. It's really up to the administrator what they want to do.

yum install createrepo yum-utils

#!/bin/bash
DIR=/var/cache/yum/x86_64/18 # CHANGE THIS!
oldrpms=$(repomanage -s -c -o $DIR)
test -z "${oldrpms}" || sudo rm -v ${oldrpms}
sudo createrepo -g repodata/repomd.xml -c $DIR/cache $DIR

Now only one machine need do updates and run the updaterepo script afterwords. Any other machines that need updates run yum clean metadata (or yum clean all) and then connect to it using a custom myrepo.repo in /etc/yum.repos.d

[myrepo]
name=Myrepo
baseurl=file:///mnt/myrepo
enabled=1
gpgcheck=0

CCBY Copyright © 2017 Henry Kroll III, thenerdshow.com This web page is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.