Smoking in public places such as schools, hospitals, shopping centres and cinemas is to be banned nationwide, following a clear vote on Thursday by the Senate.
The chamber that represents Switzerland's cantons joined the House of Representatives in approving a compromise package on the smoking issue.
It permits smoking in small restaurants and bars with a surface area of less than 80 square metres, but there are strict conditions.
Rooms where smoking is allowed have to be well ventilated and clearly marked for the purpose, and restaurateurs will have to seek official permission for them.
Smokers may also be served food and drinks in such rooms, but this has to be written into the terms of employment of serving staff.
The smoking issue in Switzerland is complex because the country's 26 cantons have their own say too.
Only last Sunday cantons Zurich and Basel City voted in favour of legislation to permit smoking rooms in restaurants... but without service. A number of other cantons, including Fribourg, Valais and Vaud are also set to vote on the issue.