got a bunch of shit fixed
This commit is contained in:
parent
4049df5724
commit
01c65f54af
22
flake.lock
22
flake.lock
|
@ -270,16 +270,16 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1736373539,
|
"lastModified": 1751810233,
|
||||||
"narHash": "sha256-dinzAqCjenWDxuy+MqUQq0I4zUSfaCvN9rzuCmgMZJY=",
|
"narHash": "sha256-kllkNbIqQi3VplgTMeGzuh1t8Gk8TauvkTRt93Km+tQ=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "bd65bc3cde04c16755955630b344bc9e35272c56",
|
"rev": "9b0873b46c9f9e4b7aa01eb634952c206af53068",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"ref": "release-24.11",
|
"ref": "release-25.05",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
@ -354,16 +354,16 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1738277201,
|
"lastModified": 1755274400,
|
||||||
"narHash": "sha256-6L+WXKCw5mqnUIExvqkD99pJQ41xgyCk6z/H9snClwk=",
|
"narHash": "sha256-rTInmnp/xYrfcMZyFMH3kc8oko5zYfxsowaLv1LVobY=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "666e1b3f09c267afd66addebe80fb05a5ef2b554",
|
"rev": "ad7196ae55c295f53a7d1ec39e4a06d922f3b899",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"ref": "nixos-24.11",
|
"ref": "nixos-25.05",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
@ -534,11 +534,11 @@
|
||||||
},
|
},
|
||||||
"unstable": {
|
"unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1744932701,
|
"lastModified": 1752687322,
|
||||||
"narHash": "sha256-fusHbZCyv126cyArUwwKrLdCkgVAIaa/fQJYFlCEqiU=",
|
"narHash": "sha256-RKwfXA4OZROjBTQAl9WOZQFm7L8Bo93FQwSJpAiSRvo=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "b024ced1aac25639f8ca8fdfc2f8c4fbd66c48ef",
|
"rev": "6e987485eb2c77e5dcc5af4e3c70843711ef9251",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
# Nixpkgs
|
# Nixpkgs
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
|
||||||
unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@
|
||||||
# ngipkgs-local.url = "path:/home/anish/usr/ngipkgs";
|
# ngipkgs-local.url = "path:/home/anish/usr/ngipkgs";
|
||||||
|
|
||||||
# Home manager
|
# Home manager
|
||||||
home-manager.url = "github:nix-community/home-manager/release-24.11";
|
home-manager.url = "github:nix-community/home-manager/release-25.05";
|
||||||
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
hardware.url = "github:nixos/nixos-hardware";
|
hardware.url = "github:nixos/nixos-hardware";
|
||||||
|
|
||||||
|
@ -95,7 +95,7 @@
|
||||||
tidalcycles.overlays.default
|
tidalcycles.overlays.default
|
||||||
agenix.overlays.default
|
agenix.overlays.default
|
||||||
nur.overlay
|
nur.overlay
|
||||||
nix-matrix-appservices.overlay
|
# nix-matrix-appservices.overlay # nixpkgs has these packages and newer ones at that
|
||||||
unstableOverlay
|
unstableOverlay
|
||||||
vimwikiOverlay
|
vimwikiOverlay
|
||||||
self.overlays.additions
|
self.overlays.additions
|
||||||
|
@ -251,7 +251,7 @@
|
||||||
};
|
};
|
||||||
lituus = {
|
lituus = {
|
||||||
hostname = "sealight.xyz";
|
hostname = "sealight.xyz";
|
||||||
# autoRollback = false;
|
autoRollback = false;
|
||||||
profiles.system = {
|
profiles.system = {
|
||||||
user = "root";
|
user = "root";
|
||||||
path = deploy-rs.lib.x86_64-linux.activate.nixos
|
path = deploy-rs.lib.x86_64-linux.activate.nixos
|
||||||
|
|
|
@ -11,4 +11,22 @@
|
||||||
../profiles/ssh
|
../profiles/ssh
|
||||||
../profiles/task
|
../profiles/task
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# GPG configuration for user session
|
||||||
|
services.gpg-agent = {
|
||||||
|
enable = true;
|
||||||
|
pinentry.package = pkgs.pinentry-rofi; # Use rofi for consistency with desktop theme
|
||||||
|
enableSshSupport = true;
|
||||||
|
defaultCacheTtl = 28800; # 8 hours
|
||||||
|
maxCacheTtl = 86400; # 24 hours
|
||||||
|
extraConfig = ''
|
||||||
|
pinentry-program ${pkgs.writeShellScript "pinentry-rofi-themed" ''
|
||||||
|
exec ${pkgs.pinentry-rofi}/bin/pinentry-rofi -theme ~/.config/rofi/theme/passmenu.rasi "$@"
|
||||||
|
''}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.gpg = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -154,7 +154,7 @@
|
||||||
enableCompletion = true;
|
enableCompletion = true;
|
||||||
autosuggestion.enable = false;
|
autosuggestion.enable = false;
|
||||||
|
|
||||||
initExtra = ''
|
initContent = ''
|
||||||
bindkey -v
|
bindkey -v
|
||||||
autopair-init
|
autopair-init
|
||||||
'';
|
'';
|
||||||
|
|
|
@ -31,8 +31,9 @@ in
|
||||||
inotify-tools
|
inotify-tools
|
||||||
offpunk
|
offpunk
|
||||||
termpdfpy
|
termpdfpy
|
||||||
libsForQt5.kontact
|
# libsForQt5.kontact
|
||||||
thunderbird
|
thunderbird
|
||||||
|
libsecret # For secret-tool to manage keyring
|
||||||
];
|
];
|
||||||
|
|
||||||
# GTK4 color scheme?
|
# GTK4 color scheme?
|
||||||
|
|
|
@ -8,6 +8,10 @@ open_url_with default
|
||||||
mouse_map left click ungrabbed mouse_click_url_or_select
|
mouse_map left click ungrabbed mouse_click_url_or_select
|
||||||
confirm_os_window_close 0
|
confirm_os_window_close 0
|
||||||
enable_audio_bell no
|
enable_audio_bell no
|
||||||
|
|
||||||
|
# Ctrl+V for paste
|
||||||
|
map ctrl+v paste_from_clipboard
|
||||||
|
|
||||||
-- Allows zen-mode.nvim to increase font size
|
-- Allows zen-mode.nvim to increase font size
|
||||||
-- allow_remote_control socket-only
|
-- allow_remote_control socket-only
|
||||||
-- listen_on unix:/tmp/kitty
|
-- listen_on unix:/tmp/kitty
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
isDefault = true;
|
isDefault = true;
|
||||||
name = "anish";
|
name = "anish";
|
||||||
userChrome = (builtins.readFile ./userChrome.css);
|
userChrome = (builtins.readFile ./userChrome.css);
|
||||||
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
|
extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [
|
||||||
# Find extensions: https://github.com/nix-community/nur-combined/blob/master/repos/rycee/pkgs/firefox-addons/generated-firefox-addons.nix
|
# Find extensions: https://github.com/nix-community/nur-combined/blob/master/repos/rycee/pkgs/firefox-addons/generated-firefox-addons.nix
|
||||||
ublock-origin
|
ublock-origin
|
||||||
# wallabagger
|
# wallabagger
|
||||||
|
|
|
@ -53,10 +53,11 @@
|
||||||
height: 28px !important;
|
height: 28px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* hides the sidebar header */
|
/* hides the sidebar header
|
||||||
#sidebar-header {
|
#sidebar-header {
|
||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
.tab[selected="true"] {
|
.tab[selected="true"] {
|
||||||
visibility: collapse;
|
visibility: collapse;
|
||||||
|
@ -72,12 +73,28 @@
|
||||||
/* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/autohide_sidebar.css made available under Mozilla Public License v. 2.0
|
/* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/autohide_sidebar.css made available under Mozilla Public License v. 2.0
|
||||||
See the above repository for updates as well as full license text. */
|
See the above repository for updates as well as full license text. */
|
||||||
|
|
||||||
/* Show sidebar only when the cursor is over it */
|
/* Show sidebar only when the cursor is over it.
|
||||||
/* The border controlling sidebar width will be removed so you'll need to modify these values to change width */
|
The border controlling sidebar width will be removed so you'll need to modify
|
||||||
|
these values to change width.
|
||||||
|
By default the internal layout of sidebar changes when hovered, but this can
|
||||||
|
be changed by setting pref "userchrome.autohide-sidebar.static-layout.enabled" to true
|
||||||
|
*/
|
||||||
|
|
||||||
#sidebar-box{
|
/* Note: If you want only *some* sidebar to be auto-hidden, then you can use [sidebarcommand] attribute selector.
|
||||||
--uc-sidebar-width: 40px;
|
For example, to only affect Sidebery's sidebar replace all instances of #sidebar-box with
|
||||||
|
#sidebar-box[sidebarcommand="_3c078156-979c-498b-8990-85f7987dd929_-sidebar-action"].
|
||||||
|
To find the sidebarcommand value for any other sidebar, open that sidebar and use Browser Toolbox to inspect it.
|
||||||
|
See: https://firefox-source-docs.mozilla.org/devtools-user/browser_toolbox/index.html
|
||||||
|
*/
|
||||||
|
/* The whole thing
|
||||||
|
:where(#main-window) #browser{
|
||||||
|
--uc-sidebar-width: 240px;
|
||||||
--uc-sidebar-hover-width: 210px;
|
--uc-sidebar-hover-width: 210px;
|
||||||
|
}
|
||||||
|
#main-window[sizemode="fullscreen"] #browser{
|
||||||
|
--uc-sidebar-width: 1px;
|
||||||
|
}
|
||||||
|
#sidebar-box{
|
||||||
--uc-autohide-sidebar-delay: 600ms; /* Wait 0.6s before hiding sidebar */
|
--uc-autohide-sidebar-delay: 600ms; /* Wait 0.6s before hiding sidebar */
|
||||||
--uc-autohide-transition-duration: 115ms;
|
--uc-autohide-transition-duration: 115ms;
|
||||||
--uc-autohide-transition-type: linear;
|
--uc-autohide-transition-type: linear;
|
||||||
|
@ -87,14 +104,17 @@ See the above repository for updates as well as full license text. */
|
||||||
width: var(--uc-sidebar-width) !important;
|
width: var(--uc-sidebar-width) !important;
|
||||||
max-width: var(--uc-sidebar-width) !important;
|
max-width: var(--uc-sidebar-width) !important;
|
||||||
z-index: var(--browser-area-z-index-sidebar,3);
|
z-index: var(--browser-area-z-index-sidebar,3);
|
||||||
|
background-color: inherit;
|
||||||
|
/* This directionality flipper is played so that sidebar "grows" into the right direction */
|
||||||
|
direction: ltr;
|
||||||
|
&:is([positionend],[sidebar-positionend]):not(:-moz-locale-dir(rtl)){
|
||||||
|
direction: rtl;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#sidebar-box[positionend]{ direction: rtl }
|
.sidebar-browser-stack{
|
||||||
#sidebar-box[positionend] > *{ direction: ltr }
|
background: inherit;
|
||||||
|
}
|
||||||
#sidebar-box[positionend]:-moz-locale-dir(rtl){ direction: ltr }
|
#main-window[sizemode="fullscreen"] #browser{ --uc-sidebar-width: 1px; }
|
||||||
#sidebar-box[positionend]:-moz-locale-dir(rtl) > *{ direction: rtl }
|
|
||||||
|
|
||||||
#main-window[sizemode="fullscreen"] #sidebar-box{ --uc-sidebar-width: 1px; }
|
|
||||||
|
|
||||||
#sidebar-splitter{ display: none }
|
#sidebar-splitter{ display: none }
|
||||||
|
|
||||||
|
@ -116,9 +136,14 @@ See the above repository for updates as well as full license text. */
|
||||||
transition: min-width var(--uc-autohide-transition-duration) var(--uc-autohide-transition-type) var(--uc-autohide-sidebar-delay) !important;
|
transition: min-width var(--uc-autohide-transition-duration) var(--uc-autohide-transition-type) var(--uc-autohide-sidebar-delay) !important;
|
||||||
min-width: var(--uc-sidebar-width) !important;
|
min-width: var(--uc-sidebar-width) !important;
|
||||||
will-change: min-width;
|
will-change: min-width;
|
||||||
|
direction: ltr;
|
||||||
|
&:-moz-locale-dir(rtl){
|
||||||
|
direction: rtl;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#sidebar-box:hover > #sidebar-header,
|
#sidebar-box:hover > #sidebar-header,
|
||||||
#sidebar-box:hover > #sidebar{
|
#sidebar-box:hover > #sidebar,
|
||||||
|
#sidebar-box:hover > .sidebar-browser-stack > #sidebar{
|
||||||
min-width: var(--uc-sidebar-hover-width) !important;
|
min-width: var(--uc-sidebar-hover-width) !important;
|
||||||
transition-delay: 0ms !important;
|
transition-delay: 0ms !important;
|
||||||
}
|
}
|
||||||
|
@ -143,18 +168,55 @@ See the above repository for updates as well as full license text. */
|
||||||
border-inline-width: 0px 1px;
|
border-inline-width: 0px 1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#sidebar-box:not([positionend]) > :-moz-locale-dir(rtl),
|
#sidebar-box:not([positionend],[sidebar-positionend]) > :-moz-locale-dir(rtl),
|
||||||
#sidebar-box[positionend] > *{
|
#sidebar-box:is([positionend],[sidebar-positionend]) > *{
|
||||||
border-inline-width: 1px 0px;
|
border-inline-width: 1px 0px;
|
||||||
}
|
}
|
||||||
|
@media -moz-pref("sidebar.revamp") {
|
||||||
|
#sidebar, #sidebar-header{ border-style: none }
|
||||||
|
#sidebar-box{ padding: 0 !important; }
|
||||||
|
}
|
||||||
/* Move statuspanel to the other side when sidebar is hovered so it doesn't get covered by sidebar */
|
/* Move statuspanel to the other side when sidebar is hovered so it doesn't get covered by sidebar */
|
||||||
|
|
||||||
#sidebar-box:not([positionend]):hover ~ #appcontent #statuspanel{
|
#sidebar-box:not([positionend],[sidebar-positionend]):hover ~ #appcontent #statuspanel{
|
||||||
inset-inline: auto 0px !important;
|
inset-inline: auto 0px !important;
|
||||||
}
|
}
|
||||||
#sidebar-box:not([positionend]):hover ~ #appcontent #statuspanel-label{
|
#sidebar-box:not([positionend],[sidebar-positionend]):hover ~ #appcontent #statuspanel-label{
|
||||||
margin-inline: 0px !important;
|
margin-inline: 0px !important;
|
||||||
border-left-style: solid !important;
|
border-left-style: solid !important;
|
||||||
}
|
}
|
||||||
|
@media -moz-pref("userchrome.autohide-sidebar.static-layout.enabled"){
|
||||||
|
#sidebar-box{
|
||||||
|
min-width: var(--uc-sidebar-width) !important;
|
||||||
|
contain: size;
|
||||||
|
box-shadow: var(--content-area-shadow);
|
||||||
|
}
|
||||||
|
#sidebar{
|
||||||
|
min-width: var(--uc-sidebar-hover-width) !important;
|
||||||
|
}
|
||||||
|
.sidebar-browser-stack{
|
||||||
|
overflow: hidden;
|
||||||
|
width: 100%;
|
||||||
|
transition: width var(--uc-autohide-transition-duration) var(--uc-autohide-transition-type) var(--uc-autohide-sidebar-delay);
|
||||||
|
direction: ltr;
|
||||||
|
&:hover{
|
||||||
|
transition-delay: 0ms;
|
||||||
|
width: var(--uc-sidebar-hover-width);
|
||||||
|
}
|
||||||
|
&:-moz-locale-dir(rtl){
|
||||||
|
transition-property: transform,width !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#sidebar-box[sidebar-positionend]:hover :is(#sidebar-header,#sidebar):-moz-locale-dir(ltr){
|
||||||
|
transform: translateX(0);
|
||||||
|
transition-delay: 0ms !important;
|
||||||
|
}
|
||||||
|
#sidebar-box:not([sidebar-positionend]):hover .sidebar-browser-stack:-moz-locale-dir(rtl){
|
||||||
|
transform: translateX(calc(-1 * var(--uc-sidebar-hover-width) + var(--uc-sidebar-width)));
|
||||||
|
}
|
||||||
|
#sidebar-box[sidebar-positionend]:hover > .sidebar-browser-stack:-moz-locale-dir(rtl){
|
||||||
|
transform: translateX(calc(var(--uc-sidebar-hover-width) - var(--uc-sidebar-width)));
|
||||||
|
transition-delay: 0ms !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
|
@ -10,15 +10,7 @@ let
|
||||||
sha256 = "1fzKmknfVlEYwqeXgbKITbb2/PJ023iJyMz6vak3qh4=";
|
sha256 = "1fzKmknfVlEYwqeXgbKITbb2/PJ023iJyMz6vak3qh4=";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
lsp-format = pkgs.vimUtils.buildVimPlugin {
|
|
||||||
name = "lsp-format";
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "lukas-reineke";
|
|
||||||
repo = "lsp-format.nvim";
|
|
||||||
rev = "84e117b99bb2bc0d0c8122e2b256046f046f8aff";
|
|
||||||
sha256 = "rs3NTZwWdsmBGXnrgUeVxUiNjbN/ULxJHifPYJD9mT4=";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
my-lspsaga = pkgs.vimUtils.buildVimPlugin {
|
my-lspsaga = pkgs.vimUtils.buildVimPlugin {
|
||||||
name = "lspsaga.nvim";
|
name = "lspsaga.nvim";
|
||||||
src = pkgs.fetchFromGitHub {
|
src = pkgs.fetchFromGitHub {
|
||||||
|
@ -66,16 +58,6 @@ let
|
||||||
};
|
};
|
||||||
meta.homepage = "https://github.com/folke/which-key.nvim/";
|
meta.homepage = "https://github.com/folke/which-key.nvim/";
|
||||||
};
|
};
|
||||||
scnvim = pkgs.vimUtils.buildVimPlugin {
|
|
||||||
pname = "scnvim";
|
|
||||||
version = "2022-06-04";
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "davidgranstrom";
|
|
||||||
repo = "scnvim";
|
|
||||||
rev = "746cc0db820d02a9c36b8f9ba2eac9725fa73107";
|
|
||||||
sha256 = "kvSwS6FNUY2Ue84NhWLLcm0ldLMSp4WqQ7s6TUoX6Cc=";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
yuck-vim = pkgs.vimUtils.buildVimPlugin {
|
yuck-vim = pkgs.vimUtils.buildVimPlugin {
|
||||||
pname = "yuck.vim";
|
pname = "yuck.vim";
|
||||||
version = "2021-08-09";
|
version = "2021-08-09";
|
||||||
|
@ -132,11 +114,6 @@ let
|
||||||
tasklib
|
tasklib
|
||||||
pynvim
|
pynvim
|
||||||
six
|
six
|
||||||
pylsp-mypy
|
|
||||||
#pyls-isort
|
|
||||||
#pyls-black
|
|
||||||
black
|
|
||||||
isort
|
|
||||||
# other python packages you want
|
# other python packages you want
|
||||||
];
|
];
|
||||||
python-with-my-packages = pkgs.python3.withPackages my-python-packages;
|
python-with-my-packages = pkgs.python3.withPackages my-python-packages;
|
||||||
|
@ -205,7 +182,7 @@ in
|
||||||
set nobackup
|
set nobackup
|
||||||
set nowritebackup
|
set nowritebackup
|
||||||
" Better display for messages
|
" Better display for messages
|
||||||
set cmdheight=2
|
set cmdheight=0
|
||||||
" You will have bad experience for diagnostic messages when it's default 4000.
|
" You will have bad experience for diagnostic messages when it's default 4000.
|
||||||
set updatetime=300
|
set updatetime=300
|
||||||
" don't give |ins-completion-menu| messages.
|
" don't give |ins-completion-menu| messages.
|
||||||
|
@ -214,6 +191,7 @@ in
|
||||||
set signcolumn=yes
|
set signcolumn=yes
|
||||||
" highlight row
|
" highlight row
|
||||||
set cursorline
|
set cursorline
|
||||||
|
set autoread
|
||||||
|
|
||||||
let mapleader = "\<Space>"
|
let mapleader = "\<Space>"
|
||||||
let maplocalleader = ","
|
let maplocalleader = ","
|
||||||
|
@ -228,19 +206,7 @@ in
|
||||||
nmap <leader>rt :retab!<CR>
|
nmap <leader>rt :retab!<CR>
|
||||||
vmap <leader>rt :retab!<CR>
|
vmap <leader>rt :retab!<CR>
|
||||||
|
|
||||||
" moving splits with vim movements.
|
" Alt+hjkl navigation now handled by Navigator.nvim plugin
|
||||||
:tnoremap <A-h> <C-\><C-N><C-w>h
|
|
||||||
:tnoremap <A-j> <C-\><C-N><C-w>j
|
|
||||||
:tnoremap <A-k> <C-\><C-N><C-w>k
|
|
||||||
:tnoremap <A-l> <C-\><C-N><C-w>l
|
|
||||||
:inoremap <A-h> <C-\><C-N><C-w>h
|
|
||||||
:inoremap <A-j> <C-\><C-N><C-w>j
|
|
||||||
:inoremap <A-k> <C-\><C-N><C-w>k
|
|
||||||
:inoremap <A-l> <C-\><C-N><C-w>l
|
|
||||||
:nnoremap <A-h> <leader>h
|
|
||||||
:nnoremap <A-j> <leader>j
|
|
||||||
:nnoremap <A-k> <leader>k
|
|
||||||
:nnoremap <A-l> <leader>l
|
|
||||||
:nnoremap <F5> "=strftime("%Y-%m-%d %H:%M")<CR>
|
:nnoremap <F5> "=strftime("%Y-%m-%d %H:%M")<CR>
|
||||||
:inoremap <F5> <C-R>=strftime("%Y-%m-%d %H:%M")<CR>
|
:inoremap <F5> <C-R>=strftime("%Y-%m-%d %H:%M")<CR>
|
||||||
:inoremap <F4> <C-R>=strftime("%H:%M")<CR>
|
:inoremap <F4> <C-R>=strftime("%H:%M")<CR>
|
||||||
|
@ -278,11 +244,11 @@ in
|
||||||
autocmd BufReadPost,BufNewFile c,clj,cljs RainbowParenthesesToggleAll
|
autocmd BufReadPost,BufNewFile c,clj,cljs RainbowParenthesesToggleAll
|
||||||
|
|
||||||
" general commands
|
" general commands
|
||||||
map <leader>t :NERDTreeToggle<CR>
|
map <leader>e :Neotree toggle<CR>
|
||||||
map <leader>s :w<CR>
|
map <leader>s :w<CR>
|
||||||
map <leader>q :q<CR>
|
map <leader>q :q<CR>
|
||||||
map <leader>r :RainbowParenthesesToggleAll<CR>
|
map <leader>r :RainbowParenthesesToggleAll<CR>
|
||||||
nnoremap <BS> :noh<CR>
|
nnoremap <Esc> :noh<CR>
|
||||||
map Q <Nop>
|
map Q <Nop>
|
||||||
nnoremap Y y$
|
nnoremap Y y$
|
||||||
nnoremap <leader>n :vnew<CR>
|
nnoremap <leader>n :vnew<CR>
|
||||||
|
@ -313,11 +279,11 @@ in
|
||||||
:vmap <leader>sy "*y
|
:vmap <leader>sy "*y
|
||||||
:map <leader>sp :r!xclip -o<CR>
|
:map <leader>sp :r!xclip -o<CR>
|
||||||
|
|
||||||
" barbar
|
" buffer navigation (using built-in commands)
|
||||||
nnoremap <silent> gT :BufferPrevious<CR>
|
nnoremap <silent> gT :bprevious<CR>
|
||||||
nnoremap <silent> gt :BufferNext<CR>
|
nnoremap <silent> gt :bnext<CR>
|
||||||
nnoremap <silent> gj :BufferPick<CR>
|
nnoremap <silent> gj :buffers<CR>
|
||||||
nnoremap <silent> gq :BufferClose<CR>
|
nnoremap <silent> gq :bdelete<CR>
|
||||||
|
|
||||||
" git
|
" git
|
||||||
nnoremap <leader>ga :G fetch --all
|
nnoremap <leader>ga :G fetch --all
|
||||||
|
@ -332,7 +298,7 @@ in
|
||||||
" kitaab
|
" kitaab
|
||||||
"map <leader>cz :VimwikiIndex<CR>:ZettelNew
|
"map <leader>cz :VimwikiIndex<CR>:ZettelNew
|
||||||
"map <leader>zs :ZettelSearch<CR>
|
"map <leader>zs :ZettelSearch<CR>
|
||||||
"map <leader>zn :ZettelNew<CR>
|
map <leader>zn :ZettelNew<CR>
|
||||||
"map <leader>zo :ZettelOpen<CR>
|
"map <leader>zo :ZettelOpen<CR>
|
||||||
"map <leader>zf :Telescope oldfiles only_cwd=true<CR>
|
"map <leader>zf :Telescope oldfiles only_cwd=true<CR>
|
||||||
"map <leader>wt :VimwikiMakeTomorrowDiaryNote
|
"map <leader>wt :VimwikiMakeTomorrowDiaryNote
|
||||||
|
@ -368,7 +334,22 @@ in
|
||||||
nnoremap <leader>vsd :Lspsaga show_line_diagnostics<CR>
|
nnoremap <leader>vsd :Lspsaga show_line_diagnostics<CR>
|
||||||
nnoremap <leader>vs :Dasht<Space>
|
nnoremap <leader>vs :Dasht<Space>
|
||||||
nnoremap <leader>vn :Lspsaga diagnostic_jump_prev<CR>
|
nnoremap <leader>vn :Lspsaga diagnostic_jump_prev<CR>
|
||||||
nnoremap <leader>vo :LSoutlineToggle<CR>
|
nnoremap <leader>co :Outline<CR>
|
||||||
|
" Trouble keybindings
|
||||||
|
nnoremap <leader>xx :Trouble diagnostics<CR>
|
||||||
|
nnoremap <leader>xw :Trouble workspace_diagnostics<CR>
|
||||||
|
nnoremap <leader>xd :Trouble document_diagnostics<CR>
|
||||||
|
nnoremap <leader>xl :Trouble loclist<CR>
|
||||||
|
nnoremap <leader>xq :Trouble quickfix<CR>
|
||||||
|
nnoremap <leader>xr :Trouble lsp_references<CR>
|
||||||
|
|
||||||
|
" Yank to system clipboard (y operations only, not d)
|
||||||
|
nnoremap y "+y
|
||||||
|
vnoremap y "+y
|
||||||
|
nnoremap Y "+Y
|
||||||
|
|
||||||
|
" Note-taking keybindings
|
||||||
|
nnoremap <leader>zz :ZkNew { title = vim.fn.input('Title: ') }<CR>
|
||||||
|
|
||||||
" dashboard
|
" dashboard
|
||||||
let g:dashboard_custom_header = [
|
let g:dashboard_custom_header = [
|
||||||
|
@ -427,7 +408,7 @@ in
|
||||||
|
|
||||||
" lua config
|
" lua config
|
||||||
lua <<EOF
|
lua <<EOF
|
||||||
local signs = { Error = " ", Warn = " ", Hint = " ", Info = " " }
|
local signs = { Error = "⮾ ", Warn = "⚠ ", Hint = "💡", Info = " " }
|
||||||
for type, icon in pairs(signs) do
|
for type, icon in pairs(signs) do
|
||||||
local hl = "DiagnosticSign" .. type
|
local hl = "DiagnosticSign" .. type
|
||||||
vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = hl })
|
vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = hl })
|
||||||
|
@ -487,7 +468,7 @@ in
|
||||||
|
|
||||||
|
|
||||||
vim.api.nvim_set_keymap('n', '<leader>vt', ':call v:lua.toggle_diagnostics()<CR>', {noremap = true, silent = true})
|
vim.api.nvim_set_keymap('n', '<leader>vt', ':call v:lua.toggle_diagnostics()<CR>', {noremap = true, silent = true})
|
||||||
|
|
||||||
-- autopairs
|
-- autopairs
|
||||||
require('nvim-autopairs').setup{}
|
require('nvim-autopairs').setup{}
|
||||||
|
|
||||||
|
@ -567,27 +548,109 @@ in
|
||||||
cmp.event:on( 'confirm_done', cmp_autopairs.on_confirm_done({ map_char = { tex = ' ' } }))
|
cmp.event:on( 'confirm_done', cmp_autopairs.on_confirm_done({ map_char = { tex = ' ' } }))
|
||||||
require("luasnip.loaders.from_vscode").lazy_load()
|
require("luasnip.loaders.from_vscode").lazy_load()
|
||||||
|
|
||||||
-- null-ls
|
-- lsp-format removed, using conform.nvim instead
|
||||||
-- being very janky
|
require("nvim-navic").setup {
|
||||||
local null_ls = require("null-ls")
|
icons = {
|
||||||
null_ls.setup({
|
Constant = "π ",
|
||||||
sources = {
|
Function = "ƒ "
|
||||||
null_ls.builtins.diagnostics.shellcheck,
|
}
|
||||||
null_ls.builtins.diagnostics.proselint.with({ filetypes = { "vimwiki", "mail", }, }),
|
}
|
||||||
null_ls.builtins.diagnostics.commitlint,
|
|
||||||
null_ls.builtins.diagnostics.jsonlint,
|
-- Setup neo-tree
|
||||||
-- null_ls.builtins.code_actions.statix,
|
require("neo-tree").setup {}
|
||||||
-- null_ls.builtins.diagnostics.clj_kondo,
|
|
||||||
-- null_ls.builtins.formatting.isort,
|
-- Setup outline
|
||||||
-- null_ls.builtins.formatting.black,
|
require("outline").setup {}
|
||||||
|
|
||||||
|
-- Setup trouble
|
||||||
|
require("trouble").setup {}
|
||||||
|
|
||||||
|
-- Setup noice for floating command palette and notifications
|
||||||
|
require("noice").setup({
|
||||||
|
cmdline = {
|
||||||
|
enabled = true,
|
||||||
|
view = "cmdline_popup",
|
||||||
|
},
|
||||||
|
messages = {
|
||||||
|
enabled = true,
|
||||||
|
},
|
||||||
|
popupmenu = {
|
||||||
|
enabled = true,
|
||||||
|
},
|
||||||
|
notify = {
|
||||||
|
enabled = true,
|
||||||
|
view = "notify",
|
||||||
|
},
|
||||||
|
lsp = {
|
||||||
|
progress = {
|
||||||
|
enabled = true,
|
||||||
|
format = "lsp_progress",
|
||||||
|
format_done = "lsp_progress_done",
|
||||||
|
throttle = 1000 / 30, -- frequency to update lsp progress message
|
||||||
|
view = "mini",
|
||||||
|
},
|
||||||
|
override = {
|
||||||
|
["vim.lsp.util.convert_input_to_markdown_lines"] = true,
|
||||||
|
["vim.lsp.util.stylize_markdown"] = true,
|
||||||
|
["cmp.entry.get_documentation"] = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
presets = {
|
||||||
|
command_palette = true,
|
||||||
|
long_message_to_split = true,
|
||||||
|
inc_rename = false,
|
||||||
|
lsp_doc_border = false,
|
||||||
|
},
|
||||||
|
views = {
|
||||||
|
cmdline_popup = {
|
||||||
|
border = {
|
||||||
|
style = "rounded",
|
||||||
|
padding = { 0, 1 },
|
||||||
|
},
|
||||||
|
filter_options = {},
|
||||||
|
win_options = {
|
||||||
|
winhighlight = "NormalFloat:NormalFloat,FloatBorder:FloatBorder",
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
-- Setup lspconfig
|
-- Setup barbar (tabline with icons)
|
||||||
require("lsp-format").setup {}
|
require'barbar'.setup {
|
||||||
require("nvim-navic").setup {}
|
icons = {
|
||||||
local format = require("lsp-format")
|
filetype = {
|
||||||
|
enabled = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
local navic = require("nvim-navic")
|
local navic = require("nvim-navic")
|
||||||
|
|
||||||
|
-- Setup conform.nvim for formatting
|
||||||
|
require("conform").setup({
|
||||||
|
formatters_by_ft = {
|
||||||
|
javascript = { "prettier", "lsp" },
|
||||||
|
typescript = { "prettier", "lsp" },
|
||||||
|
javascriptreact = { "prettier", "lsp" },
|
||||||
|
typescriptreact = { "prettier", "lsp" },
|
||||||
|
json = { "prettier", "lsp" },
|
||||||
|
html = { "prettier", "lsp" },
|
||||||
|
css = { "prettier", "lsp" },
|
||||||
|
yaml = { "prettier", "lsp" },
|
||||||
|
rust = { "lsp" },
|
||||||
|
go = { "lsp" },
|
||||||
|
lua = { "lsp" },
|
||||||
|
nix = { "nixfmt-rfc-style" },
|
||||||
|
clojure = { "lsp" },
|
||||||
|
fennel = { "lsp" },
|
||||||
|
terraform = { "lsp" },
|
||||||
|
bash = { "shfmt" },
|
||||||
|
sh = { "shfmt" },
|
||||||
|
},
|
||||||
|
format_on_save = {
|
||||||
|
timeout_ms = 500,
|
||||||
|
lsp_fallback = true,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
-- lspsaga, code_action lightbulb is annoying
|
-- lspsaga, code_action lightbulb is annoying
|
||||||
local saga = require('lspsaga')
|
local saga = require('lspsaga')
|
||||||
|
@ -635,21 +698,20 @@ in
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
local servers = { 'clojure_lsp', 'terraform_lsp', 'zls', 'pyright', 'rust_analyzer', 'tsserver', 'lua_ls', 'nil_ls', 'gopls'}
|
local servers = { 'clojure_lsp', 'terraform_lsp', 'zls', 'pyright', 'rust_analyzer', 'ts_ls', 'lua_ls', 'nil_ls', 'gopls', 'bashls'}
|
||||||
for _, lsp in ipairs(servers) do
|
for _, lsp in ipairs(servers) do
|
||||||
lspconfig[lsp].setup {
|
lspconfig[lsp].setup {
|
||||||
on_attach = function(client, bufnr)
|
on_attach = function(client, bufnr)
|
||||||
format.on_attach(client)
|
|
||||||
navic.attach(client, bufnr)
|
navic.attach(client, bufnr)
|
||||||
end,
|
end,
|
||||||
capabilities = capabilities,
|
capabilities = capabilities,
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
-- fennel-ls doesn't support gps
|
-- fennel-ls doesn't support navic
|
||||||
lspconfig['fennel-ls'].setup {
|
lspconfig['fennel-ls'].setup {
|
||||||
on_attach = function(client, bufnr)
|
on_attach = function(client, bufnr)
|
||||||
format.on_attach(client)
|
-- fennel-ls setup without navic
|
||||||
end,
|
end,
|
||||||
capabilities = capabilities,
|
capabilities = capabilities,
|
||||||
}
|
}
|
||||||
|
@ -702,7 +764,7 @@ in
|
||||||
function()
|
function()
|
||||||
local msg = 'No Active Lsp'
|
local msg = 'No Active Lsp'
|
||||||
local buf_ft = vim.api.nvim_buf_get_option(0, 'filetype')
|
local buf_ft = vim.api.nvim_buf_get_option(0, 'filetype')
|
||||||
local clients = vim.lsp.get_active_clients()
|
local clients = vim.lsp.get_clients()
|
||||||
if next(clients) == nil then
|
if next(clients) == nil then
|
||||||
return msg
|
return msg
|
||||||
end
|
end
|
||||||
|
@ -728,7 +790,7 @@ in
|
||||||
local map = vim.api.nvim_set_keymap
|
local map = vim.api.nvim_set_keymap
|
||||||
local opts = { noremap = true, silent = true }
|
local opts = { noremap = true, silent = true }
|
||||||
map('n', '<TAB>', '<CMD>lua require("FTerm").toggle()<CR>', opts)
|
map('n', '<TAB>', '<CMD>lua require("FTerm").toggle()<CR>', opts)
|
||||||
map('t', '<A-i>', '<C-\\><C-n><CMD>lua require("FTerm").toggle()<CR>', opts)
|
map('t', '<TAB>', '<C-\\><C-n><CMD>lua require("FTerm").toggle()<CR>', opts)
|
||||||
|
|
||||||
-- Custom functions
|
-- Custom functions
|
||||||
function update_date()
|
function update_date()
|
||||||
|
@ -765,11 +827,17 @@ in
|
||||||
)
|
)
|
||||||
|
|
||||||
-- auto session
|
-- auto session
|
||||||
|
vim.o.sessionoptions="blank,buffers,curdir,folds,help,tabpages,winsize,winpos,terminal,localoptions"
|
||||||
require('auto-session').setup {
|
require('auto-session').setup {
|
||||||
log_level = 'info',
|
log_level = 'error',
|
||||||
auto_session_suppress_dirs = {'~/'}
|
auto_session_suppress_dirs = {'~/', '/tmp', '/'},
|
||||||
|
auto_session_enable_last_session = false,
|
||||||
|
auto_session_root_dir = vim.fn.stdpath('data').."/sessions/",
|
||||||
|
auto_session_enabled = true,
|
||||||
|
auto_save_enabled = nil,
|
||||||
|
auto_restore_enabled = nil,
|
||||||
|
auto_session_create_enabled = nil,
|
||||||
}
|
}
|
||||||
vim.o.sessionoptions="blank,buffers,curdir,folds,help,tabpages,winsize,winpos,terminal"
|
|
||||||
|
|
||||||
require("which-key").setup{}
|
require("which-key").setup{}
|
||||||
require('leap').set_default_keymaps()
|
require('leap').set_default_keymaps()
|
||||||
|
@ -802,7 +870,7 @@ in
|
||||||
|
|
||||||
-- zk
|
-- zk
|
||||||
require("zk").setup()
|
require("zk").setup()
|
||||||
vim.api.nvim_set_keymap("n", "<leader>zn", "<Cmd>ZkNew { title = vim.fn.input('Title: ') }<CR>", opts)
|
-- vim.api.nvim_set_keymap("n", "<leader>zn", "<Cmd>ZkNew { title = vim.fn.input('Title: ') }<CR>", opts)
|
||||||
|
|
||||||
-- Open notes.
|
-- Open notes.
|
||||||
vim.api.nvim_set_keymap("n", "<leader>zo", "<Cmd>ZkNotes { sort = { 'modified' } }<CR>", opts)
|
vim.api.nvim_set_keymap("n", "<leader>zo", "<Cmd>ZkNotes { sort = { 'modified' } }<CR>", opts)
|
||||||
|
@ -818,9 +886,9 @@ in
|
||||||
|
|
||||||
-- Create a new note after asking for its title.
|
-- Create a new note after asking for its title.
|
||||||
-- This overrides the global `<leader>zn` mapping to create the note in the same directory as the current buffer.
|
-- This overrides the global `<leader>zn` mapping to create the note in the same directory as the current buffer.
|
||||||
map("n", "<leader>zn", "<Cmd>ZkNew { dir = vim.fn.expand('%:p:h'), title = vim.fn.input('Title: ') }<CR>", opts)
|
-- map("n", "<leader>zn", "<Cmd>ZkNew { dir = vim.fn.expand('%:p:h'), title = vim.fn.input('Title: ') }<CR>", opts)
|
||||||
-- Create a new note in the same directory as the current buffer, using the current selection for title.
|
-- Create a new note in the same directory as the current buffer, using the current selection for title.
|
||||||
map("v", "<leader>znt", ":'<,'>ZkNewFromTitleSelection { dir = vim.fn.expand('%:p:h') }<CR>", opts)
|
-- map("v", "<leader>znt", ":'<,'>ZkNewFromTitleSelection { dir = vim.fn.expand('%:p:h') }<CR>", opts)
|
||||||
-- Create a new note in the same directory as the current buffer, using the current selection for note content and asking for its title.
|
-- Create a new note in the same directory as the current buffer, using the current selection for note content and asking for its title.
|
||||||
map("v", "<leader>znc", ":'<,'>ZkNewFromContentSelection { dir = vim.fn.expand('%:p:h'), title = vim.fn.input('Title: ') }<CR>", opts)
|
map("v", "<leader>znc", ":'<,'>ZkNewFromContentSelection { dir = vim.fn.expand('%:p:h'), title = vim.fn.input('Title: ') }<CR>", opts)
|
||||||
|
|
||||||
|
@ -886,6 +954,27 @@ in
|
||||||
auto_display = false -- WIP automatic markdown image display, may be prone to breaking
|
auto_display = false -- WIP automatic markdown image display, may be prone to breaking
|
||||||
}
|
}
|
||||||
|
|
||||||
|
-- Setup Navigator.nvim
|
||||||
|
require('Navigator').setup {
|
||||||
|
disable_on_zoom = true,
|
||||||
|
mux = 'auto', -- auto-detect tmux
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Set up Navigator.nvim keybindings
|
||||||
|
vim.keymap.set({'n', 't'}, '<M-h>', '<CMD>NavigatorLeft<CR>')
|
||||||
|
vim.keymap.set({'n', 't'}, '<M-j>', '<CMD>NavigatorDown<CR>')
|
||||||
|
vim.keymap.set({'n', 't'}, '<M-k>', '<CMD>NavigatorUp<CR>')
|
||||||
|
vim.keymap.set({'n', 't'}, '<M-l>', '<CMD>NavigatorRight<CR>')
|
||||||
|
|
||||||
|
-- Disable Ctrl+V in nvim so Kitty can handle paste
|
||||||
|
vim.keymap.set({'n', 'v', 'i'}, '<C-v>', '<Nop>', {noremap = true, silent = true})
|
||||||
|
|
||||||
|
-- Pane resizing with Alt+Shift+hjkl (to match tmux)
|
||||||
|
vim.keymap.set('n', '<M-S-h>', '<Cmd>vertical resize -2<CR>', {silent = true})
|
||||||
|
vim.keymap.set('n', '<M-S-j>', '<Cmd>resize -2<CR>', {silent = true})
|
||||||
|
vim.keymap.set('n', '<M-S-k>', '<Cmd>resize +2<CR>', {silent = true})
|
||||||
|
vim.keymap.set('n', '<M-S-l>', '<Cmd>vertical resize +2<CR>', {silent = true})
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
'';
|
'';
|
||||||
|
@ -908,8 +997,11 @@ in
|
||||||
statix
|
statix
|
||||||
nodePackages.typescript
|
nodePackages.typescript
|
||||||
nodePackages.typescript-language-server
|
nodePackages.typescript-language-server
|
||||||
|
nodePackages.bash-language-server
|
||||||
luajitPackages.lua-lsp
|
luajitPackages.lua-lsp
|
||||||
fennel-ls
|
fennel-ls
|
||||||
|
nixfmt-rfc-style
|
||||||
|
shfmt
|
||||||
zk
|
zk
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -917,7 +1009,11 @@ in
|
||||||
# ui
|
# ui
|
||||||
lualine-nvim
|
lualine-nvim
|
||||||
fzf-vim
|
fzf-vim
|
||||||
nerdtree
|
neo-tree-nvim
|
||||||
|
outline-nvim
|
||||||
|
noice-nvim
|
||||||
|
nui-nvim
|
||||||
|
trouble-nvim
|
||||||
neovim-ayu
|
neovim-ayu
|
||||||
rainbow_parentheses-vim
|
rainbow_parentheses-vim
|
||||||
vim-surround
|
vim-surround
|
||||||
|
@ -958,7 +1054,6 @@ in
|
||||||
|
|
||||||
# lsp stuff
|
# lsp stuff
|
||||||
# nvim-lint
|
# nvim-lint
|
||||||
null-ls-nvim
|
|
||||||
nvim-lspconfig
|
nvim-lspconfig
|
||||||
nvim-cmp
|
nvim-cmp
|
||||||
cmp-nvim-lsp
|
cmp-nvim-lsp
|
||||||
|
@ -971,7 +1066,7 @@ in
|
||||||
nvim-autopairs
|
nvim-autopairs
|
||||||
cmp_luasnip
|
cmp_luasnip
|
||||||
luasnip
|
luasnip
|
||||||
lsp-format
|
conform-nvim
|
||||||
friendly-snippets
|
friendly-snippets
|
||||||
lspkind-nvim
|
lspkind-nvim
|
||||||
|
|
||||||
|
@ -991,6 +1086,7 @@ in
|
||||||
nvim-luapad
|
nvim-luapad
|
||||||
scnvim
|
scnvim
|
||||||
leap
|
leap
|
||||||
|
Navigator-nvim
|
||||||
vim-beancount
|
vim-beancount
|
||||||
# vimtex
|
# vimtex
|
||||||
# custom
|
# custom
|
||||||
|
@ -999,7 +1095,7 @@ in
|
||||||
# vim-processing
|
# vim-processing
|
||||||
];
|
];
|
||||||
withPython3 = true;
|
withPython3 = true;
|
||||||
extraPython3Packages = pkgs: with pkgs; [ tasklib six ];
|
extraPython3Packages = pkgs: with pkgs; [ tasklib six packaging ];
|
||||||
vimAlias = true;
|
vimAlias = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -57,3 +57,29 @@ setw -g window-status-bell-style 'fg=yellow bg=green bold'
|
||||||
|
|
||||||
# messages
|
# messages
|
||||||
set -g message-style 'fg=yellow bg=green bold'
|
set -g message-style 'fg=yellow bg=green bold'
|
||||||
|
|
||||||
|
# Unbind Ctrl+V so it passes through to Kitty for paste
|
||||||
|
unbind C-v
|
||||||
|
|
||||||
|
# Vim-aware pane navigation with Alt+hjkl
|
||||||
|
is_vim="ps -o state= -o comm= -t '#{pane_tty}' | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'"
|
||||||
|
bind-key -n M-h if-shell "$is_vim" "send-keys M-h" "select-pane -L"
|
||||||
|
bind-key -n M-j if-shell "$is_vim" "send-keys M-j" "select-pane -D"
|
||||||
|
bind-key -n M-k if-shell "$is_vim" "send-keys M-k" "select-pane -U"
|
||||||
|
bind-key -n M-l if-shell "$is_vim" "send-keys M-l" "select-pane -R"
|
||||||
|
|
||||||
|
# Window navigation with Alt+n/p
|
||||||
|
bind-key -n M-n next-window
|
||||||
|
bind-key -n M-p previous-window
|
||||||
|
|
||||||
|
# Pane resizing with Alt+Shift+hjkl
|
||||||
|
bind-key -n M-S-h resize-pane -L 2
|
||||||
|
bind-key -n M-S-j resize-pane -D 2
|
||||||
|
bind-key -n M-S-k resize-pane -U 2
|
||||||
|
bind-key -n M-S-l resize-pane -R 2
|
||||||
|
|
||||||
|
# Copy mode setup
|
||||||
|
bind v copy-mode
|
||||||
|
setw -g mode-keys vi
|
||||||
|
bind-key -T copy-mode-vi 'v' send -X begin-selection
|
||||||
|
bind-key -T copy-mode-vi 'y' send -X copy-pipe-and-cancel 'xclip -in -selection clipboard'
|
||||||
|
|
|
@ -66,6 +66,10 @@
|
||||||
address = "192.168.1.240";
|
address = "192.168.1.240";
|
||||||
prefixLength = 24;
|
prefixLength = 24;
|
||||||
}];
|
}];
|
||||||
|
ipv6.addresses = [{
|
||||||
|
address = "fd7d:587a:4300:1::240";
|
||||||
|
prefixLength = 64;
|
||||||
|
}];
|
||||||
ipv4.routes = [{ address = "192.168.1.0"; prefixLength = 24; via = "192.168.1.1"; }];
|
ipv4.routes = [{ address = "192.168.1.0"; prefixLength = 24; via = "192.168.1.1"; }];
|
||||||
useDHCP = false;
|
useDHCP = false;
|
||||||
};
|
};
|
||||||
|
|
|
@ -56,17 +56,10 @@
|
||||||
# seafile
|
# seafile
|
||||||
};
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [ lm_sensors ];
|
||||||
services.nginx.virtualHosts."mast.mossnet.lan" = {
|
hardware.fancontrol = {
|
||||||
enableACME = false;
|
enable = false;
|
||||||
forceSSL = false;
|
config = '''';
|
||||||
|
|
||||||
locations."/" = {
|
|
||||||
extraConfig = ''
|
|
||||||
proxy_pass http://localhost:5731/;
|
|
||||||
proxy_set_header X-Forwarded-Host $host;
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
age.secrets.box-wg.file = "${self}/secrets/box-wg.age";
|
age.secrets.box-wg.file = "${self}/secrets/box-wg.age";
|
||||||
|
|
|
@ -38,8 +38,7 @@
|
||||||
pkgs.lib.mkForce [ ]; # Normally ["network-online.target"]
|
pkgs.lib.mkForce [ ]; # Normally ["network-online.target"]
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.gnupg.agent.enable = true;
|
|
||||||
programs.gnupg.agent.pinentryPackage = pkgs.pinentry-gnome3;
|
|
||||||
|
|
||||||
fileSystems."/mnt/ftp" = {
|
fileSystems."/mnt/ftp" = {
|
||||||
device = "192.168.1.240:/home/ftp";
|
device = "192.168.1.240:/home/ftp";
|
||||||
|
|
|
@ -220,6 +220,8 @@ in {
|
||||||
siji
|
siji
|
||||||
font-awesome
|
font-awesome
|
||||||
proggyfonts
|
proggyfonts
|
||||||
(nerdfonts.override { fonts = [ "FiraCode" "DroidSansMono" "Iosevka" ]; })
|
nerd-fonts.fira-code
|
||||||
|
nerd-fonts.droid-sans-mono
|
||||||
|
nerd-fonts.iosevka
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,9 +53,9 @@ in {
|
||||||
# private-address = "192.168.1.0/24";
|
# private-address = "192.168.1.0/24";
|
||||||
cache-min-ttl = 0;
|
cache-min-ttl = 0;
|
||||||
serve-expired = "yes";
|
serve-expired = "yes";
|
||||||
interface = [ "0.0.0.0" ];
|
interface = [ "0.0.0.0" "::" ];
|
||||||
access-control =
|
access-control =
|
||||||
[ "127.0.0.0/8 allow" "192.168.1.0/24 allow" "10.0.69.0/24 allow" ];
|
[ "127.0.0.0/8 allow" "192.168.1.0/24 allow" "10.0.69.0/24 allow" "::1 allow" "fd7d:587a:4300:1::/64 allow" ];
|
||||||
access-control-view = "10.0.69.0/24 wireguard";
|
access-control-view = "10.0.69.0/24 wireguard";
|
||||||
# so-reuseport = "yes";
|
# so-reuseport = "yes";
|
||||||
tls-upstream = "yes";
|
tls-upstream = "yes";
|
||||||
|
|
|
@ -47,9 +47,9 @@
|
||||||
# The registration file is automatically generated after starting the appservice for the first time.
|
# The registration file is automatically generated after starting the appservice for the first time.
|
||||||
# cp /var/lib/matrix-appservice-discord/discord-registration.yaml /var/lib/matrix-synapse/
|
# cp /var/lib/matrix-appservice-discord/discord-registration.yaml /var/lib/matrix-synapse/
|
||||||
# chown matrix-synapse:matrix-synapse /var/lib/matrix-synapse/discord-registration.yaml
|
# chown matrix-synapse:matrix-synapse /var/lib/matrix-synapse/discord-registration.yaml
|
||||||
"/var/lib/matrix-synapse/telegram-registration.yaml"
|
# "/var/lib/matrix-synapse/telegram-registration.yaml"
|
||||||
"/var/lib/matrix-synapse/signal-registration.yaml"
|
"/var/lib/matrix-synapse/signal-registration.yaml"
|
||||||
"/var/lib/matrix-as-whatsapp/whatsapp-registration.yaml"
|
#"/var/lib/matrix-as-whatsapp/whatsapp-registration.yaml"
|
||||||
"/var/lib/matrix-as-discord/discord-registration.yaml"
|
"/var/lib/matrix-as-discord/discord-registration.yaml"
|
||||||
# "/var/lib/matrix-synapse/slack-registration.yaml"
|
# "/var/lib/matrix-synapse/slack-registration.yaml"
|
||||||
# "/var/lib/matrix-synapse/discord-registration.yaml"
|
# "/var/lib/matrix-synapse/discord-registration.yaml"
|
||||||
|
|
|
@ -2,17 +2,17 @@
|
||||||
|
|
||||||
{
|
{
|
||||||
# Mautrix-signal settings
|
# Mautrix-signal settings
|
||||||
services.signald.enable = true;
|
# services.signald.enable = true;
|
||||||
systemd.services.matrix-as-signal = {
|
# systemd.services.matrix-as-signal = {
|
||||||
requires = [ "signald.service" ];
|
# requires = [ "signald.service" ];
|
||||||
after = [ "signald.service" ];
|
# after = [ "signald.service" ];
|
||||||
unitConfig = {
|
# unitConfig = {
|
||||||
JoinsNamespaceOf = "signald.service";
|
# JoinsNamespaceOf = "signald.service";
|
||||||
};
|
# };
|
||||||
path = [
|
# path = [
|
||||||
pkgs.ffmpeg # voice messages need `ffmpeg`
|
# pkgs.ffmpeg # voice messages need `ffmpeg`
|
||||||
];
|
# ];
|
||||||
};
|
# };
|
||||||
|
|
||||||
services.matrix-appservices = {
|
services.matrix-appservices = {
|
||||||
addRegistrationFiles = false;
|
addRegistrationFiles = false;
|
||||||
|
@ -25,28 +25,28 @@
|
||||||
# package = pkgs.mautrix-whatsapp;
|
# package = pkgs.mautrix-whatsapp;
|
||||||
# };
|
# };
|
||||||
|
|
||||||
# discord = {
|
discord = {
|
||||||
# port = 29188;
|
port = 29188;
|
||||||
# format = "mautrix-go";
|
format = "mautrix-go";
|
||||||
# package = pkgs.unstable.mautrix-discord;
|
package = pkgs.mautrix-discord;
|
||||||
# };
|
|
||||||
|
|
||||||
signal = {
|
|
||||||
port = 29184;
|
|
||||||
format = "mautrix-python";
|
|
||||||
package = pkgs.mautrix-signal;
|
|
||||||
serviceConfig = {
|
|
||||||
StateDirectory = [ "matrix-as-signal" "signald" ];
|
|
||||||
SupplementaryGroups = [ "signald" ];
|
|
||||||
TimeoutStopSec = 1; # work around the service ignoring SIGTERM, see https://gitlab.com/coffeetables/nix-matrix-appservices/-/issues/12
|
|
||||||
User = lib.mkForce config.services.signald.user;
|
|
||||||
Group = lib.mkForce config.services.signald.group;
|
|
||||||
};
|
|
||||||
settings.signal = {
|
|
||||||
socket_path = config.services.signald.socketPath;
|
|
||||||
outgoing_attachment_dir = "/var/lib/signald/tmp";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# signal = {
|
||||||
|
# port = 29184;
|
||||||
|
# format = "mautrix-python";
|
||||||
|
# package = pkgs.mautrix-signal;
|
||||||
|
# serviceConfig = {
|
||||||
|
# # StateDirectory = [ "matrix-as-signal" "signald" ];
|
||||||
|
# # SupplementaryGroups = [ "signald" ];
|
||||||
|
# TimeoutStopSec = 1; # work around the service ignoring SIGTERM, see https://gitlab.com/coffeetables/nix-matrix-appservices/-/issues/12
|
||||||
|
# # User = lib.mkForce config.services.signald.user;
|
||||||
|
# # Group = lib.mkForce config.services.signald.group;
|
||||||
|
# };
|
||||||
|
# # settings.signal = {
|
||||||
|
# # socket_path = config.services.signald.socketPath;
|
||||||
|
# # outgoing_attachment_dir = "/var/lib/signald/tmp";
|
||||||
|
# # };
|
||||||
|
# };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,7 +22,8 @@
|
||||||
bespokesynth
|
bespokesynth
|
||||||
lsp-plugins
|
lsp-plugins
|
||||||
helio-workstation
|
helio-workstation
|
||||||
projectm # milkdrop visualizer
|
# projectm # milkdrop visualizer
|
||||||
|
# i think it's projectm-sdl-cpp now
|
||||||
|
|
||||||
# DAWs
|
# DAWs
|
||||||
# ardour
|
# ardour
|
||||||
|
@ -30,7 +31,7 @@
|
||||||
# renoise
|
# renoise
|
||||||
];
|
];
|
||||||
|
|
||||||
hardware.pulseaudio.enable = lib.mkForce false;
|
services.pulseaudio.enable = false;
|
||||||
security.rtkit.enable = false;
|
security.rtkit.enable = false;
|
||||||
|
|
||||||
services.pipewire = {
|
services.pipewire = {
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
package = pkgs.radicale;
|
package = pkgs.radicale;
|
||||||
settings = {
|
settings = {
|
||||||
server.hosts = [ "0.0.0.0:5252" ];
|
server.hosts = [ "0.0.0.0:5252" ];
|
||||||
|
auth.type = "none";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -36,6 +36,10 @@
|
||||||
knownVulnerabilities = [];
|
knownVulnerabilities = [];
|
||||||
});
|
});
|
||||||
|
|
||||||
|
mautrix-discord = prev.mautrix-discord.overrideAttrs (attrs: rec {
|
||||||
|
license = "";
|
||||||
|
});
|
||||||
|
|
||||||
# Need to do server and agent too, maybe
|
# Need to do server and agent too, maybe
|
||||||
# woodpecker-cli-next =
|
# woodpecker-cli-next =
|
||||||
# let
|
# let
|
||||||
|
|
|
@ -1,29 +0,0 @@
|
||||||
{ lib, buildGoModule, fetchFromGitHub, olm }:
|
|
||||||
|
|
||||||
buildGoModule rec {
|
|
||||||
pname = "mautrix-discord";
|
|
||||||
version = "unstable-2022-11-04";
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "mautrix";
|
|
||||||
repo = "discord";
|
|
||||||
rev = "f53975cc91e3c643a722adf0d3e0dfb98d0127a2";
|
|
||||||
hash = "sha256-xUALcN5oQfwC6gmOeygCkOAXJrJzNitBxHRFAKKgFvE=";
|
|
||||||
};
|
|
||||||
|
|
||||||
buildInputs = [ olm ];
|
|
||||||
|
|
||||||
vendorHash = "sha256-yday2mSnPwuhXWkCG4XY7qoBl3DXHcSvzBoZbjgYz/c=";
|
|
||||||
|
|
||||||
ldflags = [ "-s" "-w" ]; # https://github.com/NixOS/nixpkgs/issues/177698
|
|
||||||
|
|
||||||
doCheck = false; # No tests available
|
|
||||||
|
|
||||||
meta = with lib; {
|
|
||||||
homepage = "https://go.mau.fi/mautrix-discord";
|
|
||||||
description = "Matrix to Discord hybrid puppeting/relaybot bridge";
|
|
||||||
license = licenses.agpl3Plus;
|
|
||||||
maintainers = with maintainers; [ robin ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in a new issue