diff --git a/content/meta/index.json b/content/meta/index.json index e1add136f..90ba098ae 100644 --- a/content/meta/index.json +++ b/content/meta/index.json @@ -6397,5 +6397,11 @@ ], "path_alias.d7634fde-b0e7-4670-a3a0-9d145e737d4c": [ "node.73dc2ac9-5e4c-4a24-984f-e6d04998323b" + ], + "node.4a206e60-833c-4abd-bcc4-b97d8617f3ee": [ + "user.b8966985-d4b2-42a7-a319-2e94ccfbb849" + ], + "path_alias.46ab1f1e-06fa-41e6-ac2c-ff574166d10c": [ + "node.4a206e60-833c-4abd-bcc4-b97d8617f3ee" ] } \ No newline at end of file diff --git a/content/node.4a206e60-833c-4abd-bcc4-b97d8617f3ee.json b/content/node.4a206e60-833c-4abd-bcc4-b97d8617f3ee.json new file mode 100644 index 000000000..1a839045f --- /dev/null +++ b/content/node.4a206e60-833c-4abd-bcc4-b97d8617f3ee.json @@ -0,0 +1,91 @@ +{ + "uuid": [ + { + "value": "4a206e60-833c-4abd-bcc4-b97d8617f3ee" + } + ], + "langcode": [ + { + "value": "en" + } + ], + "type": [ + { + "target_id": "daily_email", + "target_type": "node_type", + "target_uuid": "8bde1f2f-eef9-4f2d-ae9c-96921f8193d7" + } + ], + "revision_timestamp": [ + { + "value": "2025-06-09T19:58:56+00:00" + } + ], + "revision_uid": [ + { + "target_type": "user", + "target_uuid": "b8966985-d4b2-42a7-a319-2e94ccfbb849" + } + ], + "revision_log": [], + "status": [ + { + "value": true + } + ], + "uid": [ + { + "target_type": "user", + "target_uuid": "b8966985-d4b2-42a7-a319-2e94ccfbb849" + } + ], + "title": [ + { + "value": "tmux is my session manager" + } + ], + "created": [ + { + "value": "2025-06-09T19:42:40+00:00" + } + ], + "changed": [ + { + "value": "2025-06-09T19:58:56+00:00" + } + ], + "promote": [ + { + "value": false + } + ], + "sticky": [ + { + "value": false + } + ], + "default_langcode": [ + { + "value": true + } + ], + "revision_translation_affected": [ + { + "value": true + } + ], + "path": [ + { + "alias": "\/daily\/2025\/06\/09\/tmux-my-session-manager", + "langcode": "en" + } + ], + "body": [ + { + "value": "If you're subscribed to my mailing list, listened to a podcast episode or watched any of my presentations or live streams, you'll probably know that I use a command line-based approach to software development.\r\n\r\nI use NixOS as my operating system, Neovim and tmux for coding, and various other command-line tools as part of my daily workflow.\r\n\r\ntmux is a terminal multiplexer - a tool to run multiple sessions, windows and panes within the same terminal.\r\n\r\nI have one session per project or directory, each with its own windows and panes to run Neovim and other tools to work on that project.\r\n\r\nYouTube and Twitch streamer rwxrob said that tmux was his window manager, based on how he used it to organise his desktop.\r\n\r\ntmux is my session manager.\r\n\r\nAs well as being able to easily switch between codebases, each has it's own startup script that bootstraps the project for me.\r\n\r\nThis is the script for my website:\r\n\r\n```bash\r\nPATH=\"${PATH}:.\/vendor\/bin\"\r\n\r\ntmux new-window -dn scratch\r\ntmux new-window -dn server\r\ntmux new-window -dn tailwindcss -c \"themes\/opdavies\"\r\n\r\ntmux send-keys -t server \"drush runserver\" Enter\r\ntmux send-keys -t tailwindcss \"tailwindcss --input css\/tailwind.css --output build\/tailwind.css --watch\" Enter\r\n\r\nnvim .\r\n```\r\n\r\nIt creates windows for scratch commands, starts a web server with Drush, starts Tailwind CSS to generate any new styles and opens Neovim.\r\n\r\nSome are simpler and some are more complex, but it reduces the friction between switching projects and makes it quick and simple.", + "format": "markdown", + "processed": "
If you're subscribed to my mailing list, listened to a podcast episode or watched any of my presentations or live streams, you'll probably know that I use a command line-based approach to software development.<\/p>\n
I use NixOS as my operating system, Neovim and tmux for coding, and various other command-line tools as part of my daily workflow.<\/p>\n
tmux is a terminal multiplexer - a tool to run multiple sessions, windows and panes within the same terminal.<\/p>\n
I have one session per project or directory, each with its own windows and panes to run Neovim and other tools to work on that project.<\/p>\n
YouTube and Twitch streamer rwxrob said that tmux was his window manager, based on how he used it to organise his desktop.<\/p>\n
tmux is my session manager.<\/p>\n
As well as being able to easily switch between codebases, each has it's own startup script that bootstraps the project for me.<\/p>\n
This is the script for my website:<\/p>\n
tmux new-window -dn scratch tmux send-keys -t server \"drush runserver\" Enter nvim . It creates windows for scratch commands, starts a web server with Drush, starts Tailwind CSS to generate any new styles and opens Neovim.<\/p>\n Some are simpler and some are more complex, but it reduces the friction between switching projects and makes it quick and simple.<\/p>\n",
+ "summary": ""
+ }
+ ]
+}
\ No newline at end of file
diff --git a/content/path_alias.46ab1f1e-06fa-41e6-ac2c-ff574166d10c.json b/content/path_alias.46ab1f1e-06fa-41e6-ac2c-ff574166d10c.json
new file mode 100644
index 000000000..64c505c24
--- /dev/null
+++ b/content/path_alias.46ab1f1e-06fa-41e6-ac2c-ff574166d10c.json
@@ -0,0 +1,27 @@
+{
+ "uuid": [
+ {
+ "value": "46ab1f1e-06fa-41e6-ac2c-ff574166d10c"
+ }
+ ],
+ "langcode": [
+ {
+ "value": "en"
+ }
+ ],
+ "path": [
+ {
+ "value": "\/node\/4a206e60-833c-4abd-bcc4-b97d8617f3ee"
+ }
+ ],
+ "alias": [
+ {
+ "value": "\/daily\/2025\/06\/09\/tmux-my-session-manager"
+ }
+ ],
+ "status": [
+ {
+ "value": true
+ }
+ ]
+}
\ No newline at end of file
PATH=\"${PATH}:.\/vendor\/bin\"<\/p>\n
\ntmux new-window -dn server
\ntmux new-window -dn tailwindcss -c \"themes\/opdavies\"<\/p>\n
\ntmux send-keys -t tailwindcss \"tailwindcss --input css\/tailwind.css --output build\/tailwind.css --watch\" Enter<\/p>\n
\n<\/code><\/p>\n