1
Fork 0

feat: more tmux configuring

This commit is contained in:
Matei Adriel 2022-05-12 00:11:54 +03:00
parent c879c78d56
commit 400794b28c
21 changed files with 133 additions and 71 deletions

View file

@ -4,4 +4,11 @@ My flake based nixos configuration. To use this, just rebuild your system using
## TODO: ## TODO:
- make special separate dir for dotfiles. Would makes it easier to share them specifically - get vieb to work
- easymotion for nvim
- configure tmux more
- figure out how to install fastcopy
- keep vim/nvim sessions around
- automatically save/restore state using continuum
- customize status bar
- clean out the mess I made for installing fish themes

View file

@ -14,7 +14,9 @@ local idrisChords = {
} }
function M.setup() function M.setup()
require("idris2").setup({ local idris2 = require("idris2")
idris2.setup({
server = { server = {
on_attach = function(client, bufnr) on_attach = function(client, bufnr)
lspconfig.on_attach(client, bufnr) lspconfig.on_attach(client, bufnr)

View file

@ -19,7 +19,7 @@ function M.setup()
require("my.plugins.vimtex").setup() require("my.plugins.vimtex").setup()
require("my.plugins.telescope").setup() require("my.plugins.telescope").setup()
require("my.plugins.vimux").setup() require("my.plugins.vimux").setup()
require("my.plugins.idris").setup() -- require("my.plugins.idris").setup()
require("my.plugins.lean").setup() require("my.plugins.lean").setup()
require("my.plugins.vim-tmux-navigator").setup() require("my.plugins.vim-tmux-navigator").setup()
require("my.plugins.lh-brackets").setup() require("my.plugins.lh-brackets").setup()

View file

@ -33,3 +33,11 @@ bind -T copy-mode-vi p paste-buffer
bind -T copy-mode-vi V send-keys -X rectangle-toggle # Check if this works bind -T copy-mode-vi V send-keys -X rectangle-toggle # Check if this works
bind -T copy-mode-vi v send-keys -X begin-selection bind -T copy-mode-vi v send-keys -X begin-selection
bind -T copy-mode-vi y send-keys -X copy-selection bind -T copy-mode-vi y send-keys -X copy-selection
# Copy to clipboard using fastcopy
set-option -g set-clipboard on
set-option -g @fastcopy-action 'tmux load-buffer -w -'
set-option -g @fastcopy-key a
# Keep state around using resurrect
set -g @resurrect-processes '"./result/bin/qkm ./myConfig.json"'

View file

@ -115,11 +115,11 @@
"flake-compat": { "flake-compat": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1641205782, "lastModified": 1650374568,
"narHash": "sha256-4jY7RCWUoZ9cKD8co0/4tFARpWB+57+r1bLLvXNJliY=", "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
"owner": "edolstra", "owner": "edolstra",
"repo": "flake-compat", "repo": "flake-compat",
"rev": "b7547d3eed6f32d06102ead8991ec52ab0a4f1a7", "rev": "b4a34015c698c7793d592d66adbab377907a2be8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -161,11 +161,11 @@
}, },
"flake-utils_2": { "flake-utils_2": {
"locked": { "locked": {
"lastModified": 1644229661, "lastModified": 1631561581,
"narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", "narHash": "sha256-3VQMV5zvxaVLvqqUrNz3iJelLw30mIVSfZmAaauM3dA=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797", "rev": "7e5bf3925f6fbdfaf50a2a7ca0be2879c4261d19",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -275,11 +275,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1648834319, "lastModified": 1651519540,
"narHash": "sha256-i5Aj4Aw64D/A0X6XW5LxSS4XBnYj7gMz+kN4dpsbdk8=", "narHash": "sha256-3k6p8VsTwwRPQjE8rrMh+o2AZACZn/eeYJ7ivdQ/Iro=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "0bdbdea2e26c984b096f4f7d10e3c88536a980b0", "rev": "d93d56ab8c1c6aa575854a79b9d2f69d491db7d0",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -477,11 +477,11 @@
}, },
"locked": { "locked": {
"dir": "nix", "dir": "nix",
"lastModified": 1647852712, "lastModified": 1651937557,
"narHash": "sha256-glteo+r5qz/O9BirpK/ziigpYbGjZIY5UFuxsADC4qY=", "narHash": "sha256-gvQsenQrEsLxLFgUGJhJBIx3+t1dtLMMTVEO/yZ8nRg=",
"owner": "kmonad", "owner": "kmonad",
"repo": "kmonad", "repo": "kmonad",
"rev": "65b501defdd0049563752f8af8c8c57f5a1ae38b", "rev": "c43a0180a3b9ca9c4ff4a283b17369fc4e8e46e2",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -517,11 +517,11 @@
}, },
"locked": { "locked": {
"dir": "contrib", "dir": "contrib",
"lastModified": 1646712943, "lastModified": 1652254318,
"narHash": "sha256-FuYXH7g8OW8P+mAMLP/zx3zJOENtGIv5tLaOzKPP+is=", "narHash": "sha256-4LF4p4GuDJTVO2mqCAAZVwVI6tW8nSsoR8czPcoUU3M=",
"owner": "neovim", "owner": "neovim",
"repo": "neovim", "repo": "neovim",
"rev": "2783f4cc4a410cd3b73e8cdfbdf8c859c426c6c6", "rev": "3a5abcd649f3637e3292dd595dd197e85d1a2272",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -540,11 +540,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1646727299, "lastModified": 1652257362,
"narHash": "sha256-i18vMn+iXvPRAxPb96lEuEVkrQ75qKEZZomfo67JRJI=", "narHash": "sha256-qtESMLoS2B+dVDlJpCIDZHQYM8BfGk7o9VivDf8w81I=",
"owner": "nix-community", "owner": "nix-community",
"repo": "neovim-nightly-overlay", "repo": "neovim-nightly-overlay",
"rev": "c26d33c2fbcf5f689a2592b2353f4f8765eea1da", "rev": "5ab33071cc20422d0108c7e86d50cd8543e8475d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -555,11 +555,11 @@
}, },
"nixos-unstable": { "nixos-unstable": {
"locked": { "locked": {
"lastModified": 1646497237, "lastModified": 1652172129,
"narHash": "sha256-Ccpot1h/rV8MgcngDp5OrdmLTMaUTbStZTR5/sI7zW0=", "narHash": "sha256-8e2JMrswaKe02P8rYfvIMoc59pNuw6h/GYu8DBE1c+0=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "062a0c5437b68f950b081bbfc8a699d57a4ee026", "rev": "f419dc5763c2b3c5580e396dea065b6d8b58ee27",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -571,11 +571,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1646675913, "lastModified": 1652278321,
"narHash": "sha256-ZvGf51XpXM7JojKLZ5yI0XLUq8UOFX6AwZ3bhtdcpIo=", "narHash": "sha256-dvm5y9LkOtMeddK9eKzhhSK9d01yipfXISvQtGLBpU0=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "9b1c7ba323732ddc85a51850a7f10ecc5269b8e9", "rev": "e88ce43c86ebd9dee39764c3b8e9851cab9bef62",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -587,11 +587,11 @@
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1646470760, "lastModified": 1652252629,
"narHash": "sha256-dQISyucVCCPaFioUhy5ZgfBz8rOMKGI8k13aPDFTqEs=", "narHash": "sha256-SvT64apetqc8P5nYp1/fOZvUmHUPdPFUZbhSpKy+1aI=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "1fc7212a2c3992eedc6eedf498955c321ad81cc2", "rev": "d2fc6856824cb87742177eefc8dd534bdb6c3439",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -764,11 +764,11 @@
"nixpkgs": "nixpkgs_2" "nixpkgs": "nixpkgs_2"
}, },
"locked": { "locked": {
"lastModified": 1646576673, "lastModified": 1648995798,
"narHash": "sha256-zS5O7nW4sBzAa+hnEfI2P8J42XjfyEYrUU0VXnbvIIA=", "narHash": "sha256-+JVei13lElBfx/4XsS/zFplmAbU14zUIGjatGE6Ktrc=",
"owner": "m15a", "owner": "m15a",
"repo": "nixpkgs-vim-extra-plugins", "repo": "nixpkgs-vim-extra-plugins",
"rev": "efe7a114effc4e242b3b8a848a6c86e1b552994b", "rev": "5059176cb8f8c460c885f334883520972d1c05ae",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -43,7 +43,7 @@
discord discord
# deluge # deluge
# slack # slack
# tdesktop # telegram for the desktop tdesktop # telegram for the desktop
zoom-us zoom-us
# teams # teams

View file

@ -37,8 +37,6 @@ in
# haskellPackages.agda-language-server # agda # haskellPackages.agda-language-server # agda
nodePackages.typescript-language-server # typescript nodePackages.typescript-language-server # typescript
easy-purescript-nix.purescript-language-server # purescript easy-purescript-nix.purescript-language-server # purescript
idris2 # idris2 lang
idris2-pkgs.lsp # idris2
sumneko-lua-language-server # lua sumneko-lua-language-server # lua
rnix-lsp # nix rnix-lsp # nix
haskell-language-server # haskell haskell-language-server # haskell
@ -85,8 +83,6 @@ in
presence-nvim # discord rich presence presence-nvim # discord rich presence
agda-nvim # agda support agda-nvim # agda support
unicode-vim # better unicode support unicode-vim # better unicode support
nui-nvim # ui lib required by idris plugin
idris2-nvim # idris2 support
lean-nvim # lean support lean-nvim # lean support
kmonad # support for the kmonad config language kmonad # support for the kmonad config language
lh-vim-lib # dependency for lh-brackets lh-vim-lib # dependency for lh-brackets

View file

@ -13,11 +13,11 @@ in
{ {
home-manager.users.adrielus = { home-manager.users.adrielus = {
home.packages = [ rofi ]; home.packages = [ rofi ];
home.file.".local/share/rofi/themes/${theme.name}.rasi".text = builtins.readFile theme.rofi.theme; home.file.".local/share/rofi/themes/${theme.name}.rasi".text = theme.rofi.theme or "";
xdg.configFile."rofi/config.rasi".text = '' xdg.configFile."rofi/config.rasi".text = ''
@import "${./pre.rasi}" @import "${./pre.rasi}"
${theme.rofi.config} ${theme.rofi.config or ""}
''; '';
}; };
} }

View file

@ -19,7 +19,7 @@
battery = "acpi"; battery = "acpi";
# Rebuuild nixos # Rebuuild nixos
rebuild = "sudo nixos-rebuild switch --flake ~/Projects/nixos-config/"; rebuild = "sudo -u adrielus nixos-rebuild switch --flake ~/Projects/nixos-config/";
# Render git repo using gource # Render git repo using gource
"git-render" = "gource -f -s 1 -c 4 --key"; "git-render" = "gource -f -s 1 -c 4 --key";

View file

@ -3,8 +3,12 @@ let
shellAliases = import ./aliases.nix; shellAliases = import ./aliases.nix;
common = import ./common.nix; common = import ./common.nix;
globalTheme = pkgs.myThemes.current;
theme = "dangerous"; theme = "dangerous";
themePackage = builtins.getAttr theme pkgs.myFishPlugins.themes; # Dynamically pick the theme path themePackage = builtins.getAttr theme pkgs.myFishPlugins.themes; # Dynamically pick the theme path
defaultDangerousColors = "000000 333333 666666 ff4ff0 0088ff ff6600 ff0000 ff0033 3300ff 0000ff 00ffff 00ff00";
dangerousColors = globalTheme.fish.dangerousColors or defaultDangerousColors;
in in
{ {
users.defaultUserShell = pkgs.fish; users.defaultUserShell = pkgs.fish;
@ -33,9 +37,10 @@ in
source $f source $f
end end
# if [ "${theme}" = "dangerous" ]
set dangerous_colors 000000 333333 666666 ff4ff0 0088ff ff6600 ff0000 ff0033 3300ff 0000ff 00ffff 00ff00 ${if theme == "dangerous"
# end then "set dangerous_colors ${dangerousColors}"
else ""}
${common.shellInit} ${common.shellInit}
''; '';

View file

@ -1,6 +1,19 @@
{ pkgs, lib, ... }: { pkgs, lib, ... }:
let let
theme = pkgs.myThemes.current; theme = pkgs.myThemes.current;
fastcopy = pkgs.tmuxPlugins.mkTmuxPlugin
{
pluginName = "fastcopy";
version = "unstable-2022-04-18";
src = pkgs.fetchFromGitHub
{
owner = "abhinav";
repo = "tmux-fastcopy";
sha256 = "0d2xdch5w35mw3kpw1y6jy8wk4zj43pjx73jlx83ciqddl3975x6";
rev = "4b9bc8e9e71c5b6eeb44a02f608baec07e12ea3d";
};
};
in in
{ {
home-manager.users.adrielus.programs = { home-manager.users.adrielus.programs = {
@ -17,6 +30,9 @@ in
plugins = with pkgs.tmuxPlugins; [ plugins = with pkgs.tmuxPlugins; [
cpu # Show CPU load with easy icons cpu # Show CPU load with easy icons
vim-tmux-navigator # Switch between tmux and vim panes with ease vim-tmux-navigator # Switch between tmux and vim panes with ease
sessionist # Nicer workflow for switching around between session
# fastcopy # Easy copying of stuff
resurrect # Save / restore tmux sessions
]; ];
extraConfig = '' extraConfig = ''

View file

@ -2,7 +2,7 @@
let vieb = "/home/adrielus/.config/Vieb"; in let vieb = "/home/adrielus/.config/Vieb"; in
{ {
home-manager.users.adrielus = { home-manager.users.adrielus = {
home.packages = [ pkgs.vieb ]; home.packages = [ pkgs.nixos-unstable.vieb ];
systemd.user.tmpfiles.rules = [ systemd.user.tmpfiles.rules = [
"L+ /home/adrielus/.viebrc - - - - ${paths.dotfiles}/vieb/.viebrc" "L+ /home/adrielus/.viebrc - - - - ${paths.dotfiles}/vieb/.viebrc"
]; ];

View file

@ -13,7 +13,7 @@
# Proof assistants # Proof assistants
./agda.nix ./agda.nix
./idris.nix # ./idris.nix
./lean.nix ./lean.nix
]; ];
} }

View file

@ -1,6 +1,15 @@
{ pkgs, ... }: { { pkgs, ... }: {
home-manager.users.adrielus.home.packages = with pkgs; [ home-manager.users.adrielus = {
home.packages = with pkgs; [
idris2 idris2
idris2-pkgs.lsp # idris2 idris2-pkgs.lsp # idris2
]; ];
programs.neovim.plugins = with pkgs.vimPlugins;
with pkgs.vimExtraPlugins; with pkgs.myVimPlugins; [
nui-nvim # ui lib required by idris plugin
idris2-nvim # idris2 support
];
};
} }

View file

@ -1,8 +1,9 @@
{ lib, ... }: { { lib, ... }: {
mergeLines = (lines: lib.lists.foldr mergeLines = lib.lists.foldr
(a: b: '' (a: b: ''
${a} ${a}
${b} ${b}
'') "" '') "";
lines);
unwords = lib.lists.foldr (a: b: ''${a} ${b}'') "";
} }

View file

@ -22,6 +22,12 @@ in
config.allowBroken = true; config.allowBroken = true;
}; };
nixos-unstable = import nixos-unstable {
inherit system;
config.allowUnfree = true;
config.allowBroken = true;
};
easy-purescript-nix = self.callPackage foreign.easy-purescript-nix { }; easy-purescript-nix = self.callPackage foreign.easy-purescript-nix { };
easy-dhall-nix = self.callPackage foreign.easy-dhall-nix { }; easy-dhall-nix = self.callPackage foreign.easy-dhall-nix { };

View file

@ -1,14 +1,16 @@
{ transparency ? 1, wallpaper, variant }: { pkgs, ... }: { transparency ? 1, wallpaper, variant }: { pkgs, lib, ... }:
let let
githubTheme = pkgs.myVimPlugins.githubNvimTheme; # github theme for neovim githubTheme = pkgs.myVimPlugins.githubNvimTheme; # github theme for neovim
foreign = pkgs.callPackage (import ./foreign.nix) { }; foreign = pkgs.callPackage (import ./foreign.nix) { };
v = (a: b: if variant == "light" then a else b); v = (a: b: if variant == "light" then a else b);
in in
{ {
name = "catppuccin";
wallpaper = wallpaper.foreign or "${foreign.wallpapers}/${wallpaper}"; wallpaper = wallpaper.foreign or "${foreign.wallpapers}/${wallpaper}";
name = "catppuccin";
neovim = { neovim = {
theme = builtins.readFile ./nvim.lua;
lualineTheme = "catppuccin";
plugins = [ plugins = [
( (
pkgs.vimUtils.buildVimPluginFrom2Nix { pkgs.vimUtils.buildVimPluginFrom2Nix {
@ -17,28 +19,44 @@ in
} }
) )
]; ];
theme = builtins.readFile ./nvim.lua;
lualineTheme = "catppuccin";
}; };
# grub.path = "${foreign.grub}/catppuccin-grub-theme/theme.txt";
tmux.path = "${foreign.tmux}/catppuccin.conf"; tmux.path = "${foreign.tmux}/catppuccin.conf";
sddm.path = "${foreign.sddm}"; sddm.path = "${foreign.sddm}";
grub.path = pkgs.nixos-grub2-theme; grub.path = pkgs.nixos-grub2-theme;
# grub.path = "${foreign.grub}/catppuccin-grub-theme/theme.txt";
gtk.path = null;
xresources = builtins.readFile "${foreign.xresources}/Xresources"; xresources = builtins.readFile "${foreign.xresources}/Xresources";
rofi = { rofi = {
theme = "${foreign.rofi}/.local/share/rofi/themes/catppuccin.rasi"; theme = builtins.readFile "${foreign.rofi}/.local/share/rofi/themes/catppuccin.rasi";
config = '' config = ''
@import "${foreign.rofi}/.config/rofi/config.rasi" @import "${foreign.rofi}/.config/rofi/config.rasi"
@import "${./rofi.rasi}"''; @import "${./rofi.rasi}"'';
}; };
chromium.extensions = [ chromium.extensions = [
# https://github.com/catppuccin/chrome # https://github.com/catppuccin/chrome
(v (v
"cmpdlhmnmjhihmcfnigoememnffkimlk" "cmpdlhmnmjhihmcfnigoememnffkimlk"
"bkkmolkhemgaeaeggcmfbghljjjoofoh") "bkkmolkhemgaeaeggcmfbghljjjoofoh")
]; ];
fish.dangerousColors = lib.strings.concatStringsSep " "
[
"F2CDCD"
"DDB6F2"
"F5C2E7"
"E8A2AF"
"F28FAD"
"F8BD96"
"FAE3B0"
"ABE9B3"
"B5E8E0"
"96CDFB"
"89DCEB"
];
alacritty.settings = { alacritty.settings = {
import = [ "${foreign.alacritty}/catppuccin.yml" ]; import = [ "${foreign.alacritty}/catppuccin.yml" ];
window = { window = {
@ -53,4 +71,3 @@ in
background_opacity = transparency; background_opacity = transparency;
}; };
} }

View file

@ -18,12 +18,7 @@ in
tmux.path = "${githubTheme}/terminal/tmux/github_${variant}.conf"; tmux.path = "${githubTheme}/terminal/tmux/github_${variant}.conf";
sddm.path = "${pkgs.sddm-theme-chili}"; # TODO: don't expose this globally sddm.path = "${pkgs.sddm-theme-chili}"; # TODO: don't expose this globally
grub.path = pkgs.nixos-grub2-theme; grub.path = pkgs.nixos-grub2-theme;
gtk.path = null; rofi.config = ''@theme "purple"'';
xresources = "";
rofi = {
theme = "purple";
config = { };
};
alacritty.settings = { alacritty.settings = {
import = [ "${githubTheme}/terminal/alacritty/github_${variant}.yml" ]; import = [ "${githubTheme}/terminal/alacritty/github_${variant}.yml" ];
window = { window = {

View file

@ -5,6 +5,6 @@ in
{ {
home-manager.users.adrielus.gtk = { home-manager.users.adrielus.gtk = {
enable = true; enable = true;
theme = theme.gtk.path; theme = theme.gtk.path or null;
}; };
} }

View file

@ -4,6 +4,6 @@ let
in in
{ {
home-manager.users.adrielus.xresources = { home-manager.users.adrielus.xresources = {
extraConfig = theme.xresources; extraConfig = theme.xresources or "";
}; };
} }

View file

@ -1,4 +1,4 @@
rec { rec {
root = "~/Projects/nixos-config/"; root = "/home/adrielus/Projects/nixos-config";
dotfiles = "${root}/dotfiles"; dotfiles = "${root}/dotfiles";
} }