I'm looking to be able to auto populate an attribute field with the project file name either by a virtual field or default option in the properties. The "@project_filename" expression always produces a result with the file extension. eg "newproject.qgs" I don't want the ".qgs" displayed.
You could replace
'.qgs' by nothing
'' in your expression:
replace( @project_filename , '.qgs', '')
As J.R pointed out, you could also select the whole filename, minus the last 4 characters
substr( @project_filename ,1,-4)