Skip to content
Snippets Groups Projects
init.pp 6.14 KiB
Newer Older
schiermi's avatar
schiermi committed
class desktop {

schiermi's avatar
schiermi committed
	file { '/etc/skel/Desktop':
		ensure => directory,
schiermi's avatar
schiermi committed
	}

schiermi's avatar
schiermi committed
	package { 'xinit':
		ensure => installed,
	}

schiermi's avatar
schiermi committed
	package { 'lxde':
		ensure => installed,
schiermi's avatar
schiermi committed
		require => Package['xinit'],
schiermi's avatar
schiermi committed
	}

schiermi's avatar
schiermi committed
	$dms = [
		'lightdm*',
		'kdm',
		'gdm3',
		'nodm',
		'wdm',
		'xdm',
		'slim',
	]

	package { $dms:
		ensure => absent,
		require => Package['lxde'],
	}

	package { 'xscreensaver':
		ensure => absent,
	}

schiermi's avatar
schiermi committed
	$packages = [
		'pcmanfm',
		'iceweasel',
		'iceweasel-l10n-*',
		'gstreamer1.0-libav',
		'gstreamer1.0-plugins-good',
		'flashplugin-nonfree',
		'chromium',
		'chromium-l10n',
		'libreoffice',
#		'libreoffice-help-*',
#		'libreoffice-l10n-*',
schiermi's avatar
schiermi committed
		'ttf-mscorefonts-installer',
		'ttf-liberation',
		'fonts-crosextra-carlito',
		'fonts-crosextra-caladea',
                'florence',

	]
  
	package { $packages:
		ensure => installed,
	}

schiermi's avatar
schiermi committed
	file { '/etc/skel/Desktop/libreoffice-startcenter.desktop':
		source => '/usr/share/applications/libreoffice-startcenter.desktop',
schiermi's avatar
schiermi committed
		require => [
			Package['libreoffice'],
			File['/etc/skel/Desktop'],
		],
	}

schiermi's avatar
schiermi committed
	file { '/etc/skel/Desktop/lxde-logout.desktop':
		source => '/usr/share/applications/lxde-logout.desktop',
		require => [
			Package['lxde'],
			File['/etc/skel/Desktop'],
		],
	}

	file { '/etc/skel/Desktop/leafpad.desktop':
		source => '/usr/share/applications/leafpad.desktop',
		replace => false,
schiermi's avatar
schiermi committed
		require => [
			Package['lxde'],
			File['/etc/skel/Desktop'],
		],
	}

	exec { 'fix-desktop-leafpad':
		command => '/bin/sed -i "/^Name/ s/=.*/=Notes/;" /etc/skel/Desktop/leafpad.desktop',
schiermi's avatar
schiermi committed
		unless => '/bin/grep -q "^Name=Notes" /etc/skel/Desktop/leafpad.desktop',
		require => File['/etc/skel/Desktop/leafpad.desktop'],
schiermi's avatar
schiermi committed
	file { '/etc/skel/Desktop/galculator.desktop':
		source => '/usr/share/applications/galculator.desktop',
		replace => false,
schiermi's avatar
schiermi committed
		require => [
			Package['lxde'],
			File['/etc/skel/Desktop'],
		],
schiermi's avatar
schiermi committed
	}

	exec { 'fix-desktop-galculator':
		command => '/bin/sed -i "/^Name/ s/=.*/=Calculator/;" /etc/skel/Desktop/galculator.desktop',
schiermi's avatar
schiermi committed
		unless => '/bin/grep -q "^Name.*=Calculator" /etc/skel/Desktop/galculator.desktop',
		require => File['/etc/skel/Desktop/galculator.desktop'],
schiermi's avatar
schiermi committed
	file { '/etc/skel/Desktop/chromium-l10n.desktop':
		source => '/usr/share/applications/chromium.desktop',
		require => [
			Package['chromium'],
			File['/etc/skel/Desktop'],
		],
	}
	
	file { '/etc/skel/Desktop/florence.desktop':
		source => '/usr/share/applications/florence.desktop',
		replace => false,
		require => [
			Package['florence'],
			File['/etc/skel/Desktop'],
		],
	}
	exec { 'fix-desktop-florence':
		command => '/bin/sed -i "/^Name/ s/=.*/=Keyboard/;" /etc/skel/Desktop/florence.desktop',
schiermi's avatar
schiermi committed
		unless => '/bin/grep -q "^Name.*=Keyboard" /etc/skel/Desktop/florence.desktop',
		require => File['/etc/skel/Desktop/florence.desktop'],
	}

	file { '/etc/skel/Desktop/pcmanfm.desktop':
		source => '/usr/share/applications/pcmanfm.desktop',
		replace => false,
		require => [
			Package['pcmanfm'],
			File['/etc/skel/Desktop'],
		],
	}

	exec { 'fix-desktop-pcmanfm':
		command => '/bin/sed -i "/^Name/ s/=.*/=Filemanager/;" /etc/skel/Desktop/pcmanfm.desktop',
schiermi's avatar
schiermi committed
		unless => '/bin/grep -q "^Name.*=Filemanager" /etc/skel/Desktop/pcmanfm.desktop',
		pequire => File['/etc/skel/Desktop/pcmanfm.desktop'],
schiermi's avatar
schiermi committed
	file { '/etc/skel/Desktop/iceweasel.desktop':
		source => '/usr/share/applications/iceweasel.desktop',
		replace => false,
schiermi's avatar
schiermi committed
		require => [
			Package['iceweasel'],
			File['/etc/skel/Desktop'],
		],
	}

	exec { 'fix-desktop-iceweasel':
		command => '/bin/sed -i "/^Name/ s/=.*/=Webbrowser/;" /etc/skel/Desktop/iceweasel.desktop',
schiermi's avatar
schiermi committed
		unless => '/bin/grep -q "^Name.*=Webbrowser" /etc/skel/Desktop/iceweasel.desktop',
		require => File['/etc/skel/Desktop/iceweasel.desktop'],
schiermi's avatar
schiermi committed
	file { '/etc/iceweasel/profile/prefs.js':
schiermi's avatar
schiermi committed
		source => 'puppet:///modules/desktop/etc/iceweasel/profile/prefs.js',
schiermi's avatar
schiermi committed
		require => [
			Package['iceweasel'],
		],
	}

schiermi's avatar
schiermi committed
	group { 'guest':
		ensure => 'present'
	}

	user { 'guest':
schiermi's avatar
schiermi committed
		uid => 5000,
schiermi's avatar
schiermi committed
		home => '/run/user/5000/home',
schiermi's avatar
schiermi committed
		# password: guest
		password => '$6$pheeghohphaikuka$lJodCaTfZG4IhXw9.htxDsMDAiQrhOsXyJR.nvCdWc2EHgmstkTrpn/8LWi83e9Ac.WFDfzmQ1phpDII/npl/0',
schiermi's avatar
schiermi committed
		managehome => false,
schiermi's avatar
schiermi committed
		gid => 'guest',
schiermi's avatar
schiermi committed
		groups => [
				'plugdev',
				'cdrom',
				'audio',
				'video',
			],
schiermi's avatar
schiermi committed
		shell => '/bin/bash',
schiermi's avatar
schiermi committed
		require => Group['guest'],
schiermi's avatar
schiermi committed
		ensure => 'present',
schiermi's avatar
schiermi committed
	}

schiermi's avatar
schiermi committed
	$packages_i386 = [
		'libc6:i386',
		'libqt4-dbus:i386',
		'libqt4-network:i386',
		'libqt4-xml:i386',
		'libqtcore4:i386',
		'libqtgui4:i386',
		'libqtwebkit4:i386',
		'libstdc++6:i386',
		'libx11-6:i386',
		'libxext6:i386',
		'libxss1:i386',
		'libxv1:i386',
		'libssl1.0.0:i386',
		'libpulse0:i386',
		'libasound2-plugins:i386',
	]

	package { $packages_i386:
schiermi's avatar
schiermi committed
		ensure => installed,
schiermi's avatar
schiermi committed
		require => [
				Exec['add-architecture-i386'],
schiermi's avatar
schiermi committed
				Exec['apt_update'],
schiermi's avatar
schiermi committed
			],
schiermi's avatar
schiermi committed
	}

	exec { 'download-skype':
schiermi's avatar
schiermi committed
		command => '/usr/bin/wget -qO/var/cache/.skype-install.deb.part http://www.skype.com/go/getskype-linux-deb && /bin/mv /var/cache/.skype-install.deb.part /var/cache/skype-install.deb',
schiermi's avatar
schiermi committed
		creates => '/var/cache/skype-install.deb',
	}

	package { 'skype':
		provider => dpkg,
		ensure => latest,
		source => '/var/cache/skype-install.deb',
schiermi's avatar
schiermi committed
		require => [
			Exec['download-skype'],
			Package['libc6:i386'],
			],	
schiermi's avatar
schiermi committed
	}

	file { '/etc/skel/Desktop/skype.desktop':
		source => '/usr/share/applications/skype.desktop',
		require => [
			Package['skype'],
			File['/etc/skel/Desktop'],
		],
	}

schiermi's avatar
schiermi committed
	exec { 'enable-guestx11':
schiermi's avatar
schiermi committed
		command => '/bin/systemctl enable guestx11.service',
schiermi's avatar
schiermi committed
		refreshonly => true,
	}
		
	exec { 'start-guestx11':
schiermi's avatar
schiermi committed
		command => '/bin/systemctl start guestx11.service',
schiermi's avatar
schiermi committed
		refreshonly => true,
	}

	file { '/usr/local/sbin/x11login':
		source => 'puppet:///modules/desktop/usr/local/sbin/x11login',
		mode => 'a=rx',
		ensure => file,
	}

schiermi's avatar
schiermi committed
	file { '/etc/skel':
		source => 'puppet:///modules/desktop/etc/skel',
		recurse => true,
schiermi's avatar
schiermi committed
	}

	file { '/etc/systemd/system/guestx11.service':
		source => 'puppet:///modules/desktop/etc/systemd/system/guestx11.service',
		mode => 'a=rx',
		require => [
				Package['lxde'],
				File['/etc/skel/Desktop'],
				File['/usr/local/sbin/x11login'],
schiermi's avatar
schiermi committed
				File['/etc/skel'],
schiermi's avatar
schiermi committed
			],
		notify => [
				Exec['enable-guestx11'],
				Exec['start-guestx11'],
			],
		ensure => file,
	}
schiermi's avatar
schiermi committed
}