User:Misterhaan/Ubuntu 24.10 Oracular Oriole Setup
i use ubuntu cinnamon linux as my main operating system on my laptop. since the laptop came with windows 10 (which i upgraded to windows 11), i keep that around so i can choose windows on startup when i need one of the manufacturer's utilities. these instructions are what i did when i installed ubuntu cinnamon 24.10 oracular oriole on my laptop westinghouse. i started with ubuntu cinnamon desktop (minimized) so there’s less to uninstall. i do install third-party graphics and wifi as well as additional media formats. unfortunately the installer no longer has the option to erase my old ubuntu and install over that while leaving windows alone, so i have to choose manual installation and select the previous ubuntu partition to set as root.
connections to other systems
most of what i use my laptop for is connecting to other systems, including my home file shares. i set those up first so i have access to my files and the ability to connect to my home desktop and work computer right away.
i have command-line ubuntu installed on a different computer at home that stores my files, so my laptop should mount its shares when i'm on my home network. i can't just do a normal mount because if i travel with my laptop, my home server isn't available and i have to wait for those connections to time out before it will finish booting. still, the first couple steps are the same as mounting the shares from a desktop:
- edit
/etc/hosts
as root withsudo gedit /etc/hosts
and add a line mapping the lan ip of the server to its name. follow the format of the line that has 127.0.0.1 localhost. saving this change makes sure the laptop can resolve the name of the server, which usually doesn't work without this setting. - install nfs support with
sudo apt install nfs-common
- edit
/etc/fstab
as root withsudo gedit /etc/fstab
and add a line for each nfs share to mount, in this format:server:/nfs_share /local/mount/point nfs noexec,noauto 0 0
- create the local mount points for each share (the second column in fstab) with a command like
sudo mkdir /local/mount/point
- create a new file as root in
/etc/NetworkManager/dispatcher.d/
and enter the following code (make sure to put in your uuid and your actual mount points), then set its permissions to rwxr-xr-x withchmod 755 /etc/NetworkManager/dispatcher.d/nfs-mount
:
#!/bin/bash SSID="your-wifi-ssid" INTERFACE=$1 ACTION=$2 ESSID=`nmcli -t -f active,ssid dev wifi | egrep '^yes' | cut -d: -f2` if [ "$SSID" == "$ESSID" ] && [ "$ACTION" == "up" ]; then mount /local/mount/point/one mount /local/mount/point/two fi
the network shares should be mounted whenever connecting to the wifi SSID. the noauto
in fstab tells the system not to attempt to mount those shares on startup, so it doesn't have to wait for that to fail when they're not available. the NetworkManager script makes sure to mount them once connected to the correct wifi, but if you're going to connect to your network with a cable it's not going to recognize the network and you'll need to issue the mount commands manually.
change user id
ubuntu uses 1000 as the id for the user it creates, but i have a different id on my server and they need to match up for nfs to know who i am. you can't change your user id while you're logged in, so i'll create another admin account temporarily and use that. do that and set a password with the following:
sudo useradd -G adm,sudo -m -s /bin/bash tempadmin sudo passwd tempadmin
now log out and you should be able to log back in as tempadmin with the password you just set, though it may be necessary to restart if it tells you your original user is in use by a process. run the following command to change your user id and update automounting:
sudo usermod -u [new_ID] [username] sudo setfacl -m "u:[username]:r-x" /media/ sudo setfacl -x "u:1000" /media/
now we just need to get rid of tempadmin, so log out and log back in as your actual user. run sudo userdel tempadmin
to go back to just one user.
remote control
remmina is back in the default install as of 23.10 and works great to connect to my home desktop using vnc (i use tightvnc server on windows 11 there). it is simple to install it though if it wasn't there for you:
sudo apt install remmina
i create two connections for my home desktop -- one that uses my lan ip and another that uses the subdomain i keep mapped to my internet ip. both use remmina vnc plugin for the protocol and specify [ip]:[port] or [subdomain]:[port] since i use a custom vnc port. username can be left blank, and user password can save my connection password. setting the password means if someone else got access to my laptop they could also access my desktop, so be sure to weigh the convenience against security for your situation.
i connect to my work computer over rdp, which i also do through remmina. create a new connection leaving the protocol on the default of RDP - Remote Desktop Protocol and set the server, username, password, and domain for the connection. choose a custom resolution (i use 2560x1440 since that's the resolution of the monitor i have at work -- it has to be added to the list using the ... button before you can choose it), then switch to the advanced tab and change audio output mode to local to get both the speakers and microphone to work. save the connection. on the first connection (we'll need to set up and connect to vpn first), it asks to accept a certificate for the machine.
in remmina preferences i turn off the setting that prevents screenshots from entering clipboard. then under applet, check the box to start in tray upon user login. under keyboard i clear the host key since i commonly use the right control key for normal keyboard shortcuts, and i don't really need to give up another key for remmina shortcuts i don't remember anyway. under rdp, map the caps lock key to insert by entering 0x3a=0x52 for keyboard scancode remapping (needs to be done separately from mapping it locally because rdp doesn't care about local mappings).
work vpn
my job provides cisco anyconnect vpn for me to connect remotely, but thankfully it's compatible with openconnect which is *much* easier to use and integrates with the network manager built into ubuntu. install openconnect, its network manager integration, and its editor (gnome is the name of the desktop environment ubuntu uses, even for cinnamon):
sudo apt install openconnect network-manager-openconnect network-manager-openconnect-gnome
now go to the network icon in the panel (lower right, probably looks like wifi), click it, and choose "Network Connections." add a new connection using the plus button in the lower left of that window, and choose "Cisco AnyConnect or OpenConnect (OpenConnect)" from under the VPN heading. give it a name (i use the company name) and enter the vpn server as the gateway (something like vpn.example.com). the vpn protocol should already be set to "cisco anyconnect or openconnect" from the earlier choice. save the connection.
now, just under the list of available SSIDs in the network menu it will show "VPN Connections" with a toggle next to it. select this to connect. the first time you do this it will prompt for username and password, which you can tell it to remember so it's even easier next time. the window stays open for me until i confirm that it's me connecting through the authenticator app on my phone -- my only real problem with this system is that it doesn't tell me i need to do that if i'm only looking at my laptop . . . but anyconnect doesn't either. disconnect by toggling VPN Connections back to off.
configuration
map caps lock key as insert
to remap capslock to insert for the entire machine, edit /usr/share/X11/xkb/symbols/pc
as root, and set the key <CAPS>
line to:
key <CAPS> {[ Insert ]};
this takes effect on your next login. it doesn’t apply to rdp connections in remmina though, so be sure to also follow the instructions from earlier for mapping it there too.
system settings
access system settings from the panel menu. they're grouped into sections so i'm using those same groupings here. if i don't list a settings option it's because i don't actually change anything in that one.
appearance
background
default background files are /usr/share/backgrounds/
, so that's where i put my own backgrounds. this isn't enough to make them automatically show in settings > background though, so use the add button (bottom left) to get that backgrounds directory added, then select it and a background.
effects
i have all the effects turned on, and set new windows and close windows to fly while leaving minimize traditional.
themes
it defaulted to a dark theme, so i change the application and icon themes to a dark yaru one with the accent color i want. under settings i turn on icons for menus and buttons.
preferences
account details
similar to background files, i create /usr/share/avatars/
to hold user avatars. there are some default avatar choices but i haven't been able to find where those are stored. click the use picture and choose browse for more pictures to select your preferred avatar.
applets
configure calendar to set custom date format to %l:%M %p %a %b %-e
(with two trailing spaces) to take up less space and use 12-hour time. similarly set date format for tooltip to %A, %B %e, %l:%M %p
to use 12-hour time. select corner bar and click the minus button at the bottom to remove it. configure menu to use a custom icon and label, then set icon to /usr/share/cinnamon/icons/ubuntucinnamon-symbolic.png
and icon size to 28 to keep the same icon and clear the text so it doesn’t take up space. also turn on menu animations.
date & time
turn off 24 hour clock and display seconds.
desktop
turn off all the desktop icons.
hardware
mouse and touchpad
under touchpad, i turn off reverse scrolling direction so that two-finger touchpad scroll works like moving the scroll bar not moving the content.
power management
change power button behavior to nothing. my laptop's power button is placed where i can very easily hit it by accident when picking it up so i prefer that it ignores when that happens.
sound
one of the reasons i prefer linux on my laptop is the over-amplification setting. go to the settings tab and slide the maximum volume all the way up to 150%, which is often handy running off built-in speakers.
administration
login window
i like to use my own background for the login screen. set that here and then turn off draw user background to have a login background all the time. set the themes as close as i can to the themes i picked in themes. under settings, change clock format to %l:%M %p
for 12-hour format.
firefox touch scroll zoom
while the touch screen makes most windows scroll, firefox selects text by default. to make a lasting change edit /etc/security/pam_env.conf
and add a line (i add it to the end) with MOZ_USE_XINPUT2 DEFAULT=0 OVERRIDE=1
. this should take effect on next login.
remove software
sudo apt remove pidgin rhythmbox simple-scan sudo apt autoremove
install software
here's some software i find useful to add:
sudo apt install gimp puddletag xsane
firefox
ubuntu comes with firefox (and thunderbird) installed through snap, but i’ve had problems with it telling me firefox needs to update but can’t because it's running. found these instructions on [omgubuntu.co.uk](https://www.omgubuntu.co.uk/2022/04/how-to-install-firefox-deb-apt-ubuntu-22-04) — start by running these commands to remove the snap firefox and the apt redirect to snap firefox, trust mozilla’s signing, and add a mozilla source.
sudo snap remove firefox sudo apt remove firefox wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- | sudo tee /etc/apt/keyrings/packages.mozilla.org.asc > /dev/null echo "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" | sudo tee -a /etc/apt/sources.list.d/mozilla.list > /dev/null
then set priority to the mozilla source and suppress ubuntu’s redirect to snap:
echo ' Package: * Pin: origin packages.mozilla.org Pin-Priority: 1000 Package: firefox* Pin: release o=Ubuntu Pin-Priority: -1' | sudo tee /etc/apt/preferences.d/mozilla
lastly, update to include the mozilla source and install that (now prioritized) firefox package:
sudo apt update sudo apt install firefox
steam
there’s a steam-installer in the repository but it fails to install. looking for a solution i found someone claiming the apt package is a redirect to snap, and snap just doesn’t work well (maybe it’s not mature enough). so instead, go to the steam website and download the installer from there. it gave me a file named steam_latest.deb. install it and dependencies with `sudo apt install ~/Downloads/steam_latest.deb` and then run steam to complete the installation and sign in to steam.
visual studio code
visual studio code isn’t in the default apt repositories (it’s in snap but snap doesn’t update well), but downloading and installing the deb actually adds it to apt so it can keep updating. note the filename will probably change to whichever version is current, so for the last two lines press the tab key to autocomplete after you’ve typed “code”:
wget 'https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-x64' --trust-server-names sudo dpkg -i code_1.83.1-1696982868_amd64.deb rm code_1.83.1-1696982868_amd64.deb
zoom
the official way to install zoom on ubuntu is to download the deb and install that, but it won’t auto-update and i end up having to manually update before every time i use it. instead, copy this into a script file (run chmod +x install-zoom
assuming you’ve saved it as install-zoom) and run it:
#!/usr/bin/env bash url=https://zoom.us/client/latest/zoom_amd64.deb debdir=/usr/local/zoomdebs aptconf=/etc/apt/apt.conf.d/100update_zoom sourcelist=/etc/apt/sources.list.d/zoomdebs.list sudo mkdir -p $debdir ( echo 'APT::Update::Pre-Invoke {"cd '$debdir' && wget -qN '$url' && apt-ftparchive packages . > Packages && apt-ftparchive release . > Release";};' | sudo tee $aptconf echo 'deb [trusted=yes lang=none] file:'$debdir' ./' | sudo tee $sourcelist ) >/dev/null sudo apt update sudo apt install zoom
minecraft
my son’s laptop isn’t powerful enough to run minecraft with mods, so he sometimes borrows my laptop. he gets my custom mod pack that i build through [curseforge](https://www.curseforge.com/download/app) but just built into the minecraft launcher so he doesn’t get distracted by the curseforge ads.
before you can do anything you need java, so grab openjdk which is the default:
sudo apt install default-jre
next get the minecraft launcher for debian from https://www.minecraft.net/en-us/download, which will be easier from linux because windows will show you the windows download first and you'll have to look for linux options. this should get you a Minecraft.deb file which you can install using dpkg (use the correct path if you downloaded it somewhere else or aren’t in your home directory):
dpkg -i Downloads/Minecraft.deb
at this point i needed to reboot and log in to the account that’s going to play minecraft, because otherwise it was crashing back out to the login screen. run the minecraft launcher, which may ask you to set a keyring password. this is optional, so you can leave it blank if you don’t want a password for your passwords stored on your keyring. sign in with the microsoft account that’s going to play minecraft. if you’re going to continue through installing forge and some mods, you should now close the minecraft launcher.
no find the exact minecraft+forge version at https://files.minecraftforge.net/net/minecraftforge/forge/ (you’ll need to click show all versions to get the correct forge version after selecting the page for your minecraft version). find the direct download link by pointing at the information icon next to the installer for your version and download. start the installer with:
java -jar forge-*-installer.jar
(use tab to autocomplete the filename.) if it warns that it can’t find a directory, make sure you’ve gone far enough with the minecraft launcher so it gets created first. it should have install client selected already, so click ok to install it.
this should have created a mods directory under ~/.minecraft where you can put your mods. similarly, config and defaultconfigs are next to that. copy those in and run the minecraft launcher again. the forge installation should be chosen by default, and playing that should include the mods.