summaryrefslogtreecommitdiff
path: root/manifests/workstation_x.pp
blob: 55ec7b34c3c186d86bc470c0cdc2901fdb6f6244 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# Workstation setup, for environments with X
class profiles::workstation_x (
  String $xkb_layout = 'planck',
  String $xkb_variant = 'dvorak_a6',
  String $xkb_options = 'compose:caps',
) {
  include ::profiles::workstation

  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',
    # NOTE Package name only checked on Archlinux
    require        => Package['xorg'],
  }

  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 { 'Keycool keyboard layout':
    ensure  => file,
    path    => '/etc/X11/xorg.conf.d/01-keycool-keyword.conf',
    content => @(EOF)
      Section "InputClass"
        Identifier "KeyCool Keyboard"
        MatchUSBID "0483:4051"
        Option "XkbLayout" "us"
        Option "XkbVariant" "dvorak"
      EndSection
    | EOF
  }


  file { 'Passmenu with OTP support':
    path   => '/usr/local/bin/passmenu',
    mode   => '0555',
    source => 'puppet:///modules/profiles/passmenu',
  }

  ensure_packages([
    'alacritty',
    'emacs',
    'feh',
    'firefox',
    # TODO this fails if another conflicting vim is already installed
    'gvim', # Arch specific name?
    'otf-fira-mono',
    'scrot',
    'transmission-remote-gtk',
    'ttf-fira-mono',
    'xclip',
    'xorg',
    'xorg-xinit',
    'xorg-fonts-misc',
    'xdg-utils',
    'arandr',
    'xterm',
    'zathura',
    'zathura-pdf-mupdf',
    'zathura-ps',
  ])

  include ::profiles::pulseaudio
  include ::profiles::xmonad
}