talks/working-without-workspace/sections/operating-system.rst
2023-05-06 12:24:30 +01:00

139 lines
2.9 KiB
ReStructuredText
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

.. raw:: pdf
PageBreak standardPage
Operating system
================
**Personal**:
- Linux
- NixOS
- KDE Plasma
|
**Work**:
- Windows 10
- WSL (Ubuntu)
- Nix package manager
.. raw:: pdf
TextAnnotation "Started with Ubuntu for work, used Pop!_OS for personal laptops and now on NixOS."
TextAnnotation "Used to use Apple/macOS and switched full-time to Linux a few years ago.used Homebrew for package management."
TextAnnotation "Automated things with Ansible."
TextAnnotation ""
TextAnnotation "Use Windows for Office, Teams, etc. Development is done within the WSL/Linux environment."
Nix and NixOS
=============
- Declarative
- Reproducable
- Nix Packages collection (``nixpkgs``) has over 80,000 packages
- Easy to add to and edit, and contribute to
.. raw:: pdf
TextAnnotation "Nix builds packages in isolation from each other. This ensures that they are reproducible and don't have undeclared dependencies, so if a package works on one machine, it will also work on another."
TextAnnotation "Nix makes it trivial to share development and build environments for your projects, regardless of what programming languages and tools youre using. "
TextAnnotation "80,000 packages including Vim and tmux plugins, PHP and node packages"
TextAnnotation "Configuration file-driven. You declare the end state rather than the steps to get there."
TextAnnotation "Replaced Ansible for me."
.. raw:: pdf
PageBreak titlePage
.. class:: centredtitle
``nix-env -iA php82``
.. raw:: pdf
PageBreak
.. class:: centredtitle
``nix-shell --packages php82``
.. raw:: pdf
PageBreak
.. class:: centredtitle
``nix-shell --packages php82
--command "php -v"``
.. raw:: pdf
PageBreak standardPage
configuration.nix
=================
.. code-block:: nix
:include: code/configuration.nix
:linenos:
hardware-configuration.nix
==========================
.. code-block:: nix
:include: code/hardware-configuration.nix
:linenos:
.. raw:: pdf
PageBreak titlePage
.. class:: centredtitle
``sudo nixos-rebuild build
--flake .#nixedo``
.. raw:: pdf
PageBreak standardPage
dotfiles
========
* System configuration files
* Usually hidden, filenames start with a dot (``.zshrc``, ``.gitconfig``, ``.config/``)
* Maintained on GitHub since July 2015
* https://opdavi.es/dotfiles
* Managed with Home Manager
.. raw:: pdf
TextAnnotation "Similar to hidden files within projects like .gitignore."
TextAnnotation "Manages user configuration instead of system configuration."
TextAnnotation ""
TextAnnotation "Used with NixOS and the Nix package manager in WSL."
home-manager/home.nix
=====================
.. code-block:: nix
:include: code/home-manager.nix
:linenos:
.. raw:: pdf
PageBreak titlePage
.. class:: centredtitle
``home-manager build
-f home-manager/home.nix
--flake .#wsl2``
.. raw:: pdf
PageBreak standardPage