summaryrefslogtreecommitdiff
path: root/modules/profiles/manifests
diff options
context:
space:
mode:
Diffstat (limited to 'modules/profiles/manifests')
-rw-r--r--modules/profiles/manifests/dolphin.pp70
-rw-r--r--modules/profiles/manifests/imagemagick.pp17
-rw-r--r--modules/profiles/manifests/syncthing.pp28
-rw-r--r--modules/profiles/manifests/synth.pp33
-rw-r--r--modules/profiles/manifests/workstation.pp126
-rw-r--r--modules/profiles/manifests/workstation/archlinux.pp53
-rw-r--r--modules/profiles/manifests/xmonad.pp29
7 files changed, 342 insertions, 14 deletions
diff --git a/modules/profiles/manifests/dolphin.pp b/modules/profiles/manifests/dolphin.pp
new file mode 100644
index 0000000..f1fdcf8
--- /dev/null
+++ b/modules/profiles/manifests/dolphin.pp
@@ -0,0 +1,70 @@
+# Configure the file manager dolphin
+class profiles::dolphin {
+ ensure_packages ([
+ 'dolphin',
+ 'kde-cli-tools',
+ 'ffmpegthumbs',
+ 'kdegraphics-thumbnailers',
+ 'konsole',
+ 'breeze-icons',
+ ], { ensure => installed })
+
+
+ $dolphin_settings = {
+ 'General' => {
+ 'BrowseThroughArchives' => 'true',
+ 'GlobalViewProps' => 'false',
+ 'HomeUrl' => '/usr/net/video',
+ 'OpenExternallyCalledFolderInNewTab' => 'false',
+ 'RememberOpenedTabs' => 'false',
+ 'ShowFullPath' => 'true',
+ },
+ 'MainWindow' => {
+ 'MenuBar' => 'Disabled',
+ 'ToolBarsMovable' => 'Disabled',
+ },
+ 'VersionControl' => {
+ 'enabledPlugins' => [
+ 'Dropbox',
+ 'Git',
+ ]
+ },
+ 'PreviewSettings' => {
+ 'Plugins' => [
+ 'appimagethumbnail',
+ 'audiothumbnail',
+ 'blenderthumbnail',
+ 'comicbookthumbnail',
+ 'djvuthumbnail',
+ 'ebookthumbnail',
+ 'exrthumbnail',
+ 'directorythumbnail',
+ 'fontthumbnail',
+ 'imagethumbnail',
+ 'jpegthumbnail',
+ 'kraorathumbnail',
+ 'windowsexethumbnail',
+ 'windowsimagethumbnail',
+ 'opendocumentthumbnail',
+ 'gsthumbnail',
+ 'svgthumbnail',
+ 'textthumbnail',
+ 'ffmpegthumbs',
+ ]
+ }
+ }
+
+ $dolphin_settings.map |$category, $group| {
+ $group.map |$setting, $value| {
+ ini_setting { "Dolphin [${category}].${setting}":
+ path => '/etc/xdg/dolphinrc',
+ section => $category,
+ setting => $setting,
+ value => $value ? {
+ Array => $value.join(','),
+ String => $value,
+ }
+ }
+ }
+ }
+}
diff --git a/modules/profiles/manifests/imagemagick.pp b/modules/profiles/manifests/imagemagick.pp
new file mode 100644
index 0000000..7663cf8
--- /dev/null
+++ b/modules/profiles/manifests/imagemagick.pp
@@ -0,0 +1,17 @@
+class profiles::imagemagick {
+ package { 'imagemagick':
+ ensure => installed,
+ }
+
+ file { '/etc/ImageMagick-7/policy.xml':
+ content => epp('profiles/imagemagick-policy.xml', {
+ policies => [
+ {
+ domain => 'coder',
+ rights => 'read | write',
+ pattern => 'PDF'
+ },
+ ]
+ }),
+ }
+}
diff --git a/modules/profiles/manifests/syncthing.pp b/modules/profiles/manifests/syncthing.pp
new file mode 100644
index 0000000..7d8183e
--- /dev/null
+++ b/modules/profiles/manifests/syncthing.pp
@@ -0,0 +1,28 @@
+class profiles::syncthing (
+ Array[String] $enable_for = []
+) {
+
+ # TODO add repo for those systems that need it
+
+ package { 'syncthing':
+ ensure => installed
+ }
+
+ systemd::dropin_file { 'nospam.conf':
+ unit => 'syncthing@.service',
+ content => @(EOF)
+ [Service]
+ ExecStart=
+ ExecStart=/bin/bash -c 'set -o pipefail; /usr/bin/syncthing -no-browser -no-restart -logflags=0 | grep -v "INFO: "'
+ | EOF
+ }
+
+ $enable_for.map |$user| {
+ service { "syncthing@${user}":
+ enable => true,
+ }
+ }
+
+ # TODO manage synced data
+
+}
diff --git a/modules/profiles/manifests/synth.pp b/modules/profiles/manifests/synth.pp
new file mode 100644
index 0000000..eb01f8f
--- /dev/null
+++ b/modules/profiles/manifests/synth.pp
@@ -0,0 +1,33 @@
+class profiles::synth {
+
+ package { 'freepats-general-midi':
+ ensure => installed,
+ }
+
+ file { '/etc/conf.d/fluidsynth':
+ content => @(EOF)
+ SOUND_FONT=/usr/share/soundfonts/freepats-general-midi.sf2
+ OTHER_OPTS='-a alsa'
+ | EOF
+ }
+
+ # TODO pull in aur package from
+ # https://git.hornquist.se/archpkg/aconnect-service/
+
+ # TODO setup the rest
+
+ # - template:
+ # dest: ~/.config/aconnect/impact
+ # source: aconnect
+ # vars:
+ # input_unit: Impact LX25
+ # output_unit: FLUID Synth
+ #
+ # - systemd:
+ # name: aconnect@{{ impact }}
+ # scope: user
+ # enabled: yes
+ # become: yes
+ # become_user: hugo
+
+}
diff --git a/modules/profiles/manifests/workstation.pp b/modules/profiles/manifests/workstation.pp
index 724a1b5..fe7e1cb 100644
--- a/modules/profiles/manifests/workstation.pp
+++ b/modules/profiles/manifests/workstation.pp
@@ -3,4 +3,130 @@ class profiles::workstation {
include "::profiles::workstation::${os}"
include ::profiles::group_profile
+
+ # TODO only if we use systemd
+ file { 'User ssh-agent service':
+ path => '/etc/systemd/user/ssh-agent.service',
+ source => "puppet:///modules/profiles/ssh-agent.service",
+ }
+
+ file { 'Dvorak A6 TTY keyboard layout':
+ ensure => file,
+ path => '/usr/share/kbd/keymaps/i386/dvorak/dvorak-sv-a6.map',
+ 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',
+ source => 'https://raw.githubusercontent.com/HugoNikanor/keymaps/master/X11/planck',
+ }
+
+ $xkb_layout = 'planck'
+ $xkb_variant = 'dvorak_a6'
+ $xkb_options = 'compose:caps'
+
+ 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"
+ MathUSBID "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
+ }
+
+ $locales = [
+ 'en_DK.UTF-8 UTF-8',
+ 'en_US.UTF-8 UTF-8',
+ 'sv_SE.UTF-8 UTF-8',
+ 'sv_SE.ISO-8859-1 ISO-8859-1',
+ '',
+ ]
+
+ file { '/etc/locale.gen':
+ content => $locales.join("\n")
+ } ~> exec { 'locale-gen':
+ path => [ '/bin', '/usr/bin', ],
+ }
+
+ file { 'Default locales':
+ path => '/etc/locale.conf',
+ content => @(EOF)
+ LANG=en_US.UTF-8
+ LC_TIME=sv_SE.UTF-8
+ | EOF
+ }
+
+ $timezone = 'Europe/Stockholm'
+
+ file { '/etc/localtime':
+ ensure => link,
+ target => "/usr/share/zoneinfo/${timezone}",
+ }
}
diff --git a/modules/profiles/manifests/workstation/archlinux.pp b/modules/profiles/manifests/workstation/archlinux.pp
index 963f4df..5274699 100644
--- a/modules/profiles/manifests/workstation/archlinux.pp
+++ b/modules/profiles/manifests/workstation/archlinux.pp
@@ -1,18 +1,4 @@
class profiles::workstation::archlinux {
- # Rebuilt my local xmonad config after an upgrade to xmonad.
- # It's required, I think due to something with dynamic linking.
- # It's actually pretty ugly that I'm hardcoded in here, but
- # something had to be done.
- pacman::hook { 'xmonad':
- description => 'Rebuild local xmonad config.',
- when => 'PostTransaction',
- exec => '/bin/sudo -Hu hugo xmonad --recompile',
- trigger => {
- type => 'Package',
- operation => ['Upgrade', 'Install'],
- target => 'xmonad*',
- },
- }
pacman::hook { 'systemd daemon-reload':
description => 'Reload systemd user daemon',
@@ -24,4 +10,43 @@ class profiles::workstation::archlinux {
target => 'usr/lib/systemd/user/*',
},
}
+
+ package { 'kernel-modules-hook':
+ ensure => installed,
+ } ~> service { 'linux-modules-cleanup':
+ ensure => running,
+ enable => true,
+ }
+
+ $cpus = $facts['processors']['count'] - 1
+ file_line { 'Makepkg paralell':
+ path => '/etc/makepkg.conf',
+ after => '^#-- Make flags',
+ line => "MAKEFLAGS='-j${cpus}'"
+ }
+
+ pacman::repo { 'adrift-space':
+ ensure => present,
+ server => 'http://repo.gandalf.adrift.space/arch',
+ sig_level => 'Optional',
+ }
+
+ # remove
+ # - netctl
+
+ # aur-packages
+# - pacaur
+# - ansible-aur-git
+# - cyrus-sasl-xoauth2-git
+# - todotxt
+# - effitask
+# - getmail
+# - mu
+# # - pacaur
+# - pandoc-bin
+# - tlclient
+# # backups old modules on kernel update
+# - kernel-modules-hook
+
+
}
diff --git a/modules/profiles/manifests/xmonad.pp b/modules/profiles/manifests/xmonad.pp
new file mode 100644
index 0000000..be8d516
--- /dev/null
+++ b/modules/profiles/manifests/xmonad.pp
@@ -0,0 +1,29 @@
+# Setup xmonad, only tested on arch linux
+class profiles::xmonad {
+ ensure_packages ([
+ 'xmonad',
+ 'xmonad-contrib',
+ # apparently really needed by xmonad
+ 'xorg-fonts-misc',
+ 'ghc',
+ 'xorg-xmessage',
+ 'dzen2',
+ 'dmenu',
+ 'rofi',
+ ], { ensure => installed })
+
+ # Rebuilt my local xmonad config after an upgrade to xmonad.
+ # It's required, I think due to something with dynamic linking.
+ # It's actually pretty ugly that I'm hardcoded in here, but
+ # something had to be done.
+ pacman::hook { 'xmonad':
+ description => 'Rebuild local xmonad config.',
+ when => 'PostTransaction',
+ exec => '/bin/sudo -Hu hugo xmonad --recompile',
+ trigger => {
+ type => 'Package',
+ operation => ['Upgrade', 'Install'],
+ target => 'xmonad*',
+ },
+ }
+}