class profiles::workstation ( ) { $os = $facts['os']['name'].downcase() include "::profiles::workstation::${os}" include ::profiles::group_profile if ($facts['systemd']) { file { 'User ssh-agent service': path => '/etc/systemd/user/ssh-agent.service', source => "puppet:///modules/profiles/ssh-agent.service", } } # NOTE Hard coding checksums here kind of defeats the point of # pulling in data from above (since we no longer get updates), # but since GitHub doesn't send checksum headers the files gets # updated every time otherwise, which creates noise. file { 'Dvorak A6 TTY keyboard layout': ensure => file, path => '/usr/share/kbd/keymaps/i386/dvorak/dvorak-sv-a6.map', checksum => 'md5', checksum_value => '96be6c1aa81522db46673c0f68e3336a', source => 'https://raw.githubusercontent.com/HugoNikanor/keymaps/master/linux-tty/dvorak-sv-a6.map', } file { 'Dvorak A6 X11 keyboard layout': ensure => file, path => '/usr/share/X11/xkb/symbols/planck', checksum => 'md5', checksum_value => '1f1023f6958916de592695cedbc94e5c', source => 'https://raw.githubusercontent.com/HugoNikanor/keymaps/master/X11/planck', } $xkb_layout = 'planck' $xkb_variant = 'dvorak_a6' $xkb_options = 'compose:caps' file { '/etc/X11/xorg.conf.d': ensure => directory, recurse => false, } file { 'X11 Raise max clients': ensure => file, path => '/etc/X11/xorg.conf.d/99-maxclients.conf', content => @(EOF) Section "ServerFlags" Option "MaxClients" "2048" EndSection | EOF } file { 'Default X11 keymap': ensure => file, path => '/etc/X11/xorg.conf.d/00-keyboard.conf', content => @("EOF") Section "InputClass" Identifier "system-keyboard" MatchIsKeyboard "on" Option "XkbLayout" "${xkb_layout}" Option "XkbModel" "pc105" Option "XkbVariant" "${xkb_variant}" Option "XkbOptions" "${xkb_options}" EndSection | EOF } file { 'Model M X11 keymap': ensure => file, path => '/etc/X11/xorg.conf.d/01-model-m.conf', content => @(EOF) Section "InputClass" Identifier "Model M" MatchUSBID "17f6:0822" Option "XkbLayout" "us" Option "XkbVariant" "dvorak" EndSection | EOF } file { 'Setup console': ensure => file, path => '/etc/vconsole.conf', content => epp('profiles/keyvalue.epp', { 'values' => { 'KEYMAP' => 'dvorak-sv-a6', 'FONT' => 'lat9v-12', }}), } $cowpath = [ '/usr/share/cows', '/usr/local/share/cows', ] file { '/etc/environment': content => epp('profiles/keyvalue.epp', { values => { 'COWPATH' => $cowpath.join(':'), 'MANWIDTH' => 80, 'MPD_HOST' => 'jukebox.lysator.liu.se', 'PAGER' => 'less', 'EDITOR' => '/usr/bin/vi', 'VISUAL' => '/usr/bin/vim', }}) } service { 'systemd-resolved': enable => mask, } file { 'Passmenu with OTP support': path => '/usr/local/bin/passmenu', mode => '0555', source => 'puppet:///modules/profiles/passmenu', } file { '/etc/sudoers': validate_cmd => '/usr/bin/visudo -cf %', content => @(EOF) Defaults insults root ALL=(ALL) ALL %root ALL=(ALL) ALL %wheel ALL=(ALL) ALL @includedir /etc/sudoers.d | EOF } systemd_mount { '/usr/net': what => 'elrond:/files', where => '/usr/net', wantedBy => 'remote-fs.target', automount => true, } }