From 7ca19d291c474b5de5ef1bef0f8c38237182bf62 Mon Sep 17 00:00:00 2001 From: Uttarayan Mondal Date: Tue, 27 Feb 2024 20:55:09 +0530 Subject: [PATCH] [feat] Add stuff --- config/nix/Makefile | 2 + config/nix/common/home.nix | 39 ++++- config/nix/common/nvim.nix | 46 ++++++ config/nix/common/wezterm.nix | 65 ++++---- config/nix/flake.lock | 267 ++++++++++++++++++++++++++++++-- config/nix/flake.nix | 41 ++++- config/nvim/lua/colorscheme.lua | 17 +- config/nvim/lua/plugins.lua | 23 ++- config/tmux/sessions/default | 13 +- 9 files changed, 446 insertions(+), 67 deletions(-) create mode 100644 config/nix/common/nvim.nix diff --git a/config/nix/Makefile b/config/nix/Makefile index 69cdcd22..9021a41c 100644 --- a/config/nix/Makefile +++ b/config/nix/Makefile @@ -4,6 +4,8 @@ default: nixos darwin: nix run nix-darwin -- switch --flake . --show-trace +build_darwin: + nix run nix-darwin -- build --flake . home: nix --extra-experimental-features "nix-command flakes" run home-manager/master -- switch --flake . diff --git a/config/nix/common/home.nix b/config/nix/common/home.nix index 36902eee..48df90a8 100644 --- a/config/nix/common/home.nix +++ b/config/nix/common/home.nix @@ -7,10 +7,15 @@ in { # Include the results of the hardware scan. ./tmux.nix ./wezterm.nix + ./nvim.nix + ] ++ (if device.isLinux then [ ../linux ] else [ ]); home.packages = with pkgs; [ + ngrok + gh + yarn just jq tldr @@ -32,6 +37,7 @@ in { clang neovim-nightly nil + pkg-config # neovim (nerdfonts.override { fonts = [ "Hasklig" ]; }) mpv @@ -64,7 +70,7 @@ in { ''; }) ] else - [ ]); + [ ]) ++ (if device.isMac then [ ] else [ ]); # xdg.enable = true; @@ -114,6 +120,17 @@ in { enable = true; enableFishIntegration = true; enableNushellIntegration = true; + settings = let flavour = "mocha"; # Replace with your preferred palette + in { + # Other config here + format = "$all"; # Remove this line to disable the default prompt format + palette = "catppuccin_${flavour}"; + } // builtins.fromTOML (builtins.readFile (pkgs.fetchFromGitHub { + owner = "catppuccin"; + repo = "starship"; + rev = "main"; # Replace with the latest commit hash + sha256 = "sha256-nsRuxQFKbQkyEI4TXgvAjcroVdG+heKX5Pauq/4Ota0"; + } + /palettes/${flavour}.toml)); }; eza = { enable = true; @@ -137,6 +154,22 @@ in { enableFishIntegration = true; enableNushellIntegration = true; }; + bat = { + enable = true; + config = { theme = "catppuccin"; }; + themes = { + catppuccin = let flavor = "mocha"; + in { + src = pkgs.fetchFromGitHub { + owner = "catppuccin"; + repo = "bat"; + rev = "main"; + sha256 = "sha256-6WVKQErGdaqb++oaXnY3i6/GuH2FhTgK0v4TN4Y0Wbw"; + }; + file = "Catppuccin-${flavor}.tmTheme"; + }; + }; + }; # Let Home Manager install and manage itself. home-manager = { enable = true; }; @@ -156,8 +189,8 @@ in { file = { ".config/tmux/sessions".source = ../../tmux/sessions; - ".config/nvim/lua".source = ../../nvim/lua; - ".config/nvim/init.lua".source = ../../nvim/init.lua; + # ".config/nvim/lua".source = ../../nvim/lua; + # ".config/nvim/init.lua".source = ../../nvim/init.lua; ".config/macchina".source = ../../macchina; # # You can also set the file content immediately. diff --git a/config/nix/common/nvim.nix b/config/nix/common/nvim.nix new file mode 100644 index 00000000..a2e008f3 --- /dev/null +++ b/config/nix/common/nvim.nix @@ -0,0 +1,46 @@ +{ pkgs, inputs, ... }: { + imports = [ inputs.nixneovim.nixosModules.default ]; + programs.nixneovim = { + enable = true; + extraConfigLua = '' + vim.opt.foldexpr = "v:lua.vim.treesitter.foldexpr()" + vim.opt.foldtext = "v:lua.vim.treesitter.foldtext()" + ''; + options = { + number = true; + relativenumberr = true; + }; + plugins = { + lspconfig = { + enable = true; + servers = { + rust-analyzer.enable = true; + nil.enable = true; + }; + }; + treesitter = { + enable = true; + indent = true; + }; + }; + colorschemes = { + catppuccin = { + enable = true; + flavour = "mocha"; + }; + }; + mappings = { + normal = { + "ff" = "require'telescope.builtin'.find_files()"; + "gg" = "require'telescope.builtin'.live_grep()"; + ";" = "require'telescope.builtin'.buffers()"; + "" = ""; + "vff" = "vertical Gdiffsplit"; + "" = "vim.lsp.buf.definition()"; + "gi" = "vim.lsp.buf.implementation()"; + "a" = "vim.lsp.buf.code_action()"; + "F" = "vim.lsp.buf.format( async = true )"; + }; + }; + }; +} diff --git a/config/nix/common/wezterm.nix b/config/nix/common/wezterm.nix index fdeb06ad..219855a5 100644 --- a/config/nix/common/wezterm.nix +++ b/config/nix/common/wezterm.nix @@ -10,39 +10,40 @@ -- "Symbols Nerd Font Mono" -- }), + color_scheme = "Catppuccin Mocha", font_size = 16, - colors = { - -- The default text color - foreground = "#f8f8f2", - -- The default background color - -- background = "#282a36", - -- Overrides the cell background color when the current cell is occupied by the - -- cursor and the cursor style is set to Block - cursor_bg = "#f8f8f2", - -- Overrides the text color when the current cell is occupied by the cursor - cursor_fg = "#000", - -- Specifies the border color of the cursor when the cursor style is set to Block, - -- or the color of the vertical or horizontal bar when the cursor style is set to - -- Bar or Underline. - cursor_border = "#52ad70", - -- the foreground color of selected text - selection_fg = "#ffffff", - -- the background color of selected text - selection_bg = "#ffffff", - -- The color of the scrollbar "thumb"; the portion that represents the current viewport - scrollbar_thumb = "#222222", - -- The color of the split lines between panes - split = "#444444", - ansi = { "#21222c", "#ff5555", "#50fa7b", "#f1fa8c", "#bd93f9", "#ff79c6", "#8be9fd", "#f8f8f2" }, - brights = { "#6272a4", "#ff6e6e", "#69ff94", "#ffffa5", "#d6acff", "#ff92df", "#a4ffff", "#ffffff" }, - -- Arbitrary colors of the palette in the range from 16 to 255 - indexed = { [136] = "#af8700" }, - -- Since: nightly builds only - -- When the IME, a dead key or a leader key are being processed and are effectively - -- holding input pending the result of input composition, change the cursor - -- to this color to give a visual cue about the compose state. - compose_cursor = "orange", - }, +-- colors = { +-- -- The default text color +-- foreground = "#f8f8f2", +-- -- The default background color +-- -- background = "#282a36", +-- -- Overrides the cell background color when the current cell is occupied by the +-- -- cursor and the cursor style is set to Block +-- cursor_bg = "#f8f8f2", +-- -- Overrides the text color when the current cell is occupied by the cursor +-- cursor_fg = "#000", +-- -- Specifies the border color of the cursor when the cursor style is set to Block, +-- -- or the color of the vertical or horizontal bar when the cursor style is set to +-- -- Bar or Underline. +-- cursor_border = "#52ad70", +-- -- the foreground color of selected text +-- selection_fg = "#ffffff", +-- -- the background color of selected text +-- selection_bg = "#ffffff", +-- -- The color of the scrollbar "thumb"; the portion that represents the current viewport +-- scrollbar_thumb = "#222222", +-- -- The color of the split lines between panes +-- split = "#444444", +-- ansi = { "#21222c", "#ff5555", "#50fa7b", "#f1fa8c", "#bd93f9", "#ff79c6", "#8be9fd", "#f8f8f2" }, +-- brights = { "#6272a4", "#ff6e6e", "#69ff94", "#ffffa5", "#d6acff", "#ff92df", "#a4ffff", "#ffffff" }, +-- -- Arbitrary colors of the palette in the range from 16 to 255 +-- indexed = { [136] = "#af8700" }, +-- -- Since: nightly builds only +-- -- When the IME, a dead key or a leader key are being processed and are effectively +-- -- holding input pending the result of input composition, change the cursor +-- -- to this color to give a visual cue about the compose state. +-- compose_cursor = "orange", +-- }, initial_cols = 120, hide_tab_bar_if_only_one_tab = true, window_background_opacity = 0.8, diff --git a/config/nix/flake.lock b/config/nix/flake.lock index bd0662ff..dc6e161f 100644 --- a/config/nix/flake.lock +++ b/config/nix/flake.lock @@ -377,6 +377,24 @@ "type": "github" } }, + "flake-utils_7": { + "inputs": { + "systems": "systems_7" + }, + "locked": { + "lastModified": 1705309234, + "narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "gitignore": { "inputs": { "nixpkgs": [ @@ -399,6 +417,25 @@ "type": "github" } }, + "haumea": { + "inputs": { + "nixpkgs": "nixpkgs_4" + }, + "locked": { + "lastModified": 1685133229, + "narHash": "sha256-FePm/Gi9PBSNwiDFq3N+DWdfxFq0UKsVVTJS3cQPn94=", + "owner": "nix-community", + "repo": "haumea", + "rev": "34dd58385092a23018748b50f9b23de6266dffc2", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "v0.2.2", + "repo": "haumea", + "type": "github" + } + }, "hercules-ci-effects": { "inputs": { "flake-parts": "flake-parts_5", @@ -428,11 +465,32 @@ ] }, "locked": { - "lastModified": 1708294481, - "narHash": "sha256-DZtxmeb4OR7iCaKUUuq05ADV2rX8WReZEF7Tq//W0+Y=", + "lastModified": 1708988456, + "narHash": "sha256-RCz7Xe64tN2zgWk+MVHkzg224znwqknJ1RnB7rVqUWw=", "owner": "nix-community", "repo": "home-manager", - "rev": "a54e05bc12d88ff2df941d0dc1183cb5235fa438", + "rev": "1d085ea4444d26aa52297758b333b449b2aa6fca", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "home-manager_2": { + "inputs": { + "nixpkgs": [ + "nixneovim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1708806879, + "narHash": "sha256-MSbxtF3RThI8ANs/G4o1zIqF5/XlShHvwjl9Ws0QAbI=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "4ee704cb13a5a7645436f400b9acc89a67b9c08a", "type": "github" }, "original": { @@ -451,11 +509,11 @@ "rust-overlay": "rust-overlay_3" }, "locked": { - "lastModified": 1708355784, - "narHash": "sha256-Pf95nr82DUDSVnUpzRERtnopjiLC7Zi7QuKtJtoc+XE=", + "lastModified": 1708987072, + "narHash": "sha256-FVoalv8tlPldD6+6yyGFtiuao+YdEH1KbUPUmsEgUVc=", "owner": "JakeStanger", "repo": "ironbar", - "rev": "18e8244580ccffc3eee086becb62800fc6854c61", + "rev": "d29d4fde8c09c25141ff0cebe994d3ce771b658e", "type": "github" }, "original": { @@ -564,11 +622,11 @@ ] }, "locked": { - "lastModified": 1708231718, - "narHash": "sha256-IZdieFWvhBkxoOFMDejqLUYqD94WN6k0YSpw0DFy+4g=", + "lastModified": 1709001452, + "narHash": "sha256-FnZ54wkil54hKvr1irdKic1TE27lHQI9dKQmOJRrtlU=", "owner": "LnL7", "repo": "nix-darwin", - "rev": "0e6857fa1d632637488666c08e7b02c08e3178f8", + "rev": "6c06334f0843c7300d1678726bb607ce526f6b36", "type": "github" }, "original": { @@ -577,6 +635,97 @@ "type": "github" } }, + "nix-flake-tests": { + "locked": { + "lastModified": 1677844186, + "narHash": "sha256-ErJZ/Gs1rxh561CJeWP5bohA2IcTq1rDneu1WT6CVII=", + "owner": "antifuchs", + "repo": "nix-flake-tests", + "rev": "bbd9216bd0f6495bb961a8eb8392b7ef55c67afb", + "type": "github" + }, + "original": { + "owner": "antifuchs", + "repo": "nix-flake-tests", + "type": "github" + } + }, + "nix-github-actions": { + "inputs": { + "nixpkgs": [ + "nixneovim", + "nixneovimplugins", + "poetry2nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1688870561, + "narHash": "sha256-4UYkifnPEw1nAzqqPOTL2MvWtm3sNGw1UTYTalkTcGY=", + "owner": "nix-community", + "repo": "nix-github-actions", + "rev": "165b1650b753316aa7f1787f3005a8d2da0f5301", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-github-actions", + "type": "github" + } + }, + "nixneovim": { + "inputs": { + "flake-utils": "flake-utils_7", + "haumea": "haumea", + "home-manager": "home-manager_2", + "nix-flake-tests": "nix-flake-tests", + "nixneovimplugins": "nixneovimplugins", + "nixpkgs": [ + "nixpkgs" + ], + "nmd": "nmd", + "nmt": "nmt" + }, + "locked": { + "lastModified": 1708966912, + "narHash": "sha256-Ee92D/hOgJX2mGHxYEB50zu6OoqVFN4chTxxpAYj57c=", + "owner": "nixneovim", + "repo": "nixneovim", + "rev": "81f257a375aa66d0ae8cd2ac1c3215b42b20786e", + "type": "github" + }, + "original": { + "owner": "nixneovim", + "repo": "nixneovim", + "type": "github" + } + }, + "nixneovimplugins": { + "inputs": { + "flake-utils": [ + "nixneovim", + "flake-utils" + ], + "nixpkgs": [ + "nixneovim", + "nixpkgs" + ], + "poetry2nix": "poetry2nix" + }, + "locked": { + "lastModified": 1708870615, + "narHash": "sha256-9GeZzoT8kxJY3OkpeOo/eJ4bqwaQTGggv3fR/5UdIkY=", + "owner": "nixneovim", + "repo": "nixneovimplugins", + "rev": "eb98507f0309ddb74d81367838e742d47e9e456f", + "type": "github" + }, + "original": { + "owner": "nixneovim", + "repo": "nixneovimplugins", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1706487304, @@ -659,11 +808,26 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1708296515, - "narHash": "sha256-FyF489fYNAUy7b6dkYV6rGPyzp+4tThhr80KNAaF/yY=", + "lastModified": 1681001314, + "narHash": "sha256-5sDnCLdrKZqxLPK4KA8+f4A3YKO/u6ElpMILvX0g72c=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "367c0e1086a4eb4502b24d872cea2c7acdd557f4", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, + "nixpkgs_5": { + "locked": { + "lastModified": 1708807242, + "narHash": "sha256-sRTRkhMD4delO/hPxxi+XwLqPn8BuUq6nnj4JqLwOu0=", "owner": "nixos", "repo": "nixpkgs", - "rev": "b98a4e1746acceb92c509bc496ef3d0e5ad8d4aa", + "rev": "73de017ef2d18a04ac4bfd0c02650007ccb31c2a", "type": "github" }, "original": { @@ -673,6 +837,67 @@ "type": "github" } }, + "nmd": { + "flake": false, + "locked": { + "lastModified": 1672949361, + "narHash": "sha256-WWg1kbilAb3sA+RoJtSYfAZvyYu1Nk79ocHaerwbQxQ=", + "owner": "~rycee", + "repo": "nmd", + "rev": "fb9cf8e991487c6923f3c654b8ae51b6f0f205ce", + "type": "sourcehut" + }, + "original": { + "owner": "~rycee", + "repo": "nmd", + "rev": "fb9cf8e991487c6923f3c654b8ae51b6f0f205ce", + "type": "sourcehut" + } + }, + "nmt": { + "flake": false, + "locked": { + "lastModified": 1694274695, + "narHash": "sha256-PufoLMSuBYkga8hTqYf/cIQzSuy2lfFj+cdKcp2nLEI=", + "owner": "jooooscha", + "repo": "nmt", + "rev": "29595267923b4a6ce766ff0d85afaa930842b88d", + "type": "github" + }, + "original": { + "owner": "jooooscha", + "repo": "nmt", + "type": "github" + } + }, + "poetry2nix": { + "inputs": { + "flake-utils": [ + "nixneovim", + "nixneovimplugins", + "flake-utils" + ], + "nix-github-actions": "nix-github-actions", + "nixpkgs": [ + "nixneovim", + "nixneovimplugins", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1689849924, + "narHash": "sha256-d259Z2S7CS7Na04qQNQ6LYQILuI7cf4Rpe76qc4mz40=", + "owner": "nix-community", + "repo": "poetry2nix", + "rev": "1d7eda9336f336392d24e9602be5cb9be7ae405c", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "poetry2nix", + "type": "github" + } + }, "pre-commit-hooks-nix": { "inputs": { "flake-compat": [ @@ -716,7 +941,8 @@ "lanzaboote": "lanzaboote", "neovim-nightly-overlay": "neovim-nightly-overlay", "nix-darwin": "nix-darwin", - "nixpkgs": "nixpkgs_4" + "nixneovim": "nixneovim", + "nixpkgs": "nixpkgs_5" } }, "rust-overlay": { @@ -893,6 +1119,21 @@ "repo": "default", "type": "github" } + }, + "systems_7": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } } }, "root": "root", diff --git a/config/nix/flake.nix b/config/nix/flake.nix index bb53f1a9..ba755435 100644 --- a/config/nix/flake.nix +++ b/config/nix/flake.nix @@ -47,6 +47,29 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + nixneovim = { + url = "github:nixneovim/nixneovim"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + # { pkgs, inputs, system, ... }: + + # { + # nixpkgs.overlays = [ + # (final: prev: { + # postman = prev.postman.overrideAttrs(old: rec { + # version = "20230716100528"; + # src = final.fetchurl { + # url = "https://web.archive.org/web/${version}/https://dl.pstmn.io/download/latest/linux_64"; + # sha256 = "sha256-svk60K4pZh0qRdx9+5OUTu0xgGXMhqvQTGTcmqBOMq8="; + + # name = "${old.pname}-${version}.tar.gz"; + # }; + # }); + # }) + # ]; + # } + }; outputs = { nixpkgs, @@ -107,8 +130,22 @@ inputs.anyrun-nixos-options.packages.${prev.system}.default; anyrun-rink = inputs.anyrun-rink.packages.${prev.system}.default; }; - overlays = [ inputs.neovim-nightly-overlay.overlay anyrun-overlay ]; - # overlays = [ anyrun-overlay ]; + # postman-overlay = final: prev: { + # postman = prev.postman.overrideAttrs (old: rec { + # version = "20230716100528"; + # src = final.fetchurl { + # url = + # "https://dl.pstmn.io/download/latest/osx_arm64"; + # sha256 = "sha256-P7x06KKH0e1Yro93SCEJyiWS/Uv25tWU8A85vxv85hI="; + # name = "${old.pname}-${version}.tar.gz"; + # }; + # }); + # }; + overlays = [ + inputs.neovim-nightly-overlay.overlay + anyrun-overlay + inputs.nixneovim.overlays.default + ]; in { nixosConfigurations = let devices = nixos_devices; in import ./nixos/device.nix { diff --git a/config/nvim/lua/colorscheme.lua b/config/nvim/lua/colorscheme.lua index 5f828c65..37885ec5 100644 --- a/config/nvim/lua/colorscheme.lua +++ b/config/nvim/lua/colorscheme.lua @@ -1,6 +1,6 @@ local vim = vim vim.o.termguicolors = true -vim.cmd.colorscheme "sonokai" +vim.cmd.colorscheme "catppuccin" -- vim.cmd [[colorscheme sonokai]] -- require("catppuccin").setup({ -- -- flavour = "mocha", @@ -36,9 +36,12 @@ local colors = { -- vim.cmd.colorscheme "catppuccin" -- Override some colors -vim.cmd('hi Normal guibg=' .. colors.black) -vim.cmd('hi NormalNC guibg=' .. colors.black) -vim.cmd('hi EndOfBuffer guibg=' .. colors.black) --- vim.cmd('hi ToggleTerm1Buffer guibg='..colors.black) -vim.cmd('hi NonText guibg=' .. colors.black) -vim.cmd('hi link LspInlayHint Comment') +-- vim.cmd('hi Normal guibg=' .. colors.black) +-- vim.cmd('hi NormalNC guibg=' .. colors.black) +-- vim.cmd('hi EndOfBuffer guibg=' .. colors.black) +-- -- vim.cmd('hi ToggleTerm1Buffer guibg='..colors.black) +-- vim.cmd('hi NonText guibg=' .. colors.black) +-- vim.cmd('hi link LspInlayHint Comment') +require('catppuccin').setup({ + flavour = "mocha", +}) diff --git a/config/nvim/lua/plugins.lua b/config/nvim/lua/plugins.lua index 435a052c..4fa99906 100644 --- a/config/nvim/lua/plugins.lua +++ b/config/nvim/lua/plugins.lua @@ -19,6 +19,15 @@ vim.opt.rtp:prepend(lazypath) -- local use = require('packer').use return require('lazy').setup({ + { + "catppuccin/nvim", + name = "catppuccin", + priority = 1000, + lazy = false, + config = function() + require('colorscheme') + end + }, { "ellisonleao/glow.nvim", config = true, @@ -57,13 +66,13 @@ return require('lazy').setup({ -- cmd = "Copilot", -- }, -- 'ggandor/leap.nvim', - { - 'sainnhe/sonokai', - lazy = false, - config = function() - require('colorscheme') - end - }, + -- { + -- 'sainnhe/sonokai', + -- lazy = false, + -- config = function() + -- require('colorscheme') + -- end + -- }, { 'folke/which-key.nvim', config = function() require("which-key").setup() end, event = "BufEnter" }, { 'nvim-telescope/telescope.nvim', diff --git a/config/tmux/sessions/default b/config/tmux/sessions/default index 104103cf..7b8876e9 100755 --- a/config/tmux/sessions/default +++ b/config/tmux/sessions/default @@ -1,15 +1,22 @@ tmux new-session -d -s 'default' -n 'neovim' +sleep .05 tmux new-window -t default -n 'shell' +sleep .05 tmux new-window -t default -n 'shell' +sleep .05 tmux new-window -t default -n 'shell' +sleep .05 tmux new-window -t default -n 'shell' +sleep .05 tmux new-window -t default -n 'shell' +sleep .05 tmux new-window -t default -n 'shell' +sleep .05 tmux new-window -t default -n 'shell' +sleep .05 tmux new-window -t default -n 'shell' +sleep .05 tmux new-window -t default -n 'shell' +sleep .05 tmux new-window -t default -n 'shell' -tmux new-window -t default -n 'IRC' -tmux send-keys -t default:IRC "irssi" Enter -tmux send-keys -t default:IRC Enter tmux select-window -t default:0