{"id":16288032,"url":"https://github.com/jdelic/saltshaker-laptop","last_synced_at":"2026-05-11T07:22:58.703Z","repository":{"id":151274471,"uuid":"413210466","full_name":"jdelic/saltshaker-laptop","owner":"jdelic","description":"XPS13 9310 Debian Bookworm Saltshaker. This is based on a minimal Debian netinst textmode install and is what I run on my laptop.","archived":false,"fork":false,"pushed_at":"2025-04-07T10:08:33.000Z","size":244,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-07T11:23:56.373Z","etag":null,"topics":["debian","saltstack","xps13","xps13-9310"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jdelic.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-10-03T22:22:59.000Z","updated_at":"2025-04-07T10:08:37.000Z","dependencies_parsed_at":"2024-05-30T12:04:12.085Z","dependency_job_id":"c495fa01-950d-4eff-a8cb-78e94f0693f2","html_url":"https://github.com/jdelic/saltshaker-laptop","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdelic%2Fsaltshaker-laptop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdelic%2Fsaltshaker-laptop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdelic%2Fsaltshaker-laptop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdelic%2Fsaltshaker-laptop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jdelic","download_url":"https://codeload.github.com/jdelic/saltshaker-laptop/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247994122,"owners_count":21030049,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["debian","saltstack","xps13","xps13-9310"],"created_at":"2024-10-10T19:47:06.059Z","updated_at":"2026-05-11T07:22:58.696Z","avatar_url":"https://github.com/jdelic.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"My laptop config\n================\n\nThis is supposed to run from a local salt-minion install, using ``salt-call``\nin a masterless setup. Based on a clean Debian Bookworm netinst installation,\nI'm using this to provision my work setup on a Dell XPS13 and my home PC. I\nam currently running this on a 9310 model, unfortunately the newer XPSs are\nterrible, and my custom-built Ryzen 9.\n\nAmong other things, this config will install:\n\n* Gnome\n* Most important apps:\n\n  - Firefox\n  - Thunderbird\n  - Spotify\n  - Slack\n  - `Albert (my favorite launcher) \u003calbert_\u003e`__,\n  - Enpass\n  - Yubikey support\n  - usbguard and usbguard-notifier\n\n* Most important Firefox extensions (use ``about:debugging`` to find their IDs\n  if you want to add more):\n\n  - uBlock,\n  - uMatrix,\n  - Enpass,\n  - German dictionary,\n  - Multi-account containers\n  - GDPR Content-O-Matic\n\n* Enforces Firefox sanitization on closing the browser and other settings.\n\n* Some other available applications include:\n\n  - Discord\n  - OBS\n  - Airtame\n  - `Starship prompt \u003cstarship_\u003e`__\n  - Steam\n  - Inkscape\n  - IntelliJ IDEA Ultimate\n  - VSCode\n  - Zoom\n  - Xerox printer drivers\n  - GIMP\n  - VLC\n  - Logitech camera controls for Brio webcams\n\n\nGetting to Debian\n-----------------\n\nDownload the `Debian Installer ISO \u003cinstiso_\u003e`__. Then install the minimal\nsystem. I like using the text mode installer and I partition like this:\n\n* 512MB EFI\n* 2048MB EXT4 /boot\n* Remainder is dm-crypt encrypted volume with LVM (start by configuring the\n  encrypted partition in the text mode installer, then add LVM and a volume\n  group ``vg0``)\n\n  - 90GB EXT4 vg0-root /root\n  - 16GB SWAP vg0-swap ---\n  - 256GB EXT4 vg0-home /home\n\nAfter booting into the minimal system under Trixie, your wifi may have been\nconfigured in ``/etc/network/interfaces``. Gnome will later use NetworkManager,\nwhich will not manage network adapters listed in ``/etc/network/interfaces``.\n\nEspecially with Wifi-7 devices you still need to manually bring them up, as the\ninstaller fails at it (at least on my Gigabyte x870e). So that's where it's\nuseful to have a full installation ISO and use nmcli to connect to wifi after\nbooting into the base system.\n\n.. code-block:: shell\n\n    apt install --no-install-recommends ca-certificates wget git\n    git clone https://github.com/jdelic/saltshaker-laptop\n    cd saltshaker-laptop\n    ./configure.sh\n\n    # remove static interface config so NetworkManager can take over, if necessary\n    vi /etc/network/interfaces\n\n\nImportant Gnome Extensions\n--------------------------\n\nThese are installed automatically by this salt config, but I find them\nuseful and you should know. You can install them from ``Extension Manager``:\n\n* `Frippery Move Clock \u003cfrippery_\u003e`__ (moves the clock to the right where it \n  belongs)\n* `V-Shell Vertical Workspaces \u003cvertical_\u003e`__ (because vertically stacked\n  virtual desktops are much more sensible)\n* `AppIndicator and KStatusNotifier Support \u003ctrayicons_\u003e`__: no idea why Gnome\n  tries to remove tray icons... so much software still uses them)\n* `No Overview At Start-up \u003cnooverview_\u003e`__ (with Albert as launcher the\n  default is just annoying)\n* `Better onscreen keyboard (GJS OSK) \u003cgjsosk_\u003e`__: Just an improved keyboard\n  that's very useful for touchscreens or when you locked out your USB keyboard.\n* `Tactile tiling \u003ctactile_\u003e`__: Gives keyboard shortcuts for tiling windows.\n  Useful until niri or Hyprland make their way to Debian.\n\n\nImportant Gnome Settings changed by this config\n-----------------------------------------------\n\nThis config installs a autostart script that changes the following Gnome\nsettings:\n\n1. Add keyboard shortcut for Albert to launch ``albert toggle`` on ``META+X``.\n2. Change \"Navigation\"-\u003e\"Switch Applications\" to \"disabled\" and \"Switch\n   Windows\" to \"Alt+Tab\"\n3. On Gnome Tweaks set the clock to show calendar weeks and the date\n4. Configure the Gnome extensions, setting the keyboard shortcuts for vertical\n   desktops and configuring the tray icons size and position\n5. **Disable Gnome USB protection** in favor of usbguard and usbguard-notifier,\n   changing the Kernel boot to disallow USB devices and adding udev rules for\n   devices needed for boot (like the keyboard to unlock LUKS drives).\n\n\nWhich Albert Plugins to Enable?\n-------------------------------\n\nI commonly use\n\n* Applications\n* Calculator\n* Python\n* System\n\n  - I rename \"Poweroff\" to \"Shutdown\"\n\n* Terminal\n\n\nChanges to be made to the system after ./configure.sh is complete\n-----------------------------------------------------------------\n\nThese are changes that this salt configuration currently can't do for you. Here\nis my personal \"post-install todo list\":\n\n1. Zoom: Change ``enableMiniWindow`` to ``false`` in ``~/.config/zoomus.conf``.\n2. Firefox: Enable the built-in dark theme in Firefox\n3. Firefox: Enable ``devtools.netmonitor.persistlog`` in ``about:config``\n4. Firefox: Import uMatrix config\n5. Firefox: Remove spacers from Firefox toolbar config\n6. Firefox: Enable extensions to run in private mode (this can't be automated)\n7. Create Enpass service account and login\n8. Activate IntelliJ IDEA, Slack, and Spotify\n9. Projects: Install `ollama \u003collama_\u003e`__\n\n\nWindows VM notes\n----------------\n\nInstalling a Windows 10 or 11 VM with TPM:\n\n.. code-block::\n\n   virt-install -n \"win-vm\" \\\n       --memory=16384 --cpu=host -vcpus=6 --pm=\"suspend_to_mem=on,suspend_to_disk=on\" \\\n       --disk=\"path=/dev/gen5/win-payoneer,device=disk,bus=virtio\" \\\n       -c /tmp/win10_2023H2.iso --disk=\"path=/tmp/virtio-win.iso,device=cdrom\" \\\n       --features kvm_hidden=on,smm=on \\\n       --tpm backend.type=emulator,backend.version=2.0,model=tpm-tis \\\n       --boot loader=/usr/share/OVMF/OVMF_CODE_4M.secboot.fd,loader_ro=yes,loader_type=pflash,nvram_template=/usr/share/OVMF/OVMF_VARS_4M.ms.fd,loader_secure=yes \\\n       --graphics=spice \\\n       --video model.type=xml,model.vram=65536,model.vgamem=65536\n\n\nMake sure to install the *latest* of these:\n\n* `SPICE client for Windows VMs \u003cspice_\u003e`__\n* `VirtIO drivers for Windows VMs \u003cvirtio_\u003e`__\n\n\n.. _instiso: https://www.debian.org/CD/http-ftp/\n.. _starship: https://starship.rs\n.. _albert: https://github.com/albertlauncher/albert\n.. _frippery: https://extensions.gnome.org/extension/2/move-clock/\n.. _vertical: https://extensions.gnome.org/extension/5177/vertical-workspaces/\n.. _nooverview: https://extensions.gnome.org/extension/4099/no-overview/\n.. _trayicons: https://extensions.gnome.org/extension/615/appindicator-support/\n.. _gjsosk: https://extensions.gnome.org/extension/5949/gjs-osk/\n.. _ollama: https://ollama.com/download\n.. _spice: https://www.spice-space.org/download.html\n.. _virtio: https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/\n.. # vim: wrap textwidth=80\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjdelic%2Fsaltshaker-laptop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjdelic%2Fsaltshaker-laptop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjdelic%2Fsaltshaker-laptop/lists"}