Compare commits
21 Commits
0ed7a50359
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 0c1452f138 | |||
| e1d45bcf0b | |||
| cc86feef57 | |||
| a26bfb1501 | |||
| 7dd94c7b96 | |||
| 2e35a88e99 | |||
| 2f1e780e5d | |||
| a60952237e | |||
| 43aad292d8 | |||
| 5e7204bd56 | |||
| 2370d5ace1 | |||
| 790b0b3451 | |||
| cd55626328 | |||
| 0f8167282e | |||
| 234e29f367 | |||
| 13ee868d5d | |||
| d9d6418d6a | |||
| a39f1f7967 | |||
| 4637065e94 | |||
| 86bf2150a7 | |||
| dd6f9a89cb |
6
flake.lock
generated
6
flake.lock
generated
@@ -49,11 +49,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1770112394,
|
||||
"narHash": "sha256-H8d0WplmDeuvOM4bsHNt77T6OWiSJMaTP6UG1XyMNxA=",
|
||||
"lastModified": 1772137435,
|
||||
"narHash": "sha256-dqkfxxpIiIs4wdWhT4lfQi1lfA0CgIftPiYGvw0tUOk=",
|
||||
"owner": "Lassulus",
|
||||
"repo": "wrappers",
|
||||
"rev": "23625835eb91d925c498780f5a37442ead1ae8e5",
|
||||
"rev": "4e12f430ae705d9bbb591ca9c51cbccbee050a23",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
||||
45
flake.nix
45
flake.nix
@@ -34,10 +34,13 @@
|
||||
|
||||
overlays.default = final: prev: {
|
||||
niphas-terminal = prev.alacritty;
|
||||
niphas-web-browser = prev.qutebrowser;
|
||||
niphas-web-browser = prev.firefox;
|
||||
niphas-file-browser = prev.pcmanfm;
|
||||
niphas-runner = prev.writers.writeDashBin "niphas-runner" "${prev.lib.getExe prev.rofi} -show run";
|
||||
niphas-locker = prev.swaylock;
|
||||
niphas-screenshot = prev.writers.writeDashBin "niphas-screenshot" ''
|
||||
${prev.lib.getExe prev.grim} -g "$(${prev.lib.getExe prev.slurp})" - | ${prev.lib.getExe prev.satty} -f -
|
||||
'';
|
||||
|
||||
niphas-editor = prev.lib.makeOverridable (prev.callPackage packages/vim) { };
|
||||
niphas-bar = import packages/ashell.nix {
|
||||
@@ -48,7 +51,13 @@
|
||||
inherit (inputs) wrappers;
|
||||
pkgs = prev;
|
||||
};
|
||||
niphas-niri = import packages/niri.nix {
|
||||
|
||||
niphas-niri =
|
||||
(import packages/niri.nix {
|
||||
inherit (inputs) wrappers;
|
||||
pkgs = final;
|
||||
}).wrapper;
|
||||
niphas-kanshi = import packages/kanshi.nix {
|
||||
inherit (inputs) wrappers;
|
||||
pkgs = final;
|
||||
};
|
||||
@@ -65,6 +74,28 @@
|
||||
niphas-set-wallpaper = prev.writers.writeDashBin "niphas-set-wallpaper" ''
|
||||
exec ${lib.getExe prev.swaybg} --mode fill --image ${toString final.niphas-wallpaper}
|
||||
'';
|
||||
|
||||
niphas-clipboard-watcher = prev.writers.writeDashBin "niphas-clipboard-watcher" ''
|
||||
exec ${lib.getExe' prev.wl-clipboard "wl-paste"} -t text --watch ${lib.getExe prev.clipman} store
|
||||
'';
|
||||
|
||||
niphas-clipman = prev.writers.writeDashBin "niphas-clipman" ''
|
||||
exec ${lib.getExe prev.clipman} pick --tool rofi
|
||||
'';
|
||||
|
||||
niphas-redshift =
|
||||
let
|
||||
geolocation = [
|
||||
52.5244
|
||||
13.4105
|
||||
];
|
||||
latitude = builtins.elemAt geolocation 0;
|
||||
longitude = builtins.elemAt geolocation 1;
|
||||
in
|
||||
prev.writers.writeDashBin "niphas-redshift" ''
|
||||
exec ${lib.getExe prev.wlsunset} -l ${toString latitude} -L ${toString longitude}
|
||||
'';
|
||||
|
||||
vimv = prev.callPackage packages/vimv.nix { };
|
||||
};
|
||||
|
||||
@@ -73,7 +104,9 @@
|
||||
let
|
||||
pkgs = import inputs.nixpkgs {
|
||||
inherit system;
|
||||
overlays = [ inputs.self.overlays.default ];
|
||||
overlays = [
|
||||
inputs.self.overlays.default
|
||||
];
|
||||
};
|
||||
in
|
||||
{
|
||||
@@ -81,7 +114,13 @@
|
||||
niphas-bar
|
||||
niphas-git
|
||||
niphas-niri
|
||||
niphas-kanshi
|
||||
niphas-editor
|
||||
niphas-wallpaper
|
||||
niphas-set-wallpaper
|
||||
niphas-clipboard-watcher
|
||||
niphas-clipman
|
||||
niphas-redshift
|
||||
vimv
|
||||
;
|
||||
}
|
||||
|
||||
@@ -28,7 +28,10 @@
|
||||
pkgs.wdisplays
|
||||
pkgs.nsxiv
|
||||
pkgs.xdg-desktop-portal
|
||||
pkgs.clipman
|
||||
pkgs.xdg-desktop-portal-gnome
|
||||
pkgs.xwayland-satellite
|
||||
pkgs.wlr-randr
|
||||
|
||||
pkgs.rofi # to provide rofi-sensible-terminal
|
||||
|
||||
@@ -37,8 +40,13 @@
|
||||
pkgs.niphas-terminal
|
||||
pkgs.niphas-web-browser
|
||||
pkgs.niphas-set-wallpaper
|
||||
pkgs.niphas-redshift
|
||||
pkgs.niphas-screenshot
|
||||
pkgs.niphas-clipman
|
||||
pkgs.niphas-clipboard-watcher
|
||||
pkgs.niphas-runner
|
||||
pkgs.niphas-locker
|
||||
pkgs.niphas-kanshi
|
||||
];
|
||||
|
||||
programs.niri = {
|
||||
|
||||
17
packages/kanshi.nix
Normal file
17
packages/kanshi.nix
Normal file
@@ -0,0 +1,17 @@
|
||||
{ wrappers, pkgs }:
|
||||
let
|
||||
kanshi = wrappers.wrapperModules.kanshi.apply {
|
||||
inherit pkgs;
|
||||
configFile.content = ''
|
||||
profile {
|
||||
output "eDP-1" enable
|
||||
}
|
||||
|
||||
profile dual {
|
||||
output eDP-1 mode 1920x1080 position 190,1080 scale 1.25 transform normal
|
||||
output HDMI-A-2 mode 1920x1080@60Hz position 0,0 scale 1 transform normal
|
||||
}
|
||||
'';
|
||||
};
|
||||
in
|
||||
kanshi.wrapper
|
||||
@@ -1,11 +1,7 @@
|
||||
{
|
||||
wrappers,
|
||||
pkgs,
|
||||
screenshotPath ? null,
|
||||
geolocation ? [
|
||||
52.5244
|
||||
13.4105
|
||||
],
|
||||
overwriteSettings ? { },
|
||||
}:
|
||||
let
|
||||
lib = pkgs.lib;
|
||||
@@ -15,14 +11,14 @@ let
|
||||
shadow-color = "#0007";
|
||||
};
|
||||
|
||||
niri = wrappers.wrapperModules.niri.apply {
|
||||
niriWrapper = wrappers.wrapperModules.niri.apply {
|
||||
inherit pkgs;
|
||||
settings = builtins.foldl' lib.recursiveUpdate { } (
|
||||
[
|
||||
{
|
||||
settings = lib.recursiveUpdate {
|
||||
input = {
|
||||
keyboard = {
|
||||
xkb.layout = "de";
|
||||
xkb.variant = "T3";
|
||||
xkb.options = "compose:caps";
|
||||
numlock = null;
|
||||
};
|
||||
touchpad = {
|
||||
@@ -61,20 +57,10 @@ let
|
||||
spawn-at-startup = [
|
||||
(lib.getExe pkgs.niphas-bar)
|
||||
(lib.getExe pkgs.niphas-set-wallpaper)
|
||||
]
|
||||
++ lib.optional (geolocation != null) (
|
||||
let
|
||||
latitude = builtins.elemAt geolocation 0;
|
||||
longitude = builtins.elemAt geolocation 1;
|
||||
in
|
||||
[
|
||||
(lib.getExe pkgs.wlsunset)
|
||||
"-l"
|
||||
(toString latitude)
|
||||
"-L"
|
||||
(toString longitude)
|
||||
]
|
||||
);
|
||||
(lib.getExe pkgs.niphas-clipboard-watcher)
|
||||
(lib.getExe pkgs.niphas-redshift)
|
||||
(lib.getExe pkgs.niphas-kanshi)
|
||||
];
|
||||
hotkey-overlay.skip-at-startup = null;
|
||||
prefer-no-csd = null;
|
||||
animations.slowdown = 0.5; # twice as fast
|
||||
@@ -89,6 +75,8 @@ let
|
||||
"Mod+Return".spawn = lib.getExe pkgs.niphas-terminal;
|
||||
"Mod+D".spawn = lib.getExe pkgs.niphas-runner;
|
||||
"Mod+Shift+W".spawn = lib.getExe pkgs.niphas-locker;
|
||||
"Print".spawn = lib.getExe pkgs.niphas-screenshot;
|
||||
"Mod+Q".spawn = lib.getExe pkgs.niphas-clipman;
|
||||
|
||||
# TODO allow-when-locked
|
||||
"XF86AudioRaiseVolume".spawn-sh = "${wpctl} set-volume @DEFAULT_AUDIO_SINK@ 0.1+ -l 1.0";
|
||||
@@ -103,17 +91,17 @@ let
|
||||
"XF86MonBrightnessDown".spawn-sh = "${lib.getExe pkgs.brightnessctl} --class=backlight set 25%-";
|
||||
|
||||
# TODO repeat=false
|
||||
"Mod+O".toggle-overview = null;
|
||||
"Mod+A".toggle-overview = null;
|
||||
"Mod+Shift+Q".close-window = null;
|
||||
|
||||
"Mod+H".focus-column-left = null;
|
||||
"Mod+J".focus-window-or-workspace-down = null;
|
||||
"Mod+K".focus-window-or-workspace-up = null;
|
||||
"Mod+L".focus-column-right = null;
|
||||
"Mod+Shift+H".move-column-left = null;
|
||||
"Mod+Shift+J".move-window-down-or-to-workspace-down = null;
|
||||
"Mod+Shift+K".move-window-up-or-to-workspace-up = null;
|
||||
"Mod+Shift+L".move-column-right = null;
|
||||
"Mod+H".focus-column-or-monitor-left = null;
|
||||
"Mod+J".focus-monitor-down = null;
|
||||
"Mod+K".focus-monitor-up = null;
|
||||
"Mod+L".focus-column-or-monitor-right = null;
|
||||
"Mod+Shift+H".move-column-left-or-to-monitor-left = null;
|
||||
"Mod+Shift+J".move-column-to-monitor-down = null;
|
||||
"Mod+Shift+K".move-column-to-monitor-up = null;
|
||||
"Mod+Shift+L".move-column-right-or-to-monitor-right = null;
|
||||
"Mod+Home".focus-column-first = null;
|
||||
"Mod+End".focus-column-last = null;
|
||||
"Mod+Shift+Home".move-column-to-first = null;
|
||||
@@ -167,19 +155,7 @@ let
|
||||
"Mod+Shift+E".quit = null;
|
||||
"Ctrl+Alt+Delete".quit = null;
|
||||
};
|
||||
}
|
||||
]
|
||||
++ lib.optional (screenshotPath != null) [
|
||||
{
|
||||
screenshot-path = screenshotPath;
|
||||
binds = {
|
||||
"Print".screenshot = null;
|
||||
"Ctrl+Print".screenshot-screen = null;
|
||||
"Alt+Print".screenshot-window = null;
|
||||
};
|
||||
}
|
||||
]
|
||||
);
|
||||
} overwriteSettings;
|
||||
};
|
||||
in
|
||||
niri.wrapper
|
||||
niriWrapper
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
{
|
||||
neovim,
|
||||
nodejs,
|
||||
vimPlugins,
|
||||
fetchFromGitHub,
|
||||
vimUtils,
|
||||
@@ -14,7 +15,20 @@ neovim.override {
|
||||
configure = {
|
||||
vimAlias = true;
|
||||
viAlias = true;
|
||||
customRC = ''
|
||||
customRC =
|
||||
|
||||
lib.optionalString withCopilot (''
|
||||
luafile ${writeText "copilot.lua" ''
|
||||
require("copilot").setup({
|
||||
suggestion = { enabled = false },
|
||||
panel = { enabled = false },
|
||||
copilot_node_command = '${lib.getExe nodejs}'
|
||||
})
|
||||
|
||||
require("copilot_cmp").setup()
|
||||
''}
|
||||
'')
|
||||
+ ''
|
||||
source ${./shared.vim}
|
||||
source ${./init.vim}
|
||||
let g:snippet_directory = '${vimPlugins.friendly-snippets}'
|
||||
@@ -81,7 +95,10 @@ neovim.override {
|
||||
}
|
||||
)
|
||||
]
|
||||
++ lib.optional withCopilot vimPlugins.copilot-nvim;
|
||||
++ lib.optionals withCopilot [
|
||||
vimPlugins.copilot-lua
|
||||
vimPlugins.copilot-cmp
|
||||
];
|
||||
opt = [
|
||||
csv
|
||||
dhall-vim
|
||||
|
||||
@@ -19,17 +19,23 @@ cmp.setup({
|
||||
luasnip.lsp_expand(args.body)
|
||||
end,
|
||||
},
|
||||
completion = {
|
||||
autocomplete = { require("cmp.types").cmp.TriggerEvent.TextChanged },
|
||||
},
|
||||
mapping = {
|
||||
-- https://github.com/hrsh7th/nvim-cmp/wiki/Example-mappings#super-tab-like-mapping
|
||||
["<C-Space>"] = cmp.mapping.complete(),
|
||||
["<CR>"] = cmp.mapping.confirm({ select = true }),
|
||||
|
||||
["<Tab>"] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_next_item()
|
||||
elseif luasnip.expand_or_jumpable() then
|
||||
luasnip.expand_or_jump()
|
||||
else
|
||||
fallback()
|
||||
cmp.complete()
|
||||
end
|
||||
end, { "i", "s" }),
|
||||
|
||||
["<S-Tab>"] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_prev_item()
|
||||
@@ -41,8 +47,11 @@ cmp.setup({
|
||||
end, { "i", "s" }),
|
||||
},
|
||||
sources = cmp.config.sources({
|
||||
{ name = "nvim_lsp" },
|
||||
{ name = "luasnip" },
|
||||
{ name = "copilot", priority = 1000 },
|
||||
{ name = "nvim_lsp", priority = 800 },
|
||||
{ name = "luasnip", priority = 700 },
|
||||
{ name = "path", priority = 500 },
|
||||
{ name = "buffer", priority = 300 },
|
||||
}),
|
||||
})
|
||||
|
||||
@@ -96,6 +105,7 @@ local language_servers = {
|
||||
gopls = {}, -- gopls
|
||||
denols = {}, -- deno built in
|
||||
bashls = {}, -- bash-language-server
|
||||
ocamllsp = {}, -- ocamllsp
|
||||
lua_ls = {
|
||||
Lua = {
|
||||
runtime = {
|
||||
|
||||
@@ -45,6 +45,17 @@ let g:netrw_winsize = 25
|
||||
call matchadd('colorcolumn', '\%101v', 100)
|
||||
highlight colorcolumn ctermbg=red
|
||||
|
||||
fun! TrimWhitespace()
|
||||
" Skip if the filetype is markdown
|
||||
if &ft =~ 'markdown'
|
||||
return
|
||||
endif
|
||||
let l:save = winsaveview()
|
||||
keeppatterns %s/\s\+$//e
|
||||
call winrestview(l:save)
|
||||
endfun
|
||||
autocmd BufWritePre * call TrimWhitespace()
|
||||
|
||||
" undofile - This allows you to use undos after exiting and restarting
|
||||
" This, like swap and backups, uses .vim-undo first, then ~/.vim/undo
|
||||
" :help undo-persistence
|
||||
|
||||
Reference in New Issue
Block a user