Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .vscodeignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,11 @@
src/**
!src/tmux-proxy.py
node_modules/**
test/**
.git/**
.gitignore
eslint.config.js
tsconfig.json
**/*.ts
**/*.map
*.vsix
17 changes: 14 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,15 @@ A lightweight Python proxy bridges VS Code's terminal and tmux's **control mode*
`terminal.integrated.defaultProfile.linux` to `Persistent Terminal (tmux)`.
Every new terminal will then be tmux-backed automatically.

- **Your normal remote shell is preserved**: Persisterm uses the remote
account's `$SHELL` (falling back to its passwd login shell) instead of
hardcoding Bash. Bash login profiles, Zsh's `.zshenv`/`.zprofile`/`.zshrc`/
`.zlogin`, and Fish's login configuration run in their normal order, while a
prompt hook refreshes VS Code integration variables. If a Bash profile sets
`PROMPT_COMMAND`, it should append to (rather than replace) the inherited
value. Existing panes keep the shell they were created with; open a new
terminal after changing `$SHELL` or upgrading from an older version.

- **Multiple workspaces on one host**: set a unique `persisterm.sessionPrefix`
per workspace (e.g. `proj-a`, `proj-b`) to avoid cross-talk.

Expand All @@ -86,9 +95,11 @@ A lightweight Python proxy bridges VS Code's terminal and tmux's **control mode*
```bash
cd persisterm
npm install
npm run compile # one-shot build
npm run watch # incremental rebuild
npm run package # produces a .vsix
npm run compile # one-shot build
npm run watch # incremental rebuild
npm test # shell startup + tmux integration tests
npm run lint # TypeScript ESLint checks
npm run package # produces a .vsix
```

## License
Expand Down
25 changes: 25 additions & 0 deletions eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
const tseslint = require("@typescript-eslint/eslint-plugin");
const tsParser = require("@typescript-eslint/parser");

module.exports = [
{
files: ["src/**/*.ts"],
languageOptions: {
parser: tsParser,
parserOptions: {
ecmaVersion: "latest",
sourceType: "module",
},
},
plugins: {
"@typescript-eslint": tseslint,
},
rules: {
...tseslint.configs.recommended.rules,
"@typescript-eslint/no-unused-vars": [
"error",
{ argsIgnorePattern: "^_" },
],
},
},
];
Loading