Here's is a very useful tutorial on how to make textures, especially for hard surface texturing. Suitable for Xonotic and also very elegant and straight to the point. I'd suggest this tutorial to anyone who plans on making textures for non-oganic stuff.

This procedure works best on surfaces that don't have a special order in structure of sorts. For instance grass, rock, metal, wood etc. It's harder on brick walls, tile floors and such, as the resynthesizer plugin does not really pay attention to the overall structure (I guess there's some way, but haven't quite figured out yet).

So, start out with a photo, open it up in GIMP. Select the area you'd like to create a texture of, make sure the selection is a square (iirc hold shift while dragging). Next, scale down to a power of 2 (eg. 512x512, 1024x1024) and using the rectangle select tool, select about 10% of the lower area of the picture and 10% from the right area of the picture (do the second selection by holding shift+click). You should now be left with a rectangle/square of unselected area in the upper left part of the picture. This part will be used by the resynthesizer plugin to copy pixels off into the areas you have selected, so if you want to preserve some interesting areas in your selection, simply unselect them (ctrl+mouse). Make sure though that areas near the edges are selected, to make tiling look good.

When you are done so far, find the resynthesizer plugin from the Map -> menu (iirc). Make sure you have ticked tile both horizontally and vertically, and hit ok. Now it's time to go get a cup of coffee if your texture is of a big resolution, as this tends to take some time When it's done, you should now have a quite good looking tiling texture, if it was a texture that works good with resynthesizer If not, you'll need to do manual adjustments (with the clone tool etc).

Save that texture somewhere, as .tga for now, say texturename.tga. After saving, use the normalmap plugin to generate a normalmap for the texture, if needed. The result is obviously not always good, as it has no 3D data to analyze. Nevertheless, if you're happy with the result and deem it's worth to have your map use up some more resources with this normalmap, save it as texturename_norm.tga. Make sure the normalmap is correct by launching a rocket next to the texture in the game, using the console command g_balance_rocketlauncher_startspeed 0 first to freeze it in midair, while still allowing you to walk around and observe the texture. Look closely at which parts of the texture are lit, and which are not lit by the rocket dynamic light. If it's the wrong way (rocket on left side of a bump, darkness on left side of bump, lit on right side of bump) it means you have got the normalmap flipped the wrong way, which can iirc be corrected by inverting the red color channel of the normalmap in GIMP. Same thing goes for up/down, but there it's the green channel iirc.

All are very good and useful but I'd like to point out a rather important one on how to make better normal maps from regular 2d images. The tutorial is for photoshop but it works with GIMP and its normal map plugin as well.

panel50_reflect.tga = the parts of the textures that are reflective and therfore cubemapped the brighter the pixels, the more reflective and the darker the less reflective... think about it as a gloss map on acid

now you need something to reflect... so lets make a cubemap...

load any map and type in
envmap spekkie 512

it will generate a whole bunch of files (a cubemap) and save them as tga files in .nexuiz/data/env so go there and cut all the tga files that start with the name spekkie and then

Not exactly a tutorial, but still. http://www.burningwell.org/ is a collection of images released as public domain. You won't find any sci-fi panels there but you will find useful photos to help you add that additional touch to your Xonotic textures.

I found two quite interesting tutorials, one with Gimp, another one using photoshop. They might be intresting for some post-work on skyboxes (or even for work on new ones), if someone is able to create them in an image-manipulator.