{"id":25158165,"url":"https://github.com/agjs/ubuntu-fresh-setup","last_synced_at":"2026-01-12T07:28:14.548Z","repository":{"id":187770155,"uuid":"677539332","full_name":"agjs/Ubuntu-Fresh-Setup","owner":"agjs","description":"A set of notes when setting up a new Linux machine","archived":false,"fork":false,"pushed_at":"2023-08-11T21:56:16.000Z","size":4,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-03T12:51:26.597Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"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/agjs.png","metadata":{"files":{"readme":"README.md","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}},"created_at":"2023-08-11T20:59:28.000Z","updated_at":"2024-01-11T15:36:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"733e49a5-b56d-4056-b563-df4002c68013","html_url":"https://github.com/agjs/Ubuntu-Fresh-Setup","commit_stats":null,"previous_names":["agjs/ubuntu-fresh-setup"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/agjs/Ubuntu-Fresh-Setup","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agjs%2FUbuntu-Fresh-Setup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agjs%2FUbuntu-Fresh-Setup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agjs%2FUbuntu-Fresh-Setup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agjs%2FUbuntu-Fresh-Setup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/agjs","download_url":"https://codeload.github.com/agjs/Ubuntu-Fresh-Setup/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agjs%2FUbuntu-Fresh-Setup/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28336513,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T06:09:07.588Z","status":"ssl_error","status_checked_at":"2026-01-12T06:05:18.301Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2025-02-09T01:49:16.917Z","updated_at":"2026-01-12T07:28:14.533Z","avatar_url":"https://github.com/agjs.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Setup\n\n**General**\n\n- Use proprietary (tested) GPU driver.\n- sudo apt upgrade\n\n**Install Jet Brains Font**\n\n- [Download the Font](https://www.jetbrains.com/lp/mono/)\n- Extract the zip to `~/Downloads`\n\n```bash\n# JetBrainsMono-2.304 the version might differ in the future\n\nmkdir -p ~/.local/share/fonts\ncd ~/Downloads/JetBrainsMono-2.304/fonts/ttf\ncp *.ttf  ~/.local/share/fonts/\nfc-cache -fv\n```\n\n## Install\n\n**Using Snap**\n\n- OBS Studio\n- VSCode\n- Cameractrls\n- Tilix\n\n**Other**\n\n- [zsh and oh my zsh](https://ohmyz.sh/)\n\n```bash\n# Install zsh\nsudo apt install zsh\n\n# Install oh my zsh\nhttps://ohmyz.sh/#install\n```\n\n- [Git](https://git-scm.com/download/linux)\n\n```bash\n\n\ngit config --global user.name \"Aleksandar\"\ngit config --global user.email \"hi@programmer.network\"\n\n# Generate SSH Key\nssh-keygen -t rsa -b 4096\nchmod 600 ~/.ssh/id_rsa\n\n# Install xclip\nsudo apt-get install xclip\n\n# Copy the public key\nxclip -sel clip \u003c ~/.ssh/id_rsa.pub\n\n# Add the SSH Key to Github\n# https://github.com/settings/keys\n```\n\n- [nvm](https://github.com/nvm-sh/nvm#installing-and-updating)\n- [Docker](https://docs.docker.com/engine/install/ubuntu/#set-up-the-repository)\n\nSetup Postgres and Redis\n\n```bash\n# Redis\nsudo docker run --name redis-container -d -p 6379:6379 --restart=always redis:latest\n```\n\n```bash\n# Postgres\nsudo docker run --name postgres-container -e POSTGRES_PASSWORD=password -d -p 5432:5432 --restart=always postgres:latest\n\n# Add the user to the docker group to run Docker commands without sudo:\nsudo usermod -aG docker $USER\n\n# Setup Postgres User \u0026 Development Database\n\ndocker exec -it postgres-container psql -U postgres\n\nCREATE USER developer WITH PASSWORD 'postgrespw';\nALTER USER developer WITH SUPERUSER;\nCREATE DATABASE development OWNER developer;\n```\n\n## Tilix (Terminal)\n\nWith Tilix, just like with other Terminal applications I'm using on Windows (Windows Terminal) and my Macbook Pro (iTerm 2), we want to configure two things, quake mode and a default directory that opens when a new session is created.\n\n### Using Quake Mode via Shortcut in Tilix\n\nTo configure a shortcut for Quake Mode in Tilix, we need to set up a custom shortcut key combination in our system settings, since Tilix itself does not have an internal configuration for this. Here's a general guide:\n\n- Open Tilix Preferences.\n- Go to the \"Quake\" tab.\n- Configure your Quake window preferences, such as height, width, position, etc.\n\nNext, we'll need to set up a system-wide shortcut to invoke Tilix in Quake mode:\nFor GNOME (common in many Ubuntu installations):\n\n- Open \"Settings.\"\n- Navigate to \"Keyboard Shortcuts.\"\n- Scroll down and click the \"+\" button to add a custom shortcut.\n- Name it \"Tilix Quake Mode\" or something similar.\n- In the \"Command\" field, enter tilix --quake.\n- Click \"Set Shortcut\" and press the key combination you want to use.\n- Click \"Add.\"\n\nNow, whenever we press the key combination you set, Tilix should appear in Quake mode.\n\n### Fix paste shortcut\n\nTilix paste command by default is set to _CTRL + SHIFT + V_. Remember to update it to _CTRL + V_.\n\n### Open \"code\" folder on each new session\n\nWe can configure Tilix to always start in a specific directory (such as our code folder) for each new session.\n\n- Open Tilix.\n- Right-click on the terminal window and go to \"Profiles\".\n- Choose the profile you want to edit, or the default one if you haven't created any custom profiles.\n- Click \"Edit Profile\".\n- In the \"Command\" tab, find the \"Run custom command instead of my shell\" option.\n- Check the box and enter the command you want to run. If you're using bash or Zsh, you might use something like:\n\n```bash\nbash --init-file \u003c(echo \"cd ~/path/to/your/code/folder\")\n```\n\nor with Zsh:\n\n```bash\nzsh -c 'cd ~/path/to/your/code/folder; exec zsh'\n```\n\nClose the preferences window. Done.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagjs%2Fubuntu-fresh-setup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fagjs%2Fubuntu-fresh-setup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagjs%2Fubuntu-fresh-setup/lists"}