| 1 | # Overview # |
| 2 | |
| 3 | Installation notes for a FreeBSD 11 graphical workstation. |
| 4 | |
| 5 | |
| 6 | # X11 & Fluxbox # |
| 7 | |
| 8 | Compile from ports: |
| 9 | |
| 10 | x11/xorg |
| 11 | curl+libssh+smb |
| 12 | gmp+assembly_opts |
| 13 | mesa_libs+wayland |
| 14 | webp+x11 |
| 15 | (xterm+xinerama) |
| 16 | x11/nvidia-driver |
| 17 | x11-wm/fluxbox |
| 18 | |
| 19 | Add the following line to `/etc/rc.conf`, rebooting or using `kldload` before |
| 20 | attempting to start X. |
| 21 | |
| 22 | kld_list="nvidia-modeset" |
| 23 | |
| 24 | Create the following configuration file at |
| 25 | `/usr/local/etc/X11/xorg.conf.d/driver-nvidia.conf`. |
| 26 | |
| 27 | Section "Device" |
| 28 | Identifier "NVIDIA Card" |
| 29 | VendorName "NVIDIA Corporation" |
| 30 | Driver "nvidia" |
| 31 | EndSection |
| 32 | |
| 33 | Create `/home/ataylor/.xinitrc` to load Fluxbox and set |
| 34 | resolution/orientation/etc. |
| 35 | |
| 36 | xrandr --output HDMI-0 --mode 3840x2160 --pos 0x0 --output DVI-D-0 --rotate left --mode 2560x1600 --pos 3840x-150 |
| 37 | /usr/local/bin/fluxbox |
| 38 | |
| 39 | After starting X, use the Fluxbox config menus to set: |
| 40 | |
| 41 | * Focus model = mouse focus |
| 42 | * Auto-raise windows? = no |
| 43 | * Style = Meta |
| 44 | |
| 45 | Overwrite `~/.fluxbox/keys` with my keys file: |
| 46 | |
| 47 | # click on the desktop to get menus |
| 48 | OnDesktop Mouse1 :HideMenus |
| 49 | OnDesktop Mouse2 :WorkspaceMenu |
| 50 | OnDesktop Mouse3 :RootMenu |
| 51 | |
| 52 | # scroll on the desktop to change workspaces |
| 53 | OnDesktop Mouse4 :PrevWorkspace |
| 54 | OnDesktop Mouse5 :NextWorkspace |
| 55 | |
| 56 | # alt + left/right click to move/resize a window |
| 57 | OnWindow Mod1 Mouse1 :MacroCmd {Raise} {Focus} {StartMoving} |
| 58 | OnWindowBorder Move1 :StartMoving |
| 59 | |
| 60 | OnWindow Mod1 Mouse3 :MacroCmd {Raise} {Focus} {StartResizing NearestCorner} |
| 61 | OnLeftGrip Move1 :StartResizing bottomleft |
| 62 | OnRightGrip Move1 :StartResizing bottomright |
| 63 | |
| 64 | # control-click a window's titlebar and drag to attach windows |
| 65 | OnTitlebar Control Mouse1 :StartTabbing |
| 66 | |
| 67 | # double click on the titlebar to shade |
| 68 | OnTitlebar Double Mouse1 :Shade |
| 69 | |
| 70 | # left click on the titlebar to move the window |
| 71 | OnTitlebar Mouse1 :MacroCmd {Raise} {Focus} {ActivateTab} |
| 72 | OnTitlebar Move1 :StartMoving |
| 73 | |
| 74 | # middle click on the titlebar to lower |
| 75 | OnTitlebar Mouse2 :Lower |
| 76 | |
| 77 | # right click on the titlebar for a menu of options |
| 78 | OnTitlebar Mouse3 :WindowMenu |
| 79 | |
| 80 | # open a terminal |
| 81 | Mod1 F1 :Exec xterm |
| 82 | # open a dialog to run programs |
| 83 | Mod1 F2 :Exec fbrun |
| 84 | # Open file manager |
| 85 | #Mod1 F3 :Exec spacefm |
| 86 | # current window commands |
| 87 | Mod1 F4 :Close |
| 88 | |
| 89 | # Take a screenshot |
| 90 | 111 :Exec /home/ataylor/bin/take_screenshot.sh |
| 91 | |
| 92 | # Start screensaver, lock screen |
| 93 | 110 :Exec xscreensaver-command -lock |
| 94 | |
| 95 | # Window sizing commands |
| 96 | Control F1 :Minimize |
| 97 | Control F2 :Shade |
| 98 | Control F3 :Maximize |
| 99 | Control F4 :Fullscreen |
| 100 | |
| 101 | Control F5 :MacroCmd {ResizeTo 1600 1250} {Moveto 0 0 UpperLeft} |
| 102 | Control F6 :MacroCmd {ResizeTo 1600 1250} {Moveto 0 0 LowerLeft} |
| 103 | |
| 104 | Control F7 :MacroCmd {ResizeTo 1905 2160} {Moveto 0 0 UpperLeft} |
| 105 | Control F8 :MacroCmd {ResizeTo 1905 2160} {Moveto 0 0 UpperRight} |
| 106 | |
| 107 | Control F9 :MacroCmd {ResizeTo 1920 1080} {Moveto 0 0 UpperLeft} |
| 108 | Control F10 :MacroCmd {ResizeTo 1920 1080} {Moveto 0 0 UpperRight} |
| 109 | Control F11 :MacroCmd {ResizeTo 1920 1080} {Moveto 0 0 LowerLeft} |
| 110 | Control F12 :MacroCmd {ResizeTo 1920 1080} {Moveto 0 0 LowerRight} |
| 111 | |
| 112 | Set the system clock by modifying `~/.fluxbox/init` to contain: |
| 113 | |
| 114 | session.screen0.strftimeFormat: %a, %b %d %H:%M:%S |
| 115 | |
| 116 | # Ports - Misc # |
| 117 | |
| 118 | To enable searching ports via `make search key=text-string`, execute the |
| 119 | following command. |
| 120 | |
| 121 | cd /usr/ports && make index |
| 122 | |
| 123 | Some packages with auto-updating strings (like version number) fail checksum |
| 124 | tests. Both `print/texinfo` and `security/trousers` are common examples. When |
| 125 | encountering a message about size mismatches during the fetch stage, perform |
| 126 | the following steps. |
| 127 | |
| 128 | 1. Download the source file manually with `wget`. |
| 129 | 2. Use `make fetch-list` with `grep` to find out where the file should go. |
| 130 | Should be somewhere under `/usr/ports/distfiles`. |
| 131 | 3. Copy the file to the proper location. |
| 132 | 4. In the folder of the port you are trying to build, run `make makesum` to |
| 133 | update the checksum based on the currently present file. |
| 134 | 5. Resume making the port as normal. |
| 135 | |
| 136 | Compile and install the following ports: |
| 137 | |
| 138 | sysutils/screen |
| 139 | ftp/wget |
| 140 | editors/vim |
| 141 | Set EDITOR=vim in ~/.profile |
| 142 | www/firefox |
| 143 | Build failing on ffmpeg dependency |
| 144 | going into ffmpeg folder and building directly solved it. |
| 145 | Also had to run (as root) dbus-uuidgen > /etc/machine-id |
| 146 | Otherwise firefox coredumps with: |
| 147 | "D-Bus library appears to be incorrectly set up; failed to read machine uuid: Failed to open "/etc/machine-id": No such file or directory" |
| 148 | mail/mutt |
| 149 | +sidebar |
| 150 | www/links (start with links -g) |
| 151 | sysutils/nitrogen |
| 152 | net/samba46 |
| 153 | -ads,ad_dc,ldap |
| 154 | mount_smbfs -I 192.168.1.5 //ataylor@talisker/zfs_stripe_0 /mnt/zfs_stripe_0 |
| 155 | graphics/geeqie |
| 156 | multimedia/vlc |
| 157 | +x264/x265 support |
| 158 | sysutils/fusefs-exfat |
| 159 | fuse_load="YES" -> /boot/loader.conf |
| 160 | /dev/nvd0s3 /mnt/windows exfat rw,mountprog=/usr/local/sbin/mount.exfat 0 0 -> /etc/fstab |
| 161 | devel/git |
| 162 | git config --global user.name "Aaron Taylor" |
| 163 | git config --global user.email "ataylor@subgeniuskitty.com" |
| 164 | devel/sdl20 |
| 165 | graphics/ImageMagick-nox11 |
| 166 | graphics/sdl2_image |
| 167 | net-p2p/deluge |
| 168 | irc/irssi |
| 169 | dns/bind-tools |
| 170 | www/apache24 |
| 171 | apache24_enable="yes" -> rc.conf |
| 172 | in httpd.conf set: |
| 173 | ServerName |
| 174 | ServerAdmin |
| 175 | and uncomment the cgi (not cgid) module in the MPMPREFORK IFDEF |
| 176 | net-mgmt/icmpmonitor |
| 177 | emulators/simh |
| 178 | emulators/virtualbox-ose |
| 179 | Add "vboxdrv_load="YES"" to /boot/loader.conf |
| 180 | pw groupmod vboxusers -m ataylor |
| 181 | Add "vboxnet_enable="YES"" to /etc/rc.conf for bridging support |
| 182 | multimedia/quodlibet |
| 183 | devel/arm-none-eabi-gdb |
| 184 | devel/valgrind |
| 185 | devel/arm-none-eabi-gcc |
| 186 | editors/libreoffice |
| 187 | graphics/inkscape |
| 188 | graphics/okular |
| 189 | math/gnuplot |
| 190 | editors/texmaker |
| 191 | devel/openocd |
| 192 | Enable USB for non-root users: |
| 193 | pw groupmod operator -m ataylor |
| 194 | setup the devfs subsystem by adding these lines to the following files: |
| 195 | ***/etc/devfs.rules (FreeBSD >= 8): |
| 196 | [localrules=10] |
| 197 | add path 'ugen*' mode 0660 group operator |
| 198 | add path 'usb/*' mode 0660 group operator |
| 199 | add path 'usb' mode 0770 group operator |
| 200 | ***/etc/rc.conf: |
| 201 | devfs_system_ruleset="localrules" |
| 202 | graphics/gimp |
| 203 | -gutenprint (brings in samba-4.4 and conflicts with installed samba-4.6) |
| 204 | x11-fm/qtfm |
| 205 | x11-fm/twander |
| 206 | TODO: Re-work ~/.twander for FreeBSD |
| 207 | www/py-beautifulsoup |
| 208 | www/py-requests |
| 209 | www/py3-requests |
| 210 | games/linux-dwarffortress |
| 211 | games/openmw |
| 212 | |
| 213 | # Mounting SMB/CIFS at Boot # |
| 214 | |
| 215 | Add to `/etc/fstab`: |
| 216 | |
| 217 | //ataylor@TALISKER/zfs_mirror_0 /mnt/zfs_mirror_0 smbfs rw,late,-N,-I192.168.1.5 0 0 |
| 218 | //ataylor@TALISKER/zfs_stripe_0 /mnt/zfs_stripe_0 smbfs rw,late,-N,-I192.168.1.5 0 0 |
| 219 | |
| 220 | Set ownership to `ataylor:ataylor` on `/mnt/zfs_stripe_0 and /mnt/zfs_mirror_0` |
| 221 | since `mount_smbfs` uses default "owner and group IDs from the directory where |
| 222 | the volume is mounted." (from `mount_smbfs` manpage) |
| 223 | |
| 224 | Add to `/etc/nsmbd.conf` |
| 225 | [TALISKER:ATAYLOR] |
| 226 | password=password-goes-here |
| 227 | |
| 228 | |
| 229 | # Firefox Configuration # |
| 230 | |
| 231 | In `about:config`: |
| 232 | |
| 233 | browser.newtabpage.enabled = false |
| 234 | general.useragent.override = NCSA Mosaic/1.0 (X11;SunOS 4.1.4 sun4m) |
| 235 | gfx.canvas.azure.backends = cairo |
| 236 | gfx.content.azure.backends = cairo |
| 237 | gfx.canvas.azure.accelerated = true |
| 238 | |
| 239 | Note that the `gfx.*` entries enable hardware acceleration since the Nvidia |
| 240 | drivers I am using support cairo but not skia, or is it that cairo supports my |
| 241 | video drivers and skia doesn't? |
| 242 | |
| 243 | In preferences: |
| 244 | |
| 245 | * Remember last session on startup |
| 246 | * Download files to `/home/ataylor/downloads` |
| 247 | * Check for updates but do not auto-install |
| 248 | * Default search -> DuckDuckGo |
| 249 | * Do not provide search suggestions |
| 250 | * Location Bar, disable all 'suggest' locations (History, Bookmarks, Open Tabs) |
| 251 | |
| 252 | Install plugins: |
| 253 | |
| 254 | |
| 255 | * uBlock Origin |
| 256 | * NoScript |
| 257 | * Image Zoom |
| 258 | * Save Image in Folder |
| 259 | * Thumbnail Zoom Plus |
| 260 | |
| 261 | Execute `touch ~/.null` and then create `~/.config/user-dirs.dirs` as below. |
| 262 | |
| 263 | XDG_DESKTOP_DIR="$HOME/.null" |
| 264 | XDG_DOWNLOAD_DIR="$HOME/.null" |
| 265 | XDG_TEMPLATES_DIR="$HOME/.null" |
| 266 | XDG_PUBLICSHARE_DIR="$HOME/.null" |
| 267 | XDG_DOCUMENTS_DIR="$HOME/.null" |
| 268 | XDG_MUSIC_DIR="$HOME/.null" |
| 269 | XDG_PICTURES_DIR="$HOME/.null" |
| 270 | XDG_VIDEOS_DIR="$HOME/.null" |
| 271 | |
| 272 | To make scrollbars move one-page-per-click rather than jumping to the cursor, |
| 273 | create the file `~/.config/gtk-3.0/settings.ini` with contents: |
| 274 | |
| 275 | [Settings] |
| 276 | gtk-primary-button-warps-slider=false |
| 277 | |
| 278 | |
| 279 | # Audio Configuration # |
| 280 | |
| 281 | By default, FreeBSD only provides 16 virtual audio channels via `/dev/dsp`. |
| 282 | Since Firefox appears to open a new connection for each tab that plays audio |
| 283 | and does not release those connections as long as the tab remains open, I |
| 284 | sometimes encounter error messages like the following. |
| 285 | |
| 286 | mpv: can't open /dev/dsp! |
| 287 | |
| 288 | To verify the problem, use `fstat` to confirm that too many connections exist. |
| 289 | |
| 290 | ataylor@lagavulin:~ % fstat | grep dsp |
| 291 | ataylor mpv 42458 27 /dev 215 crw-rw-rw- dsp0.15 w |
| 292 | ataylor mpv 36531 27 /dev 194 crw-rw-rw- dsp0.11 w |
| 293 | ataylor mpv 24332 25 /dev 204 crw-rw-rw- dsp0.13 w |
| 294 | ataylor firefox 61929 48 /dev 209 crw-rw-rw- dsp0.14 w |
| 295 | ataylor firefox 61718 23 /dev 259 crw-rw-rw- dsp0.22 w |
| 296 | ataylor firefox 61718 47 /dev 296 crw-rw-rw- dsp0.46 w |
| 297 | ataylor firefox 61718 51 /dev 273 crw-rw-rw- dsp0.30 w |
| 298 | ataylor firefox 61718 64 /dev 284 crw-rw-rw- dsp0.40 w |
| 299 | ataylor firefox 61718 68 /dev 245 crw-rw-rw- dsp0.17 w |
| 300 | ataylor firefox 61718 70 /dev 265 crw-rw-rw- dsp0.25 w |
| 301 | ataylor firefox 61718 73 /dev 280 crw-rw-rw- dsp0.36 w |
| 302 | ataylor firefox 61718 74 /dev 188 crw-rw-rw- dsp0.10 w |
| 303 | ataylor firefox 61718 75 /dev 278 crw-rw-rw- dsp0.34 w |
| 304 | ataylor firefox 61718 76 /dev 272 crw-rw-rw- dsp0.29 w |
| 305 | ataylor firefox 61718 79 /dev 282 crw-rw-rw- dsp0.38 w |
| 306 | ataylor firefox 61718 80 /dev 293 crw-rw-rw- dsp0.43 w |
| 307 | ataylor firefox 61695 47 /dev 264 crw-rw-rw- dsp0.24 w |
| 308 | ataylor firefox 61695 48 /dev 279 crw-rw-rw- dsp0.35 w |
| 309 | ataylor firefox 61695 66 /dev 274 crw-rw-rw- dsp0.31 w |
| 310 | ataylor firefox 61695 69 /dev 292 crw-rw-rw- dsp0.42 w |
| 311 | ataylor firefox 61620 17 /dev 247 crw-rw-rw- dsp0.18 w |
| 312 | ataylor firefox 61620 72 /dev 291 crw-rw-rw- dsp0.41 w |
| 313 | ataylor firefox 61208 17 /dev 254 crw-rw-rw- dsp0.20 w |
| 314 | ataylor firefox 61208 18 /dev 275 crw-rw-rw- dsp0.32 w |
| 315 | ataylor firefox 61208 48 /dev 201 crw-rw-rw- dsp0.12 w |
| 316 | ataylor firefox 59654 45 /dev 276 crw-rw-rw- dsp0.33 w |
| 317 | ataylor firefox 59654 70 /dev 295 crw-rw-rw- dsp0.45 w |
| 318 | ataylor python2.7 82359 20 /dev 145 crw-rw-rw- dsp0.16 w |
| 319 | |
| 320 | Before proceeding, ensure that no processes have `/dev/dsp` open. IOW, the |
| 321 | above `fstat` list should be empty. |
| 322 | |
| 323 | With nothing using the audio device, increase the number of virtual channels |
| 324 | with `sysctl`. |
| 325 | |
| 326 | root@lagavulin:~ % sysctl -a | grep vchans |
| 327 | hw.snd.maxautovchans: 16 |
| 328 | dev.pcm.2.play.vchans: 1 |
| 329 | dev.pcm.1.play.vchans: 1 |
| 330 | dev.pcm.0.rec.vchans: 4 |
| 331 | dev.pcm.0.play.vchans: 16 |
| 332 | |
| 333 | root@lagavulin:~ # sysctl dev.pcm.0.play.vchans=256 |
| 334 | dev.pcm.0.play.vchans: 16 -> 256 |
| 335 | |
| 336 | root@lagavulin:~ # sysctl hw.snd.maxautovchans=256 |
| 337 | hw.snd.maxautovchans: 16 -> 256 |
| 338 | |
| 339 | Add the following two lines to `/etc/sysctl.conf` so the change persists. |
| 340 | |
| 341 | dev.pcm.0.play.vchans=256 |
| 342 | hw.snd.maxautovchans=256 |
| 343 | |
| 344 | |
| 345 | # X11 Configuration # |
| 346 | |
| 347 | In `~/.Xresources`: |
| 348 | |
| 349 | xterm*faceName: Liberaqtion Mono:size=12:antialias=true |
| 350 | xterm*font: 7x13 |
| 351 | |
| 352 | In `~/.Xmodmap`: |
| 353 | |
| 354 | ! |
| 355 | ! Swap Caps_Lock and Control_L |
| 356 | ! |
| 357 | remove Lock = Caps_Lock |
| 358 | remove Control = Control_L |
| 359 | keycode 9 = Caps_Lock NoSymbol Caps_Lock |
| 360 | keycode 37 = Escape NoSymbol Escape |
| 361 | keycode 66 = Control_L NoSymbol Control_L |
| 362 | add Lock = Caps_Lock |
| 363 | add Control = Control_L |
| 364 | |
| 365 | In `~/.xinitrc`: |
| 366 | |
| 367 | xrdb /home/ataylor/.Xresources |
| 368 | xmodmap /home/ataylor/.Xmodmap |
| 369 | |
| 370 | |
| 371 | # FreeBSD Configuration # |
| 372 | |
| 373 | Add to `/etc/sysctl.conf`: |
| 374 | |
| 375 | kern.corefile=/dev/null |
| 376 | |
| 377 | # Screensaver/Screenlock # |
| 378 | |
| 379 | Compile the `x11/xscreensaver` port and execute `xscreensaver-demo` to |
| 380 | configure the screensaver. |
| 381 | |
| 382 | Add `xscreensaver -nosplash &` to `~/.xinitrc`. |
| 383 | |
| 384 | Add a line like the one below to `~/.fluxbox/keys`. |
| 385 | |
| 386 | 110 :Exec xscreensaver-command -lock |
| 387 | |
| 388 | |
| 389 | # Wallpaper Configuration # |
| 390 | |
| 391 | Create `~/bin/wallpaper_rotation.sh` and add to `~/.xinitrc`. |
| 392 | Remember to make it executable. |
| 393 | |
| 394 | #!/usr/local/bin/python3 |
| 395 | # This script creates a wallpaper slideshow. |
| 396 | |
| 397 | ##### Configuration |
| 398 | |
| 399 | # List of image source directories |
| 400 | # Each sublist is of the form: |
| 401 | # [monitor ID, absolute path to directory containing images for this monitor] |
| 402 | source_dir = [ |
| 403 | [0,"/mnt/zfs_mirror_0/wallpaper/ratio_10_16"], |
| 404 | [1,"/mnt/zfs_mirror_0/wallpaper/ratio_16_9"] |
| 405 | ] |
| 406 | |
| 407 | # This list will be populated during runtime. |
| 408 | # Each sublist is of the form: |
| 409 | # [monitor ID, absolute path to image file to display on this monitor] |
| 410 | current_wallpaper = [ |
| 411 | [0,""], |
| 412 | [1,""] |
| 413 | ] |
| 414 | |
| 415 | # Path to nitrogen configuration file |
| 416 | nitrogen_config = "/home/ataylor/.config/nitrogen/bg-saved.cfg" |
| 417 | |
| 418 | ##### Dependencies |
| 419 | |
| 420 | from subprocess import call |
| 421 | from os import listdir |
| 422 | from os.path import isfile, join |
| 423 | from random import choice |
| 424 | from time import sleep |
| 425 | |
| 426 | ##### Source Code |
| 427 | |
| 428 | def write_config(): |
| 429 | config_file = open(nitrogen_config, 'w') |
| 430 | for monitor in current_wallpaper: |
| 431 | # Indenting the following triple-quoted text inserts leading whitespace in the |
| 432 | # nitrogen config file. However, nitrogen strips leading whitespace before |
| 433 | # processing its config file and the extra whitespace makes this Python script |
| 434 | # more readable. |
| 435 | template = """[xin_{monitor_n}] |
| 436 | file={wallpaper_file} |
| 437 | mode=0 |
| 438 | bgcolor=#000000 |
| 439 | """ |
| 440 | context = { |
| 441 | "monitor_n":monitor[0], |
| 442 | "wallpaper_file":monitor[1] |
| 443 | } |
| 444 | config_file.write(template.format(**context)) |
| 445 | config_file.close() |
| 446 | |
| 447 | def refresh_wallpaper(): |
| 448 | write_config() |
| 449 | call(["/usr/local/bin/nitrogen", "--restore"]) |
| 450 | |
| 451 | def get_rand_from_dir(): |
| 452 | file_choices = [x for x in listdir(source_dir[current_monitor][1]) if isfile(join(source_dir[current_monitor][1], x))] |
| 453 | filename = choice(file_choices) |
| 454 | filename = join(source_dir[current_monitor][1], filename) |
| 455 | current_wallpaper[current_monitor][1] = filename |
| 456 | |
| 457 | # Put something up on all monitors |
| 458 | for i in range(len(source_dir)): |
| 459 | current_monitor = i |
| 460 | get_rand_from_dir() |
| 461 | refresh_wallpaper() |
| 462 | |
| 463 | # Eternal slideshow loop |
| 464 | while 1: |
| 465 | current_monitor = (current_monitor + 1) % len(source_dir) |
| 466 | get_rand_from_dir() |
| 467 | refresh_wallpaper() |
| 468 | sleep(10) |
| 469 | |
| 470 | |
| 471 | # Vim Configuration # |
| 472 | |
| 473 | Create `~/.vimrc` as follows. |
| 474 | |
| 475 | set nocompatible " be iMproved, required |
| 476 | filetype off " required |
| 477 | |
| 478 | set number |
| 479 | syntax on |
| 480 | set tabstop=4 |
| 481 | set expandtab |
| 482 | "set background=dark |
| 483 | "colorscheme solarized |
| 484 | |
| 485 | "Folding |
| 486 | "http://vim.wikia.com/wiki/Folding_for_plain_text_files_based_on_indentation |
| 487 | "set foldmethod=expr |
| 488 | "set foldexpr=(getline(v:lnum)=~'^$')?-1:((indent(v:lnum)<indent(v:lnum+1))?('>'.indent(v:lnum+1)):indent(v:lnum)) |
| 489 | "set foldtext=getline(v:foldstart) |
| 490 | "set fillchars=fold:\ "(there's a space after that \) |
| 491 | "highlight Folded ctermfg=DarkGreen ctermbg=Black |
| 492 | "set foldcolumn=6 |
| 493 | |
| 494 | " Color the 100th column. |
| 495 | set colorcolumn=100 |
| 496 | highlight ColorColumn ctermbg = lightgray |
| 497 | |
| 498 | |
| 499 | # Deluge Configuration # |
| 500 | |
| 501 | Follow instructions at <https://whatbox.ca/wiki/deluge>. Add check boxes in Connection Manager: |
| 502 | |
| 503 | * "Automatically connect to selected host on start-up" |
| 504 | * "Do not show this dialog on start-up". |
| 505 | |
| 506 | |
| 507 | # Personal Software # |
| 508 | |
| 509 | Compile and install `wallproc`. Requires the following dependencies from ports: |
| 510 | |
| 511 | devel/sdl20 |
| 512 | graphics/ImageMagick-nox11 |
| 513 | graphics/sdl2_image |
| 514 | |
| 515 | |
| 516 | # Printer Configuration # |
| 517 | |
| 518 | Create a spool directory: |
| 519 | |
| 520 | mkdir -p /var/spool/lpd/lp |
| 521 | chown daemon:daemon /var/spool/lpd/lp |
| 522 | chmod 770 /var/spool/lpd/lp |
| 523 | |
| 524 | Add an entry to `/etc/printcap`. |
| 525 | |
| 526 | # HP LaserJet, M's Office |
| 527 | lp:\ |
| 528 | :lp=:rm=192.168.1.252:rp=raw:\ |
| 529 | :sh:\ |
| 530 | :mx#0:\ |
| 531 | :sd=/var/spool/lpd/lp:\ |
| 532 | :lf=/var/log/lpd-errs: |
| 533 | |
| 534 | Edit `/etc/rc.conf` to add the line `lpd_enable="YES"`. |
| 535 | |
| 536 | Note that plaintext files print in stairstep. See the link below if I want to |
| 537 | fix this. Consider adding a smart filter to only apply this to text and pass PS |
| 538 | straight through. |
| 539 | |
| 540 | <https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/printing-lpd.html#printing-lpd-filters-stairstep> |
| 541 | |
| 542 | # TODO # |
| 543 | |
| 544 | After reboot: |
| 545 | Setup virtualbox and verify CAD software runs |
| 546 | Firefox: |
| 547 | Menus/tabs/etc use AA fonts but websites don't. Why not? |
| 548 | YES: wiki.archlinux.org |
| 549 | NO: reddit |
| 550 | https://forums.freebsd.org/threads/firefox-no-gpu-acceleration-since-50-0.59089/ |
| 551 | Check Debian & FreeBSD install notes from previous desktop systems |
| 552 | Add lagavulin to tape backup schedule over network. Where to spool? |
| 553 | sysutils/bacula-client |
| 554 | |
| 555 | |
| 556 | # temp notes from ports compiles # |
| 557 | |
| 558 | =================================================================================================================== |
| 559 | |
| 560 | Virtualbox USB Support |
| 561 | USB Support: |
| 562 | ============ |
| 563 | |
| 564 | For USB support your user needs to be in the operator group and needs read |
| 565 | and write permissions to the USB device. |
| 566 | |
| 567 | % pw groupmod operator -m jerry |
| 568 | |
| 569 | Add the following to /etc/devfs.rules (create if it doesn't exist): |
| 570 | |
| 571 | [system=10] |
| 572 | add path 'usb/*' mode 0660 group operator |
| 573 | |
| 574 | To load these new rule add the following to /etc/rc.conf: |
| 575 | |
| 576 | devfs_system_ruleset="system" |
| 577 | |
| 578 | Then restart devfs to load the new rules: |
| 579 | |
| 580 | % /etc/rc.d/devfs restart |
| 581 | |
| 582 | =================================================================================================================== |
| 583 | |
| 584 | FreeBSD USB NOTE: |
| 585 | To allow an ordinary user to acces any of the the hotplug USB interface |
| 586 | add him/her to the operator group (pw groupmod operator -m username), then |
| 587 | setup the devfs subsystem by adding these lines to the following files: |
| 588 | |
| 589 | ***/etc/devfs.rules (FreeBSD >= 8): |
| 590 | [localrules=10] |
| 591 | add path 'ugen*' mode 0660 group operator |
| 592 | add path 'usb/*' mode 0660 group operator |
| 593 | add path 'usb' mode 0770 group operator |
| 594 | |
| 595 | ***/etc/devfs.rules (FreeBSD <= 7): |
| 596 | [localrules=10] |
| 597 | add path 'ugen*' mode 0660 group operator |
| 598 | |
| 599 | ***/etc/rc.conf: |
| 600 | devfs_system_ruleset="localrules" |