new: packages: bonvim, nixvim configuration of neovim remove: config: hyprland -> declarative remove: config: nvim nixosModules: structure with categories new: configurations: concept of preconfigured modules catarina: disable papermc server catarina: hydra server flake: hydraJobs outputs
This commit is contained in:
parent
26088b3368
commit
008b4ad3a4
4
.editorconfig
Normal file
4
.editorconfig
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
indent_style = "space"
|
||||||
|
indent_size = 4
|
||||||
|
end_of_line = "cr"
|
||||||
|
charset = "utf-8"
|
@ -1,14 +1,16 @@
|
|||||||
{ self, nixpkgs, ... }:
|
{
|
||||||
let
|
self,
|
||||||
|
nixpkgs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
forAllSystems = nixpkgs.lib.genAttrs ["x86_64-linux"];
|
forAllSystems = nixpkgs.lib.genAttrs ["x86_64-linux"];
|
||||||
nixpkgsFor = forAllSystems (system: import nixpkgs {inherit system;});
|
nixpkgsFor = forAllSystems (system: import nixpkgs {inherit system;});
|
||||||
|
in
|
||||||
in forAllSystems(system: let
|
forAllSystems (system: let
|
||||||
pkgs = nixpkgsFor.${system};
|
pkgs = nixpkgsFor.${system};
|
||||||
|
|
||||||
bonfire = self;
|
bonfire = self;
|
||||||
bonfire-lib = self.lib;
|
bonfire-lib = self.lib;
|
||||||
bonfire-pkgs = self.packages.${system};
|
bonfire-pkgs = self.packages.${system};
|
||||||
in {
|
in {
|
||||||
|
|
||||||
})
|
})
|
||||||
|
@ -1,31 +0,0 @@
|
|||||||
[user]
|
|
||||||
name = L-Nafaryus
|
|
||||||
email = l.nafaryus@gmail.com
|
|
||||||
signingKey = 86F1EA98B48FFB19
|
|
||||||
[commit]
|
|
||||||
gpgsign = true
|
|
||||||
[tag]
|
|
||||||
gpgsign = true
|
|
||||||
[init]
|
|
||||||
defaultBranch = master
|
|
||||||
[diff]
|
|
||||||
submodule = log
|
|
||||||
[color]
|
|
||||||
diff = auto
|
|
||||||
status = auto
|
|
||||||
branch = auto
|
|
||||||
[core]
|
|
||||||
quotePath = false
|
|
||||||
commitGraph = true
|
|
||||||
whitespace = trailing-space
|
|
||||||
[receive]
|
|
||||||
advertisePushOptions = true
|
|
||||||
[gc]
|
|
||||||
writeCommitGraph = true
|
|
||||||
[alias]
|
|
||||||
lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
|
|
||||||
[filter "lfs"]
|
|
||||||
required = true
|
|
||||||
clean = git-lfs clean -- %f
|
|
||||||
smudge = git-lfs smudge -- %f
|
|
||||||
process = git-lfs filter-process
|
|
@ -1,281 +0,0 @@
|
|||||||
|
|
||||||
# #######################################################################################
|
|
||||||
# AUTOGENERATED HYPR CONFIG.
|
|
||||||
# PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT,
|
|
||||||
# OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.
|
|
||||||
# #######################################################################################
|
|
||||||
|
|
||||||
autogenerated = 0 # remove this line to remove the warning
|
|
||||||
|
|
||||||
# This is an example Hyprland config file.
|
|
||||||
# Refer to the wiki for more information.
|
|
||||||
# https://wiki.hyprland.org/Configuring/Configuring-Hyprland/
|
|
||||||
|
|
||||||
# Please note not all available settings / options are set here.
|
|
||||||
# For a full list, see the wiki
|
|
||||||
|
|
||||||
# You can split this configuration into multiple files
|
|
||||||
# Create your files separately and then link them to this file like this:
|
|
||||||
# source = ~/.config/hypr/myColors.conf
|
|
||||||
|
|
||||||
|
|
||||||
################
|
|
||||||
### MONITORS ###
|
|
||||||
################
|
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Monitors/
|
|
||||||
monitor = desc:AOC Q27B3MA 17ZPAHA006135, 2560x1440@75, 0x0, auto
|
|
||||||
monitor = desc:AOC Q27G2G3R3B 137P4HA000540, 2560x1440@165, 2560x0, auto
|
|
||||||
monitor = Unknown-1, disable
|
|
||||||
|
|
||||||
###################
|
|
||||||
### MY PROGRAMS ###
|
|
||||||
###################
|
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Keywords/
|
|
||||||
|
|
||||||
# Set programs that you use
|
|
||||||
$terminal = alacritty
|
|
||||||
$fileManager = dolphin
|
|
||||||
$menu = rofi -show drun
|
|
||||||
|
|
||||||
|
|
||||||
#################
|
|
||||||
### AUTOSTART ###
|
|
||||||
#################
|
|
||||||
|
|
||||||
# Autostart necessary processes (like notifications daemons, status bars, etc.)
|
|
||||||
# Or execute your favorite apps at launch like this:
|
|
||||||
|
|
||||||
# exec-once = $terminal
|
|
||||||
# exec-once = nm-applet &
|
|
||||||
# exec-once = waybar & hyprpaper & firefox
|
|
||||||
exec-once = eww daemon
|
|
||||||
exec-once = eww open topbar
|
|
||||||
exec-once = nm-applet --indicator &
|
|
||||||
exec-once = blueman-applet &
|
|
||||||
exec-once = wl-gammarelay-rs run &
|
|
||||||
exec-once = systemctl --user start hypridle
|
|
||||||
exec-once = wl-paste --type text --watch cliphist store #Stores only text data
|
|
||||||
exec-once = wl-paste --type image --watch cliphist store #Stores only image data
|
|
||||||
exec-once = swww-daemon & swww img ~/Pictures/wallpapers/emily-in-the-cyberpunk-city.3840x2160.png & swww img ~/Pictures/wallpapers/emily-in-the-cyberpunk-city.3840x2160a.gif
|
|
||||||
|
|
||||||
#############################
|
|
||||||
### ENVIRONMENT VARIABLES ###
|
|
||||||
#############################
|
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Environment-variables/
|
|
||||||
|
|
||||||
env = XCURSOR_SIZE,16
|
|
||||||
env = HYPRCURSOR_SIZE,16
|
|
||||||
env = WLR_DRM_NO_ATOMIC,1
|
|
||||||
|
|
||||||
|
|
||||||
#####################
|
|
||||||
### LOOK AND FEEL ###
|
|
||||||
#####################
|
|
||||||
|
|
||||||
# Refer to https://wiki.hyprland.org/Configuring/Variables/
|
|
||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#general
|
|
||||||
general {
|
|
||||||
gaps_in = 5
|
|
||||||
gaps_out = 5
|
|
||||||
|
|
||||||
border_size = 2
|
|
||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
|
|
||||||
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
|
|
||||||
col.inactive_border = rgba(595959aa)
|
|
||||||
|
|
||||||
# Set to true enable resizing windows by clicking and dragging on borders and gaps
|
|
||||||
resize_on_border = true
|
|
||||||
|
|
||||||
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
|
|
||||||
allow_tearing = true
|
|
||||||
|
|
||||||
layout = dwindle
|
|
||||||
}
|
|
||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#decoration
|
|
||||||
decoration {
|
|
||||||
rounding = 5
|
|
||||||
|
|
||||||
# Change transparency of focused and unfocused windows
|
|
||||||
active_opacity = 1.0
|
|
||||||
inactive_opacity = 0.95
|
|
||||||
|
|
||||||
drop_shadow = true
|
|
||||||
shadow_range = 4
|
|
||||||
shadow_render_power = 3
|
|
||||||
col.shadow = rgba(1a1a1aee)
|
|
||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#blur
|
|
||||||
blur {
|
|
||||||
enabled = true
|
|
||||||
size = 3
|
|
||||||
passes = 1
|
|
||||||
|
|
||||||
vibrancy = 0.1696
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#animations
|
|
||||||
animations {
|
|
||||||
enabled = true
|
|
||||||
|
|
||||||
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
|
||||||
|
|
||||||
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
|
|
||||||
|
|
||||||
animation = windows, 1, 7, myBezier
|
|
||||||
animation = windowsOut, 1, 7, default, popin 80%
|
|
||||||
animation = border, 1, 10, default
|
|
||||||
animation = borderangle, 1, 8, default
|
|
||||||
animation = fade, 1, 7, default
|
|
||||||
animation = workspaces, 1, 6, default
|
|
||||||
}
|
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
|
||||||
dwindle {
|
|
||||||
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
|
||||||
preserve_split = true # You probably want this
|
|
||||||
}
|
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
|
||||||
master {
|
|
||||||
new_is_master = true
|
|
||||||
}
|
|
||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#misc
|
|
||||||
misc {
|
|
||||||
force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
|
|
||||||
disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :(
|
|
||||||
}
|
|
||||||
|
|
||||||
#############
|
|
||||||
### INPUT ###
|
|
||||||
#############
|
|
||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#input
|
|
||||||
input {
|
|
||||||
kb_layout = us,ru
|
|
||||||
kb_variant =
|
|
||||||
kb_model =
|
|
||||||
kb_options =
|
|
||||||
kb_rules =
|
|
||||||
|
|
||||||
follow_mouse = 1
|
|
||||||
|
|
||||||
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
|
|
||||||
|
|
||||||
touchpad {
|
|
||||||
natural_scroll = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#gestures
|
|
||||||
gestures {
|
|
||||||
workspace_swipe = false
|
|
||||||
}
|
|
||||||
|
|
||||||
# Example per-device config
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
|
|
||||||
device {
|
|
||||||
name = epic-mouse-v1
|
|
||||||
sensitivity = -0.5
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
####################
|
|
||||||
### KEYBINDINGSS ###
|
|
||||||
####################
|
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Keywords/
|
|
||||||
|
|
||||||
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
|
||||||
bind = SUPER, Q, exec, $terminal
|
|
||||||
bind = SUPER, C, killactive,
|
|
||||||
bind = SUPER, M, exit,
|
|
||||||
bind = SUPER, E, exec, $fileManager
|
|
||||||
bind = SUPER, V, togglefloating,
|
|
||||||
bind = SUPER, F, fullscreen,
|
|
||||||
bind = SUPER, R, exec, $menu
|
|
||||||
bind = SUPER, P, pseudo, # dwindle
|
|
||||||
bind = SUPER, J, togglesplit, # dwindle
|
|
||||||
|
|
||||||
# Move focus with mainMod + arrow keys
|
|
||||||
bind = SUPER, left, movefocus, l
|
|
||||||
bind = SUPER, right, movefocus, r
|
|
||||||
bind = SUPER, up, movefocus, u
|
|
||||||
bind = SUPER, down, movefocus, d
|
|
||||||
|
|
||||||
# Switch workspaces with mainMod + [0-9]
|
|
||||||
bind = SUPER, 1, workspace, 1
|
|
||||||
bind = SUPER, 2, workspace, 2
|
|
||||||
bind = SUPER, 3, workspace, 3
|
|
||||||
bind = SUPER, 4, workspace, 4
|
|
||||||
bind = SUPER, 5, workspace, 5
|
|
||||||
bind = SUPER, 6, workspace, 6
|
|
||||||
bind = SUPER, 7, workspace, 7
|
|
||||||
bind = SUPER, 8, workspace, 8
|
|
||||||
bind = SUPER, 9, workspace, 9
|
|
||||||
bind = SUPER, 0, workspace, 10
|
|
||||||
|
|
||||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
|
||||||
bind = SUPER SHIFT, 1, movetoworkspace, 1
|
|
||||||
bind = SUPER SHIFT, 2, movetoworkspace, 2
|
|
||||||
bind = SUPER SHIFT, 3, movetoworkspace, 3
|
|
||||||
bind = SUPER SHIFT, 4, movetoworkspace, 4
|
|
||||||
bind = SUPER SHIFT, 5, movetoworkspace, 5
|
|
||||||
bind = SUPER SHIFT, 6, movetoworkspace, 6
|
|
||||||
bind = SUPER SHIFT, 7, movetoworkspace, 7
|
|
||||||
bind = SUPER SHIFT, 8, movetoworkspace, 8
|
|
||||||
bind = SUPER SHIFT, 9, movetoworkspace, 9
|
|
||||||
bind = SUPER SHIFT, 0, movetoworkspace, 10
|
|
||||||
|
|
||||||
# Example special workspace (scratchpad)
|
|
||||||
bind = SUPER, S, togglespecialworkspace, magic
|
|
||||||
bind = SUPER SHIFT, S, movetoworkspace, special:magic
|
|
||||||
|
|
||||||
# Scroll through existing workspaces with mainMod + scroll
|
|
||||||
bind = SUPER, mouse_down, workspace, e+1
|
|
||||||
bind = SUPER, mouse_up, workspace, e-1
|
|
||||||
|
|
||||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
|
||||||
bindm = SUPER, mouse:272, movewindow
|
|
||||||
bindm = SUPER, mouse:273, resizewindow
|
|
||||||
|
|
||||||
bindel = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
|
|
||||||
bindel = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
|
|
||||||
bindl = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
|
||||||
bindl = , XF86AudioPrev, exec, playerctl previous
|
|
||||||
bindl = , XF86AudioPlay, exec, playerctl play-pause
|
|
||||||
bindl = , XF86AudioNext, exec, playerctl next
|
|
||||||
bindl = , XF86MonBrightnessDown, exec, busctl --user -- call rs.wl-gammarelay / rs.wl.gammarelay UpdateTemperature n -500
|
|
||||||
bindl = , XF86MonBrightnessUp, exec, busctl --user -- call rs.wl-gammarelay / rs.wl.gammarelay UpdateTemperature n +500
|
|
||||||
bindl = SUPER, XF86MonBrightnessDown, exec, busctl --user -- call rs.wl-gammarelay / rs.wl.gammarelay Brightness d -0.1
|
|
||||||
bindl = SUPER, XF86MonBrightnessUp, exec, busctl --user -- call rs.wl-gammarelay / rs.wl.gammarelay Brightness d +0.1
|
|
||||||
|
|
||||||
bind = SUPER, SPACE, exec, hyprctl switchxkblayout keychron-keychron-k3-pro next
|
|
||||||
bind = , PRINT, exec, hyprshot -m region
|
|
||||||
bind = SUPER, H, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy
|
|
||||||
#bind = CTRL, V, exec, wl-paste
|
|
||||||
|
|
||||||
##############################
|
|
||||||
### WINDOWS AND WORKSPACES ###
|
|
||||||
##############################
|
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
|
|
||||||
|
|
||||||
# Example windowrule v1
|
|
||||||
# windowrule = float, ^(kitty)$
|
|
||||||
|
|
||||||
# Example windowrule v2
|
|
||||||
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
|
|
||||||
|
|
||||||
windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.
|
|
||||||
windowrulev2 = float, class:^(steam_app.*)$
|
|
||||||
windowrulev2 = immediate, class:^(steam_app.*)$
|
|
||||||
windowrulev2 = float, class:^(steam_proton.*)$
|
|
@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"neodev": {
|
|
||||||
"library": {
|
|
||||||
"enabled": true,
|
|
||||||
"plugins": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"neoconf": {
|
|
||||||
"plugins": {
|
|
||||||
"lua_ls": {
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,29 +0,0 @@
|
|||||||
" Enable Mouse
|
|
||||||
set mouse=a
|
|
||||||
|
|
||||||
" Set Editor Font
|
|
||||||
if exists(':GuiFont')
|
|
||||||
" Use GuiFont! to ignore font errors
|
|
||||||
GuiFont MesloLGS Nerd Font Mono:h10
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Disable GUI Tabline
|
|
||||||
if exists(':GuiTabline')
|
|
||||||
GuiTabline 0
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Disable GUI Popupmenu
|
|
||||||
if exists(':GuiPopupmenu')
|
|
||||||
GuiPopupmenu 0
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Enable GUI ScrollBar
|
|
||||||
if exists(':GuiScrollBar')
|
|
||||||
GuiScrollBar 0
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Right Click Context Menu (Copy-Cut-Paste)
|
|
||||||
nnoremap <silent><RightMouse> :call GuiShowContextMenu()<CR>
|
|
||||||
inoremap <silent><RightMouse> <Esc>:call GuiShowContextMenu()<CR>
|
|
||||||
xnoremap <silent><RightMouse> :call GuiShowContextMenu()<CR>gv
|
|
||||||
snoremap <silent><RightMouse> <C-G>:call GuiShowContextMenu()<CR>gv
|
|
@ -1,7 +0,0 @@
|
|||||||
-- bootstrap lazy.nvim, LazyVim and your plugins
|
|
||||||
require("config.lazy")
|
|
||||||
|
|
||||||
vim.o.tabstop = 4 -- A TAB character looks like 4 spaces
|
|
||||||
vim.o.expandtab = true -- Pressing the TAB key will insert spaces instead of a TAB character
|
|
||||||
vim.o.softtabstop = 4 -- Number of spaces inserted instead of a TAB character
|
|
||||||
vim.o.shiftwidth = 4 -- Number of spaces inserted when indenting
|
|
@ -1,3 +0,0 @@
|
|||||||
-- Autocmds are automatically loaded on the VeryLazy event
|
|
||||||
-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua
|
|
||||||
-- Add any additional autocmds here
|
|
@ -1,15 +0,0 @@
|
|||||||
-- Keymaps are automatically loaded on the VeryLazy event
|
|
||||||
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
|
|
||||||
-- Add any additional keymaps here
|
|
||||||
|
|
||||||
-- Move to window
|
|
||||||
vim.keymap.set("n", "<C-Left>", "<C-w>h", { desc = "Go to left window", remap = true })
|
|
||||||
vim.keymap.set("n", "<C-Down>", "<C-w>j", { desc = "Go to lower window", remap = true })
|
|
||||||
vim.keymap.set("n", "<C-Up>", "<C-w>k", { desc = "Go to upper window", remap = true })
|
|
||||||
vim.keymap.set("n", "<C-Right>", "<C-w>l", { desc = "Go to right window", remap = true })
|
|
||||||
|
|
||||||
-- Resize window using <ctrl> arrow keys
|
|
||||||
vim.keymap.set("n", "<C-k>", "<cmd>resize +2<cr>", { desc = "Increase window height" })
|
|
||||||
vim.keymap.set("n", "<C-l>", "<cmd>resize -2<cr>", { desc = "Decrease window height" })
|
|
||||||
vim.keymap.set("n", "<C-h>", "<cmd>vertical resize -2<cr>", { desc = "Decrease window width" })
|
|
||||||
vim.keymap.set("n", "<C-j>", "<cmd>vertical resize +2<cr>", { desc = "Increase window width" })
|
|
@ -1,46 +0,0 @@
|
|||||||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
|
||||||
if not vim.loop.fs_stat(lazypath) then
|
|
||||||
-- bootstrap lazy.nvim
|
|
||||||
-- stylua: ignore
|
|
||||||
vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath })
|
|
||||||
end
|
|
||||||
vim.opt.rtp:prepend(vim.env.LAZY or lazypath)
|
|
||||||
|
|
||||||
require("lazy").setup({
|
|
||||||
spec = {
|
|
||||||
-- add LazyVim and import its plugins
|
|
||||||
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
|
|
||||||
-- import any extras modules here
|
|
||||||
-- { import = "lazyvim.plugins.extras.lang.typescript" },
|
|
||||||
-- { import = "lazyvim.plugins.extras.lang.json" },
|
|
||||||
-- { import = "lazyvim.plugins.extras.ui.mini-animate" },
|
|
||||||
-- import/override with your plugins
|
|
||||||
{ import = "plugins" },
|
|
||||||
},
|
|
||||||
defaults = {
|
|
||||||
-- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup.
|
|
||||||
-- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default.
|
|
||||||
lazy = false,
|
|
||||||
-- It's recommended to leave version=false for now, since a lot the plugin that support versioning,
|
|
||||||
-- have outdated releases, which may break your Neovim install.
|
|
||||||
version = false, -- always use the latest git commit
|
|
||||||
-- version = "*", -- try installing the latest stable version for plugins that support semver
|
|
||||||
},
|
|
||||||
install = { colorscheme = { "tokyonight", "habamax" } },
|
|
||||||
checker = { enabled = true }, -- automatically check for plugin updates
|
|
||||||
performance = {
|
|
||||||
rtp = {
|
|
||||||
-- disable some rtp plugins
|
|
||||||
disabled_plugins = {
|
|
||||||
"gzip",
|
|
||||||
-- "matchit",
|
|
||||||
-- "matchparen",
|
|
||||||
-- "netrwPlugin",
|
|
||||||
"tarPlugin",
|
|
||||||
"tohtml",
|
|
||||||
"tutor",
|
|
||||||
"zipPlugin",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
@ -1,3 +0,0 @@
|
|||||||
-- Options are automatically loaded before lazy.nvim startup
|
|
||||||
-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
|
|
||||||
-- Add any additional options here
|
|
@ -1,70 +0,0 @@
|
|||||||
return {
|
|
||||||
|
|
||||||
{
|
|
||||||
"ellisonleao/gruvbox.nvim",
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"folke/tokyonight.nvim",
|
|
||||||
style = "moon",
|
|
||||||
priority = 1000,
|
|
||||||
},
|
|
||||||
|
|
||||||
{ "skywind3000/asyncrun.vim" },
|
|
||||||
|
|
||||||
-- Configure LazyVim to load gruvbox
|
|
||||||
{
|
|
||||||
"LazyVim/LazyVim",
|
|
||||||
opts = {
|
|
||||||
colorscheme = "tokyonight",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
{ "equalsraf/neovim-gui-shim" },
|
|
||||||
|
|
||||||
{
|
|
||||||
"nvim-neo-tree/neo-tree.nvim",
|
|
||||||
opts = {
|
|
||||||
filesystem = {
|
|
||||||
filtered_items = {
|
|
||||||
hide_dotfiles = false,
|
|
||||||
hide_gitignored = false,
|
|
||||||
},
|
|
||||||
use_libuv_file_watcher = true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"folke/trouble.nvim",
|
|
||||||
dependencies = { "nvim-tree/nvim-web-devicons" },
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"nvim-orgmode/orgmode",
|
|
||||||
dependencies = {
|
|
||||||
{ "nvim-treesitter/nvim-treesitter", lazy = true },
|
|
||||||
},
|
|
||||||
event = "VeryLazy",
|
|
||||||
config = function()
|
|
||||||
require("orgmode").setup_ts_grammar()
|
|
||||||
|
|
||||||
require("nvim-treesitter.configs").setup({
|
|
||||||
highlight = {
|
|
||||||
enable = true,
|
|
||||||
additional_vim_regex_highlighting = { "org" },
|
|
||||||
},
|
|
||||||
ensure_installed = { "org" },
|
|
||||||
})
|
|
||||||
|
|
||||||
require("orgmode").setup()
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"williamboman/mason.nvim",
|
|
||||||
config = function()
|
|
||||||
require("mason").setup({ PATH = "append" })
|
|
||||||
end
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
indent_type = "Spaces"
|
|
||||||
indent_width = 4
|
|
||||||
column_width = 120
|
|
||||||
|
|
629
configurations/bonvim.nix
Normal file
629
configurations/bonvim.nix
Normal file
@ -0,0 +1,629 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
rustc ? pkgs.rustc,
|
||||||
|
cargo ? pkgs.cargo,
|
||||||
|
rust-analyzer ? pkgs.rust-analyzer,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
# General
|
||||||
|
globals.mapleader = " ";
|
||||||
|
|
||||||
|
opts = {
|
||||||
|
# Show line numbers
|
||||||
|
number = true;
|
||||||
|
relativenumber = true;
|
||||||
|
# Tab need 4 spaces please
|
||||||
|
expandtab = true;
|
||||||
|
tabstop = 4;
|
||||||
|
softtabstop = 4;
|
||||||
|
shiftwidth = 4;
|
||||||
|
showtabline = 4;
|
||||||
|
# Hide * markup
|
||||||
|
conceallevel = 2;
|
||||||
|
# Confirm on save
|
||||||
|
confirm = true;
|
||||||
|
|
||||||
|
cursorline = true;
|
||||||
|
# Invisible characters I see you
|
||||||
|
list = true;
|
||||||
|
|
||||||
|
ignorecase = true;
|
||||||
|
|
||||||
|
grepprg = "${lib.getExe pkgs.ripgrep} --vimgrep";
|
||||||
|
|
||||||
|
termguicolors = true;
|
||||||
|
# Splits
|
||||||
|
splitbelow = true;
|
||||||
|
splitright = true;
|
||||||
|
splitkeep = "screen";
|
||||||
|
# U, u, undo
|
||||||
|
undofile = true;
|
||||||
|
undolevels = 10000;
|
||||||
|
updatetime = 200;
|
||||||
|
# Command line completion mode
|
||||||
|
wildmode = "longest:full,full";
|
||||||
|
|
||||||
|
smoothscroll = true;
|
||||||
|
|
||||||
|
autowrite = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
globals = {
|
||||||
|
bigfile_size = 1024 * 1024 * 1.5;
|
||||||
|
};
|
||||||
|
|
||||||
|
editorconfig.enable = true;
|
||||||
|
|
||||||
|
# Clipboard
|
||||||
|
clipboard = {
|
||||||
|
register = "unnamedplus";
|
||||||
|
providers.wl-copy.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Copy/paste
|
||||||
|
plugins.yanky = {
|
||||||
|
enable = true;
|
||||||
|
systemClipboard.syncWithRing = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
extraPlugins = with pkgs.vimPlugins; [nvim-web-devicons];
|
||||||
|
|
||||||
|
# Theme
|
||||||
|
colorschemes.catppuccin = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
flavour = "macchiato";
|
||||||
|
no_bold = false;
|
||||||
|
no_italic = false;
|
||||||
|
no_underline = false;
|
||||||
|
integrations = {
|
||||||
|
cmp = true;
|
||||||
|
notify = true;
|
||||||
|
gitsigns = true;
|
||||||
|
neotree = true;
|
||||||
|
which_key = true;
|
||||||
|
illuminate = {
|
||||||
|
enabled = true;
|
||||||
|
};
|
||||||
|
treesitter = true;
|
||||||
|
telescope.enabled = true;
|
||||||
|
indent_blankline.enabled = true;
|
||||||
|
mini.enabled = true;
|
||||||
|
native_lsp = {
|
||||||
|
enabled = true;
|
||||||
|
inlay_hints = {
|
||||||
|
background = true;
|
||||||
|
};
|
||||||
|
underlines = {
|
||||||
|
errors = ["underline"];
|
||||||
|
hints = ["underline"];
|
||||||
|
information = ["underline"];
|
||||||
|
warnings = ["underline"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# File tree
|
||||||
|
plugins.neo-tree = {
|
||||||
|
enable = true;
|
||||||
|
filesystem = {
|
||||||
|
useLibuvFileWatcher = true;
|
||||||
|
filteredItems = {
|
||||||
|
hideDotfiles = false;
|
||||||
|
hideGitignored = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
defaultComponentConfigs = {
|
||||||
|
indent = {
|
||||||
|
withExpanders = true;
|
||||||
|
expanderCollapsed = "";
|
||||||
|
expanderExpanded = "";
|
||||||
|
expanderHighlight = "NeoTreeExpander";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# UI
|
||||||
|
plugins.noice = {
|
||||||
|
enable = true;
|
||||||
|
lsp.override = {
|
||||||
|
"cmp.entry.get_documentation" = true;
|
||||||
|
"vim.lsp.util.convert_input_to_markdown_lines" = true;
|
||||||
|
"vim.lsp.util.stylize_markdown" = true;
|
||||||
|
};
|
||||||
|
presets = {
|
||||||
|
long_message_to_split = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
plugins.dressing = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Status line
|
||||||
|
plugins.bufferline = {
|
||||||
|
enable = true;
|
||||||
|
diagnostics = "nvim_lsp";
|
||||||
|
mode = "buffers";
|
||||||
|
|
||||||
|
offsets = [
|
||||||
|
{
|
||||||
|
filetype = "neo-tree";
|
||||||
|
text = "Neo-tree";
|
||||||
|
highlight = "Directory";
|
||||||
|
text_align = "left";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
plugins.lualine = {
|
||||||
|
enable = true;
|
||||||
|
globalstatus = true;
|
||||||
|
extensions = ["neo-tree"];
|
||||||
|
sections = {
|
||||||
|
lualine_a = [
|
||||||
|
{
|
||||||
|
name = "mode";
|
||||||
|
separator.right = "";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
lualine_b = [
|
||||||
|
{
|
||||||
|
name = "branch";
|
||||||
|
icon = "";
|
||||||
|
separator.right = "";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
lualine_c = [
|
||||||
|
{
|
||||||
|
name = "diagnostics";
|
||||||
|
separator.right = ">";
|
||||||
|
extraConfig = {
|
||||||
|
sources = ["nvim_lsp"];
|
||||||
|
symbols = {
|
||||||
|
error = " ";
|
||||||
|
warn = " ";
|
||||||
|
info = " ";
|
||||||
|
hint = " ";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "filetype";
|
||||||
|
extraConfig = {
|
||||||
|
icon_only = true;
|
||||||
|
separator = "";
|
||||||
|
padding = {
|
||||||
|
left = 1;
|
||||||
|
right = 0;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "filename";
|
||||||
|
extraConfig = {
|
||||||
|
path = 1;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
lualine_x = [
|
||||||
|
{
|
||||||
|
name = "diff";
|
||||||
|
extraConfig = {
|
||||||
|
symbols = {
|
||||||
|
added = " ";
|
||||||
|
modified = " ";
|
||||||
|
removed = " ";
|
||||||
|
};
|
||||||
|
source.__raw = ''
|
||||||
|
function()
|
||||||
|
local gitsings = vim.b.gitsigns_status_dict
|
||||||
|
if gitsigns then
|
||||||
|
return {
|
||||||
|
added = gitigns.added,
|
||||||
|
modified = gitigns.changed,
|
||||||
|
removed = gitigns.removed
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
lualine_y = [
|
||||||
|
{
|
||||||
|
separator.left = "";
|
||||||
|
name = "progress";
|
||||||
|
padding = {
|
||||||
|
left = 1;
|
||||||
|
right = 0;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "location";
|
||||||
|
padding = {
|
||||||
|
left = 0;
|
||||||
|
right = 1;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
lualine_z = [
|
||||||
|
{
|
||||||
|
separator.left = "";
|
||||||
|
fmt = ''
|
||||||
|
function(text)
|
||||||
|
return " " .. os.date("%R")
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
plugins.notify.enable = true;
|
||||||
|
|
||||||
|
plugins.project-nvim = {
|
||||||
|
enable = true;
|
||||||
|
enableTelescope = true;
|
||||||
|
showHidden = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Syntax highlight
|
||||||
|
plugins.treesitter = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
plugins.treesitter-textobjects.enable = true;
|
||||||
|
|
||||||
|
# Double trouble of your code
|
||||||
|
plugins.trouble = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Multifile search/replace
|
||||||
|
plugins.spectre = {
|
||||||
|
enable = true;
|
||||||
|
findPackage = pkgs.ripgrep;
|
||||||
|
replacePackage = pkgs.gnused;
|
||||||
|
};
|
||||||
|
|
||||||
|
plugins.which-key = {
|
||||||
|
enable = true;
|
||||||
|
icons.group = "+";
|
||||||
|
registrations = {
|
||||||
|
"<leader>g" = "+ Git";
|
||||||
|
"<leader>c" = "+ Code";
|
||||||
|
"<leader>s" = "+ Search";
|
||||||
|
"<leader>w" = "+ Window";
|
||||||
|
"<leader>q" = "+ Quit";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# LSP
|
||||||
|
plugins = {
|
||||||
|
lsp-lines.enable = true;
|
||||||
|
lsp-format.enable = true;
|
||||||
|
lsp = {
|
||||||
|
enable = true;
|
||||||
|
inlayHints = true;
|
||||||
|
keymaps = {
|
||||||
|
# vim.diagnostic.<action>
|
||||||
|
diagnostic = {
|
||||||
|
"<leader>cd" = {
|
||||||
|
action = "open_float";
|
||||||
|
desc = "Line diagnostics";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
# vim.lsp.buf.<action>
|
||||||
|
lspBuf = {
|
||||||
|
"K" = "hover";
|
||||||
|
"gK" = "signature_help";
|
||||||
|
"gr" = "references";
|
||||||
|
"gd" = "definition";
|
||||||
|
"gi" = "implementation";
|
||||||
|
"gt" = "type_definition";
|
||||||
|
"cr" = "rename";
|
||||||
|
"cf" = "format";
|
||||||
|
};
|
||||||
|
extra = [
|
||||||
|
{
|
||||||
|
key = "<leader>cf";
|
||||||
|
action.__raw = "vim.lsp.buf.format";
|
||||||
|
options.desc = "Format";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
servers = {
|
||||||
|
clangd = {
|
||||||
|
enable = true;
|
||||||
|
cmd = [
|
||||||
|
"${config.plugins.lsp.servers.clangd.package}/bin/clangd"
|
||||||
|
"--background-index"
|
||||||
|
"--clang-tidy"
|
||||||
|
"--header-insertion=iwyu"
|
||||||
|
"--completion-style=detailed"
|
||||||
|
"--function-arg-placeholders"
|
||||||
|
"--fallback-style=llvm"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
cmake.enable = true;
|
||||||
|
nil-ls.enable = true;
|
||||||
|
# pylyzer.enable = true; # not working with virtual environments currently :(
|
||||||
|
pylsp = {
|
||||||
|
enable = true;
|
||||||
|
settings.plugins = {
|
||||||
|
pyflakes.enabled = true;
|
||||||
|
black.enabled = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
rust-analyzer = {
|
||||||
|
enable = true;
|
||||||
|
package = rust-analyzer;
|
||||||
|
cargoPackage = cargo;
|
||||||
|
rustcPackage = rustc;
|
||||||
|
installCargo = true;
|
||||||
|
installRustc = true;
|
||||||
|
};
|
||||||
|
volar.enable = true;
|
||||||
|
tailwindcss.enable = true;
|
||||||
|
marksman.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# VCS
|
||||||
|
plugins.gitsigns = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
signs = {
|
||||||
|
add = {
|
||||||
|
text = "▎";
|
||||||
|
};
|
||||||
|
change = {
|
||||||
|
text = "▎";
|
||||||
|
};
|
||||||
|
delete = {
|
||||||
|
text = "";
|
||||||
|
};
|
||||||
|
untracked = {
|
||||||
|
text = "▎";
|
||||||
|
};
|
||||||
|
topdelete = {
|
||||||
|
text = "";
|
||||||
|
};
|
||||||
|
changedelete = {
|
||||||
|
text = "▎";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
plugins.lazygit.enable = true;
|
||||||
|
|
||||||
|
# Formatting
|
||||||
|
plugins.none-ls = {
|
||||||
|
enable = true;
|
||||||
|
# nix
|
||||||
|
sources.formatting.alejandra.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Search, search, search
|
||||||
|
plugins.telescope = {
|
||||||
|
enable = true;
|
||||||
|
extensions.fzf-native.enable = true;
|
||||||
|
keymaps = {
|
||||||
|
"<leader>sgf" = {
|
||||||
|
action = "git_files";
|
||||||
|
options = {
|
||||||
|
desc = "Files";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"<leader>sgc" = {
|
||||||
|
action = "git_commits";
|
||||||
|
options = {
|
||||||
|
desc = "Commits";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"<leader>sgs" = {
|
||||||
|
action = "git_status";
|
||||||
|
options = {
|
||||||
|
desc = "Status";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"<leader>sk" = {
|
||||||
|
action = "keymaps";
|
||||||
|
options = {
|
||||||
|
desc = "Key Maps";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"<leader>sf" = {
|
||||||
|
action = "live_grep";
|
||||||
|
options = {
|
||||||
|
desc = "Grep Root Directory";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
plugins.todo-comments.enable = true;
|
||||||
|
|
||||||
|
# Terminal
|
||||||
|
plugins.toggleterm = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
direction = "float";
|
||||||
|
open_mapping = "[[<c-/>]]";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Completion
|
||||||
|
plugins = {
|
||||||
|
cmp = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
sources = [
|
||||||
|
{
|
||||||
|
name = "nvim_lsp";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "path";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "buffer";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
experimental = {
|
||||||
|
ghost_text = {
|
||||||
|
hl_group = "CmpGhostText";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
mapping = {
|
||||||
|
"<c-space>" = "cmp.mapping.complete()";
|
||||||
|
"<cr>" = "cmp.mapping.confirm({ select = true; })";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
cmp-nvim-lsp.enable = true;
|
||||||
|
cmp-path.enable = true;
|
||||||
|
cmp-buffer.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Keymaps
|
||||||
|
keymaps = [
|
||||||
|
# General
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>qq";
|
||||||
|
action = "<cmd>qa<cr>";
|
||||||
|
options = {desc = "Quit All";};
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>ww";
|
||||||
|
action = "<C-W>p";
|
||||||
|
options = {desc = "Other Window";};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>wd";
|
||||||
|
action = "<C-W>c";
|
||||||
|
options = {desc = "Delete Window";};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>ws";
|
||||||
|
action = "<C-W>s";
|
||||||
|
options = {desc = "Split Below";};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>wv";
|
||||||
|
action = "<C-W>v";
|
||||||
|
options = {desc = "Split Right";};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<C-Left>";
|
||||||
|
action = "<C-W>h";
|
||||||
|
options = {desc = "Go To Left Window";};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<C-Down>";
|
||||||
|
action = "<C-W>j";
|
||||||
|
options = {desc = "Go To Lower Window";};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<C-Up>";
|
||||||
|
action = "<C-W>k";
|
||||||
|
options = {desc = "Go To Upper Window";};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<C-Right>";
|
||||||
|
action = "<C-W>l";
|
||||||
|
options = {desc = "Go To Right Window";};
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
mode = "v";
|
||||||
|
key = ">";
|
||||||
|
action = ">gv";
|
||||||
|
options = {desc = "Indent right selected text";};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "v";
|
||||||
|
key = "<";
|
||||||
|
action = "<gv";
|
||||||
|
options = {desc = "Indent left selected text";};
|
||||||
|
}
|
||||||
|
|
||||||
|
# Clipboard
|
||||||
|
{
|
||||||
|
mode = ["n" "x"];
|
||||||
|
key = "y";
|
||||||
|
action = "<Plug>(YankyYank)";
|
||||||
|
options = {desc = "Yank Text";};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = ["n" "x"];
|
||||||
|
key = "p";
|
||||||
|
action = "<Plug>(YankyPutAfter)";
|
||||||
|
options = {desc = "Put Yanked Text After Cursor";};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = ["n" "x"];
|
||||||
|
key = "P";
|
||||||
|
action = "<Plug>(YankyPutBefore)";
|
||||||
|
options = {desc = "Put Yanked Text Before Cursor";};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = ["n" "x"];
|
||||||
|
key = "gp";
|
||||||
|
action = "<Plug>(YankyGPutAfter)";
|
||||||
|
options = {desc = "Put Yanked Text After Selection";};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = ["n" "x"];
|
||||||
|
key = "gP";
|
||||||
|
action = "<Plug>(YankyGPutBefore)";
|
||||||
|
options = {desc = "Put Yanked Text Befor Selection";};
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>cl";
|
||||||
|
action.__raw = ''require("lsp_lines").toggle'';
|
||||||
|
options = {desc = "Toggle LSP lines";};
|
||||||
|
}
|
||||||
|
|
||||||
|
# Terminal
|
||||||
|
{
|
||||||
|
mode = "t";
|
||||||
|
key = "<esc><esc>";
|
||||||
|
action = "<c-\\><c-n>";
|
||||||
|
options = {desc = "Enter Normal Mode";};
|
||||||
|
}
|
||||||
|
# Etc
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>e";
|
||||||
|
action = "<cmd>Neotree toggle<cr>";
|
||||||
|
options = {desc = "Open/Close Neotree";};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
mode = "n";
|
||||||
|
key = "<leader>gg";
|
||||||
|
action = "<cmd>LazyGit<cr>";
|
||||||
|
options = {
|
||||||
|
desc = "LazyGit (root dir)";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
7
configurations/default.nix
Normal file
7
configurations/default.nix
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
self,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
bonvim = ./bonvim.nix;
|
||||||
|
}
|
@ -1,13 +1,9 @@
|
|||||||
{ crane-lib, pkgs, ... }:
|
{pkgs, ...}:
|
||||||
crane-lib.devShell {
|
pkgs.mkShellNoCC {
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
sops
|
sops
|
||||||
mkpasswd
|
mkpasswd
|
||||||
nil
|
|
||||||
jq
|
jq
|
||||||
cachix
|
cachix
|
||||||
nodejs
|
|
||||||
python3
|
|
||||||
marksman
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,15 @@
|
|||||||
# self.devShells.${system}
|
# self.devShells.${system}
|
||||||
#
|
#
|
||||||
{ self, nixpkgs, ... }:
|
{
|
||||||
let
|
self,
|
||||||
|
nixpkgs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
forAllSystems = nixpkgs.lib.genAttrs ["x86_64-linux"];
|
forAllSystems = nixpkgs.lib.genAttrs ["x86_64-linux"];
|
||||||
nixpkgsFor = forAllSystems (system: import nixpkgs {inherit system;});
|
nixpkgsFor = forAllSystems (system: import nixpkgs {inherit system;});
|
||||||
|
in
|
||||||
in forAllSystems(system:
|
forAllSystems (system: let
|
||||||
let environment = {
|
environment = rec {
|
||||||
pkgs = nixpkgsFor.${system};
|
pkgs = nixpkgsFor.${system};
|
||||||
|
|
||||||
bonfire = self;
|
bonfire = self;
|
||||||
@ -14,9 +17,9 @@ in forAllSystems(system:
|
|||||||
bonfire-pkgs = self.packages.${system};
|
bonfire-pkgs = self.packages.${system};
|
||||||
|
|
||||||
crane = self.inputs.crane;
|
crane = self.inputs.crane;
|
||||||
crane-lib = self.inputs.crane.lib.${system};
|
crane-lib = self.inputs.crane.mkLib pkgs;
|
||||||
}; in {
|
};
|
||||||
|
in {
|
||||||
default = import ./bonfire.nix environment;
|
default = import ./bonfire.nix environment;
|
||||||
|
|
||||||
netgen = import ./netgen.nix environment;
|
netgen = import ./netgen.nix environment;
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
{ pkgs, bonfire-pkgs, ... }:
|
{
|
||||||
|
pkgs,
|
||||||
|
bonfire-pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
pkgs.mkShellNoCC {
|
pkgs.mkShellNoCC {
|
||||||
packages = [
|
packages = [
|
||||||
bonfire-pkgs.netgen
|
bonfire-pkgs.netgen
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
{ pkgs, bonfire-pkgs, ... }:
|
{
|
||||||
|
pkgs,
|
||||||
|
bonfire-pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
pkgs.mkShellNoCC {
|
pkgs.mkShellNoCC {
|
||||||
packages = [
|
packages = [
|
||||||
bonfire-pkgs.openfoam
|
bonfire-pkgs.openfoam
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
{ pkgs, crane-lib, ... }:
|
{
|
||||||
|
pkgs,
|
||||||
|
crane-lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
crane-lib.devShell rec {
|
crane-lib.devShell rec {
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
lld
|
lld
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
{ pkgs, crane-lib, ... }:
|
{
|
||||||
|
pkgs,
|
||||||
|
crane-lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
crane-lib.devShell {
|
crane-lib.devShell {
|
||||||
packages = [
|
packages = [
|
||||||
pkgs.cargo-watch
|
pkgs.cargo-watch
|
||||||
|
364
flake.lock
generated
364
flake.lock
generated
@ -52,7 +52,7 @@
|
|||||||
"inputs": {
|
"inputs": {
|
||||||
"crane": "crane_2",
|
"crane": "crane_2",
|
||||||
"fenix": "fenix_2",
|
"fenix": "fenix_2",
|
||||||
"home-manager": "home-manager_2",
|
"home-manager": "home-manager_3",
|
||||||
"nixgl": "nixgl",
|
"nixgl": "nixgl",
|
||||||
"nixos-mailserver": "nixos-mailserver_2",
|
"nixos-mailserver": "nixos-mailserver_2",
|
||||||
"nixpkgs": "nixpkgs_3",
|
"nixpkgs": "nixpkgs_3",
|
||||||
@ -78,7 +78,7 @@
|
|||||||
"crane": "crane_3",
|
"crane": "crane_3",
|
||||||
"devenv": "devenv",
|
"devenv": "devenv",
|
||||||
"fenix": "fenix_3",
|
"fenix": "fenix_3",
|
||||||
"home-manager": "home-manager_3",
|
"home-manager": "home-manager_4",
|
||||||
"nixgl": "nixgl_2",
|
"nixgl": "nixgl_2",
|
||||||
"nixos-mailserver": "nixos-mailserver_3",
|
"nixos-mailserver": "nixos-mailserver_3",
|
||||||
"nixpkgs": "nixpkgs_5",
|
"nixpkgs": "nixpkgs_5",
|
||||||
@ -142,11 +142,11 @@
|
|||||||
},
|
},
|
||||||
"catppuccin": {
|
"catppuccin": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1718339789,
|
"lastModified": 1719758387,
|
||||||
"narHash": "sha256-Q3fgY7huFE+uaw7BNsAl1x+FvjDAi3EDWPnlALJt5pM=",
|
"narHash": "sha256-bMaI1jJNzIZar4TP/hhoPQROqqcbD6zT6O+sqIJdp8c=",
|
||||||
"owner": "catppuccin",
|
"owner": "catppuccin",
|
||||||
"repo": "nix",
|
"repo": "nix",
|
||||||
"rev": "73e06d5bd7ed34bdd0168030893ef8364fdc1d4a",
|
"rev": "9eb0610d48dd0e1fecf772bbdacf9050d7b82d7c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -162,11 +162,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1718474113,
|
"lastModified": 1719685792,
|
||||||
"narHash": "sha256-UKrfy/46YF2TRnxTtKCYzqf2f5ZPRRWwKCCJb7O5X8U=",
|
"narHash": "sha256-WIoVERD4AN6CmfGSRPy3mfPx2dDbRHgzP2V8z6aNbaY=",
|
||||||
"owner": "ipetkov",
|
"owner": "ipetkov",
|
||||||
"repo": "crane",
|
"repo": "crane",
|
||||||
"rev": "0095fd8ea00ae0a9e6014f39c375e40c2fbd3386",
|
"rev": "aa5dcd0518a422dfd545d565f0d5a25971fea52a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -224,7 +224,7 @@
|
|||||||
"devenv": {
|
"devenv": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"cachix": "cachix",
|
"cachix": "cachix",
|
||||||
"flake-compat": "flake-compat_4",
|
"flake-compat": "flake-compat_6",
|
||||||
"nix": "nix_2",
|
"nix": "nix_2",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"oscuro",
|
"oscuro",
|
||||||
@ -288,6 +288,28 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"devshell": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1717408969,
|
||||||
|
"narHash": "sha256-Q0OEFqe35fZbbRPPRdrjTUUChKVhhWXz3T9ZSKmaoVY=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "devshell",
|
||||||
|
"rev": "1ebbe68d57457c8cae98145410b164b5477761f4",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "devshell",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"fenix": {
|
"fenix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@ -296,11 +318,11 @@
|
|||||||
"rust-analyzer-src": []
|
"rust-analyzer-src": []
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1717827974,
|
"lastModified": 1719815435,
|
||||||
"narHash": "sha256-ixopuTeTouxqTxfMuzs6IaRttbT8JqRW5C9Q/57WxQw=",
|
"narHash": "sha256-K2xFp142onP35jcx7li10xUxNVEVRWjAdY8DSuR7Naw=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "fenix",
|
"repo": "fenix",
|
||||||
"rev": "ab655c627777ab5f9964652fe23bbb1dfbd687a8",
|
"rev": "ebfe2c639111d7e82972a12711206afaeeda2450",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -382,6 +404,20 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat_2": {
|
"flake-compat_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1696426674,
|
||||||
|
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||||
|
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||||
|
"revCount": 57,
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat_3": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1696426674,
|
"lastModified": 1696426674,
|
||||||
@ -397,22 +433,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat_3": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1673956053,
|
|
||||||
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
|
|
||||||
"owner": "edolstra",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "edolstra",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-compat_4": {
|
"flake-compat_4": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
@ -430,6 +450,22 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat_5": {
|
"flake-compat_5": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1673956053,
|
||||||
|
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat_6": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1696426674,
|
"lastModified": 1696426674,
|
||||||
@ -445,7 +481,62 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"flake-compat_7": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1696426674,
|
||||||
|
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-parts": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1719745305,
|
||||||
|
"narHash": "sha256-xwgjVUpqSviudEkpQnioeez1Uo2wzrsMaJKJClh+Bls=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "c3c5ecc05edc7dafba779c6c1a61cd08ac6583e9",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"flake-utils": {
|
"flake-utils": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1701680307,
|
||||||
|
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1659877975,
|
"lastModified": 1659877975,
|
||||||
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
|
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
|
||||||
@ -460,9 +551,9 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils_2": {
|
"flake-utils_3": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_2"
|
"systems": "systems_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1689068808,
|
"lastModified": 1689068808,
|
||||||
@ -478,9 +569,9 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils_3": {
|
"flake-utils_4": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_3"
|
"systems": "systems_4"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1710146030,
|
"lastModified": 1710146030,
|
||||||
@ -496,7 +587,7 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils_4": {
|
"flake-utils_5": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1659877975,
|
"lastModified": 1659877975,
|
||||||
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
|
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
|
||||||
@ -511,7 +602,56 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"git-hooks": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat_3",
|
||||||
|
"gitignore": "gitignore",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"nixpkgs-stable": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1719259945,
|
||||||
|
"narHash": "sha256-F1h+XIsGKT9TkGO3omxDLEb/9jOOsI6NnzsXFsZhry4=",
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "git-hooks.nix",
|
||||||
|
"rev": "0ff4381bbb8f7a52ca4a851660fc7a437a4c6e07",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "git-hooks.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"gitignore": {
|
"gitignore": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixvim",
|
||||||
|
"git-hooks",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1709087332,
|
||||||
|
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "gitignore.nix",
|
||||||
|
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "gitignore.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"gitignore_2": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"oscuro",
|
"oscuro",
|
||||||
@ -544,11 +684,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1718526747,
|
"lastModified": 1719827439,
|
||||||
"narHash": "sha256-sKrD/utGvmtQALvuDj4j0CT3AJXP1idOAq2p+27TpeE=",
|
"narHash": "sha256-tneHOIv1lEavZ0vQ+rgz67LPNCgOZVByYki3OkSshFU=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "0a7ffb28e5df5844d0e8039c9833d7075cdee792",
|
"rev": "59ce796b2563e19821361abbe2067c3bb4143a7d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -558,6 +698,27 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"home-manager_2": {
|
"home-manager_2": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1719677234,
|
||||||
|
"narHash": "sha256-qO9WZsj/0E6zcK4Ht1y/iJ8XfwbBzq7xdqhBh44OP/M=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"rev": "36317d4d38887f7629876b0e43c8d9593c5cc48d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"home-manager_3": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"oscuro",
|
"oscuro",
|
||||||
@ -579,7 +740,7 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"home-manager_3": {
|
"home-manager_4": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"oscuro",
|
"oscuro",
|
||||||
@ -605,7 +766,7 @@
|
|||||||
},
|
},
|
||||||
"nix": {
|
"nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_3",
|
"flake-compat": "flake-compat_5",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"oscuro",
|
"oscuro",
|
||||||
"bonfire",
|
"bonfire",
|
||||||
@ -633,6 +794,27 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nix-darwin": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1719128254,
|
||||||
|
"narHash": "sha256-I7jMpq0CAOZA/i70+HDQO/ulLttyQu/K70cSESiMX7A=",
|
||||||
|
"owner": "lnl7",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"rev": "50581970f37f06a4719001735828519925ef8310",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "lnl7",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nix-github-actions": {
|
"nix-github-actions": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@ -698,7 +880,7 @@
|
|||||||
},
|
},
|
||||||
"nixgl": {
|
"nixgl": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils",
|
"flake-utils": "flake-utils_2",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"oscuro",
|
"oscuro",
|
||||||
"bonfire",
|
"bonfire",
|
||||||
@ -721,7 +903,7 @@
|
|||||||
},
|
},
|
||||||
"nixgl_2": {
|
"nixgl_2": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils_4",
|
"flake-utils": "flake-utils_5",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"oscuro",
|
"oscuro",
|
||||||
"bonfire",
|
"bonfire",
|
||||||
@ -754,11 +936,11 @@
|
|||||||
"nixpkgs-24_05": "nixpkgs-24_05"
|
"nixpkgs-24_05": "nixpkgs-24_05"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1718398369,
|
"lastModified": 1718697807,
|
||||||
"narHash": "sha256-ccOHDuTaUhD1DW6DGNXoDJNOwYx55rVNKECyqRzKRtE=",
|
"narHash": "sha256-Enla61WFisytTYbWygPynEbu8vozjeGc6Obkj2GRj7o=",
|
||||||
"owner": "simple-nixos-mailserver",
|
"owner": "simple-nixos-mailserver",
|
||||||
"repo": "nixos-mailserver",
|
"repo": "nixos-mailserver",
|
||||||
"rev": "54cbacb6eb9938bf1eaab7a7840fb527050c2af1",
|
"rev": "290a995de5c3d3f08468fa548f0d55ab2efc7b6b",
|
||||||
"type": "gitlab"
|
"type": "gitlab"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -770,7 +952,7 @@
|
|||||||
"nixos-mailserver_2": {
|
"nixos-mailserver_2": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"blobs": "blobs_2",
|
"blobs": "blobs_2",
|
||||||
"flake-compat": "flake-compat_2",
|
"flake-compat": "flake-compat_4",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"oscuro",
|
"oscuro",
|
||||||
"bonfire",
|
"bonfire",
|
||||||
@ -795,7 +977,7 @@
|
|||||||
"nixos-mailserver_3": {
|
"nixos-mailserver_3": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"blobs": "blobs_3",
|
"blobs": "blobs_3",
|
||||||
"flake-compat": "flake-compat_5",
|
"flake-compat": "flake-compat_7",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"oscuro",
|
"oscuro",
|
||||||
"bonfire",
|
"bonfire",
|
||||||
@ -821,11 +1003,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1718530797,
|
"lastModified": 1719690277,
|
||||||
"narHash": "sha256-pup6cYwtgvzDpvpSCFh1TEUjw2zkNpk8iolbKnyFmmU=",
|
"narHash": "sha256-0xSej1g7eP2kaUF+JQp8jdyNmpmCJKRpO12mKl/36Kc=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "b60ebf54c15553b393d144357375ea956f89e9a9",
|
"rev": "2741b4b489b55df32afac57bc4bfd220e8bf617e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -932,11 +1114,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-stable_4": {
|
"nixpkgs-stable_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1718478900,
|
"lastModified": 1719663039,
|
||||||
"narHash": "sha256-v43N1gZLcGkhg3PdcrKUNIZ1L0FBzB2JqhIYEyKAHEs=",
|
"narHash": "sha256-tXlrgAQygNIy49LDVFuPXlWD2zTQV9/F8pfoqwwPJyo=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "c884223af91820615a6146af1ae1fea25c107005",
|
"rev": "4a1e673523344f6ccc84b37f4413ad74ea19a119",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -1010,6 +1192,33 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixvim": {
|
||||||
|
"inputs": {
|
||||||
|
"devshell": "devshell",
|
||||||
|
"flake-compat": "flake-compat_2",
|
||||||
|
"flake-parts": "flake-parts",
|
||||||
|
"git-hooks": "git-hooks",
|
||||||
|
"home-manager": "home-manager_2",
|
||||||
|
"nix-darwin": "nix-darwin",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"treefmt-nix": "treefmt-nix"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1719835160,
|
||||||
|
"narHash": "sha256-AyZJM2la6+CAdKKSC3y80sbneW8dH/2lb+OxKzi2cAw=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixvim",
|
||||||
|
"rev": "7cc1685eafdcf04cf1058949647ea2c7560f2d65",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixvim",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"obs-image-reaction": {
|
"obs-image-reaction": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_2"
|
"nixpkgs": "nixpkgs_2"
|
||||||
@ -1071,7 +1280,7 @@
|
|||||||
},
|
},
|
||||||
"poetry2nix": {
|
"poetry2nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils_2",
|
"flake-utils": "flake-utils_3",
|
||||||
"nix-github-actions": "nix-github-actions",
|
"nix-github-actions": "nix-github-actions",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"oscuro",
|
"oscuro",
|
||||||
@ -1108,8 +1317,8 @@
|
|||||||
"devenv",
|
"devenv",
|
||||||
"flake-compat"
|
"flake-compat"
|
||||||
],
|
],
|
||||||
"flake-utils": "flake-utils_3",
|
"flake-utils": "flake-utils_4",
|
||||||
"gitignore": "gitignore",
|
"gitignore": "gitignore_2",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"oscuro",
|
"oscuro",
|
||||||
"bonfire",
|
"bonfire",
|
||||||
@ -1142,6 +1351,7 @@
|
|||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"nixos-mailserver": "nixos-mailserver",
|
"nixos-mailserver": "nixos-mailserver",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
|
"nixvim": "nixvim",
|
||||||
"obs-image-reaction": "obs-image-reaction",
|
"obs-image-reaction": "obs-image-reaction",
|
||||||
"oscuro": "oscuro",
|
"oscuro": "oscuro",
|
||||||
"sops-nix": "sops-nix_3"
|
"sops-nix": "sops-nix_3"
|
||||||
@ -1203,11 +1413,11 @@
|
|||||||
"nixpkgs-stable": "nixpkgs-stable_4"
|
"nixpkgs-stable": "nixpkgs-stable_4"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1718506969,
|
"lastModified": 1719716556,
|
||||||
"narHash": "sha256-Pm9I/BMQHbsucdWf6y9G3xBZh3TMlThGo4KBbeoeczg=",
|
"narHash": "sha256-KA9gy2Wkv76s4A8eLnOcdKVTygewbw3xsB8+awNMyqs=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "sops-nix",
|
"repo": "sops-nix",
|
||||||
"rev": "797ce4c1f45a85df6dd3d9abdc53f2691bea9251",
|
"rev": "b5974d4331fb6c893e808977a2e1a6d34b3162d6",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -1276,9 +1486,45 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"systems_5": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"treefmt-nix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1719749022,
|
||||||
|
"narHash": "sha256-ddPKHcqaKCIFSFc/cvxS14goUhCOAwsM1PbMr0ZtHMg=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"rev": "8df5ff62195d4e67e2264df0b7f5e8c9995fd0bd",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"utils": {
|
"utils": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems"
|
"systems": "systems_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1709126324,
|
"lastModified": 1709126324,
|
||||||
@ -1296,7 +1542,7 @@
|
|||||||
},
|
},
|
||||||
"utils_2": {
|
"utils_2": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_4"
|
"systems": "systems_5"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1709126324,
|
"lastModified": 1709126324,
|
||||||
|
46
flake.nix
46
flake.nix
@ -38,10 +38,24 @@
|
|||||||
obs-image-reaction = {
|
obs-image-reaction = {
|
||||||
url = "github:L-Nafaryus/obs-image-reaction";
|
url = "github:L-Nafaryus/obs-image-reaction";
|
||||||
};
|
};
|
||||||
|
nixvim = {
|
||||||
|
url = "github:nix-community/nixvim";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = { self, nixpkgs, home-manager, nixos-mailserver, sops-nix, crane, fenix, catppuccin, oscuro, ... } @ inputs:
|
outputs = {
|
||||||
let
|
self,
|
||||||
|
nixpkgs,
|
||||||
|
home-manager,
|
||||||
|
nixos-mailserver,
|
||||||
|
sops-nix,
|
||||||
|
crane,
|
||||||
|
fenix,
|
||||||
|
catppuccin,
|
||||||
|
oscuro,
|
||||||
|
...
|
||||||
|
} @ inputs: let
|
||||||
lib = import ./lib {inherit (nixpkgs) lib;};
|
lib = import ./lib {inherit (nixpkgs) lib;};
|
||||||
in {
|
in {
|
||||||
inherit lib;
|
inherit lib;
|
||||||
@ -54,7 +68,11 @@
|
|||||||
./nixosConfigurations/astora
|
./nixosConfigurations/astora
|
||||||
self.nixosModules.bonfire
|
self.nixosModules.bonfire
|
||||||
self.nixosModules.spoofdpi
|
self.nixosModules.spoofdpi
|
||||||
(import ./nixosModules { lib = nixpkgs.lib; self = self; }).configModule
|
(import ./nixosModules {
|
||||||
|
lib = nixpkgs.lib;
|
||||||
|
self = self;
|
||||||
|
})
|
||||||
|
.configModule
|
||||||
];
|
];
|
||||||
specialArgs = {inherit self inputs;};
|
specialArgs = {inherit self inputs;};
|
||||||
};
|
};
|
||||||
@ -70,13 +88,23 @@
|
|||||||
self.nixosModules.spoofdpi
|
self.nixosModules.spoofdpi
|
||||||
self.nixosModules.papermc
|
self.nixosModules.papermc
|
||||||
self.nixosModules.qbittorrent-nox
|
self.nixosModules.qbittorrent-nox
|
||||||
(import ./nixosModules { lib = nixpkgs.lib; self = self; }).configModule
|
(import ./nixosModules {
|
||||||
|
lib = nixpkgs.lib;
|
||||||
|
self = self;
|
||||||
|
})
|
||||||
|
.configModule
|
||||||
];
|
];
|
||||||
specialArgs = {inherit self;};
|
specialArgs = {inherit self;};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
nixosModules = lib.importNamedModules (import ./nixosModules { lib = nixpkgs.lib; self = self; }).modules;
|
nixosModules =
|
||||||
|
lib.importNamedModules
|
||||||
|
(import ./nixosModules {
|
||||||
|
lib = nixpkgs.lib;
|
||||||
|
self = self;
|
||||||
|
})
|
||||||
|
.modules;
|
||||||
|
|
||||||
templates = {
|
templates = {
|
||||||
rust = {
|
rust = {
|
||||||
@ -85,10 +113,16 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
packages = import ./packages { inherit self nixpkgs; };
|
packages = import ./packages {inherit self inputs;};
|
||||||
|
|
||||||
apps = import ./apps {inherit self nixpkgs;};
|
apps = import ./apps {inherit self nixpkgs;};
|
||||||
|
|
||||||
devShells = import ./devShells {inherit self nixpkgs;};
|
devShells = import ./devShells {inherit self nixpkgs;};
|
||||||
|
|
||||||
|
configurations = import ./configurations {inherit self inputs;};
|
||||||
|
|
||||||
|
hydraJobs = {
|
||||||
|
inherit (self) packages;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,17 +1,17 @@
|
|||||||
{ lib, ... }:
|
{lib, ...}: rec {
|
||||||
rec {
|
|
||||||
maintainers = import ./maintainers.nix;
|
maintainers = import ./maintainers.nix;
|
||||||
|
|
||||||
moduleName = path: if builtins.baseNameOf (toString path) == "default.nix" then
|
moduleName = path:
|
||||||
builtins.baseNameOf (lib.removeSuffix "/default.nix" (toString path))
|
if builtins.baseNameOf (toString path) == "default.nix"
|
||||||
else
|
then builtins.baseNameOf (lib.removeSuffix "/default.nix" (toString path))
|
||||||
builtins.baseNameOf (lib.removeSuffix ".nix" (toString path));
|
else builtins.baseNameOf (lib.removeSuffix ".nix" (toString path));
|
||||||
|
|
||||||
moduleNames = pathList: map (path: moduleName path) pathList;
|
moduleNames = pathList: map (path: moduleName path) pathList;
|
||||||
|
|
||||||
importModules = pathList: map (path: import path) pathList;
|
importModules = pathList: map (path: import path) pathList;
|
||||||
|
|
||||||
importNamedModules = pathList: lib.listToAttrs (
|
importNamedModules = pathList:
|
||||||
|
lib.listToAttrs (
|
||||||
lib.zipListsWith (name: value: {inherit name value;}) (moduleNames pathList) (importModules pathList)
|
lib.zipListsWith (name: value: {inherit name value;}) (moduleNames pathList) (importModules pathList)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
{ pkgs, lib, config, ... }:
|
|
||||||
{
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
system.stateVersion = "23.11";
|
system.stateVersion = "23.11";
|
||||||
|
|
||||||
imports = [./hardware.nix ./users.nix];
|
imports = [./hardware.nix ./users.nix];
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
{ config, lib, ... }:
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
# Boot
|
# Boot
|
||||||
boot = {
|
boot = {
|
||||||
loader.systemd-boot.enable = true;
|
loader.systemd-boot.enable = true;
|
||||||
@ -67,12 +70,42 @@
|
|||||||
sudo.extraConfig = ''Defaults timestamp_timeout=30'';
|
sudo.extraConfig = ''Defaults timestamp_timeout=30'';
|
||||||
rtkit.enable = true;
|
rtkit.enable = true;
|
||||||
pam.loginLimits = [
|
pam.loginLimits = [
|
||||||
{ domain = "@audio"; item = "memlock"; type = "-"; value = "unlimited"; }
|
{
|
||||||
{ domain = "@audio"; item = "rtprio"; type = "-"; value = "99"; }
|
domain = "@audio";
|
||||||
{ domain = "@audio"; item = "nofile"; type = "soft"; value = "99999"; }
|
item = "memlock";
|
||||||
{ domain = "@audio"; item = "nofile"; type = "hard"; value = "99999"; }
|
type = "-";
|
||||||
{ domain = "*"; item = "nofile"; type = "-"; value = "524288"; }
|
value = "unlimited";
|
||||||
{ domain = "*"; item = "memlock"; type = "-"; value = "524288"; }
|
}
|
||||||
|
{
|
||||||
|
domain = "@audio";
|
||||||
|
item = "rtprio";
|
||||||
|
type = "-";
|
||||||
|
value = "99";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
domain = "@audio";
|
||||||
|
item = "nofile";
|
||||||
|
type = "soft";
|
||||||
|
value = "99999";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
domain = "@audio";
|
||||||
|
item = "nofile";
|
||||||
|
type = "hard";
|
||||||
|
value = "99999";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
domain = "*";
|
||||||
|
item = "nofile";
|
||||||
|
type = "-";
|
||||||
|
value = "524288";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
domain = "*";
|
||||||
|
item = "memlock";
|
||||||
|
type = "-";
|
||||||
|
value = "524288";
|
||||||
|
}
|
||||||
];
|
];
|
||||||
polkit.enable = true;
|
polkit.enable = true;
|
||||||
};
|
};
|
||||||
@ -138,8 +171,8 @@
|
|||||||
nvidia.nvidiaSettings = true;
|
nvidia.nvidiaSettings = true;
|
||||||
nvidia.modesetting.enable = true;
|
nvidia.modesetting.enable = true;
|
||||||
|
|
||||||
opengl.enable = true;
|
graphics.enable = true;
|
||||||
opengl.driSupport32Bit = true;
|
graphics.enable32Bit = true;
|
||||||
|
|
||||||
bluetooth.enable = true;
|
bluetooth.enable = true;
|
||||||
|
|
||||||
@ -173,10 +206,12 @@
|
|||||||
internalInterfaces = ["ve-+"];
|
internalInterfaces = ["ve-+"];
|
||||||
};
|
};
|
||||||
|
|
||||||
interfaces.wlo1.ipv4.addresses = [ {
|
interfaces.wlo1.ipv4.addresses = [
|
||||||
|
{
|
||||||
address = "192.168.156.101";
|
address = "192.168.156.101";
|
||||||
prefixLength = 24;
|
prefixLength = 24;
|
||||||
} ];
|
}
|
||||||
|
];
|
||||||
|
|
||||||
defaultGateway = "192.168.156.1";
|
defaultGateway = "192.168.156.1";
|
||||||
nameservers = ["192.168.156.1" "8.8.8.8"];
|
nameservers = ["192.168.156.1" "8.8.8.8"];
|
||||||
|
@ -1,5 +1,11 @@
|
|||||||
{ config, pkgs, lib, self, inputs, ... }:
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
self,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
# Users
|
# Users
|
||||||
users.users.l-nafaryus = {
|
users.users.l-nafaryus = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
@ -15,8 +21,7 @@
|
|||||||
home-manager.useUserPackages = true;
|
home-manager.useUserPackages = true;
|
||||||
home-manager.backupFileExtension = "hmbackup";
|
home-manager.backupFileExtension = "hmbackup";
|
||||||
|
|
||||||
home-manager.users.l-nafaryus = { pkgs, ... }:
|
home-manager.users.l-nafaryus = {pkgs, ...}: let
|
||||||
let
|
|
||||||
hmConfig = config.home-manager.users.l-nafaryus;
|
hmConfig = config.home-manager.users.l-nafaryus;
|
||||||
in {
|
in {
|
||||||
home.stateVersion = "23.11";
|
home.stateVersion = "23.11";
|
||||||
@ -37,7 +42,7 @@
|
|||||||
|
|
||||||
xclip
|
xclip
|
||||||
|
|
||||||
(firefox.override { extraNativeMessagingHosts = [ passff-host ]; })
|
(firefox.override {nativeMessagingHosts = [passff-host];})
|
||||||
thunderbird
|
thunderbird
|
||||||
|
|
||||||
discord
|
discord
|
||||||
@ -78,10 +83,8 @@
|
|||||||
xtuner
|
xtuner
|
||||||
aether-lv2
|
aether-lv2
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
qbittorrent
|
qbittorrent
|
||||||
transmission-qt
|
transmission_3-qt
|
||||||
telegram-desktop
|
telegram-desktop
|
||||||
|
|
||||||
onlyoffice-bin
|
onlyoffice-bin
|
||||||
@ -116,6 +119,7 @@
|
|||||||
wl-clipboard
|
wl-clipboard
|
||||||
cliphist
|
cliphist
|
||||||
tree
|
tree
|
||||||
|
self.packages.${pkgs.system}.bonvim
|
||||||
];
|
];
|
||||||
|
|
||||||
xdg.portal = {
|
xdg.portal = {
|
||||||
@ -129,6 +133,7 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Theme
|
||||||
catppuccin = {
|
catppuccin = {
|
||||||
# global, for all enabled programs
|
# global, for all enabled programs
|
||||||
enable = true;
|
enable = true;
|
||||||
@ -145,17 +150,61 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
|
# General
|
||||||
fish = {
|
fish = {
|
||||||
enable = true;
|
enable = true;
|
||||||
interactiveShellInit = ''
|
interactiveShellInit = ''
|
||||||
set fish_greeting
|
set fish_greeting
|
||||||
'';
|
'';
|
||||||
plugins = with pkgs.fishPlugins; map (p: { name = p.pname; src = p.src; }) [
|
plugins = with pkgs.fishPlugins;
|
||||||
|
map (p: {
|
||||||
|
name = p.pname;
|
||||||
|
src = p.src;
|
||||||
|
}) [
|
||||||
fzf-fish
|
fzf-fish
|
||||||
tide # tide configure --auto --style=Lean --prompt_colors='True color' --show_time='12-hour format' --lean_prompt_height='Two lines' --prompt_connection=Disconnected --prompt_spacing=Compact --icons='Many icons' --transient=No
|
tide
|
||||||
grc
|
grc
|
||||||
hydro
|
hydro
|
||||||
];
|
];
|
||||||
|
functions = {
|
||||||
|
fish-theme-configure = ''
|
||||||
|
tide configure \
|
||||||
|
--auto \
|
||||||
|
--style=Lean \
|
||||||
|
--prompt_colors='True color' \
|
||||||
|
--show_time='12-hour format' \
|
||||||
|
--lean_prompt_height='Two lines' \
|
||||||
|
--prompt_connection=Disconnected \
|
||||||
|
--prompt_spacing=Compact \
|
||||||
|
--icons='Many icons' \
|
||||||
|
--transient=No
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
git = {
|
||||||
|
enable = true;
|
||||||
|
lfs.enable = true;
|
||||||
|
userName = "L-Nafaryus";
|
||||||
|
userEmail = "l.nafaryus@gmail.com";
|
||||||
|
signing = {
|
||||||
|
key = "86F1EA98B48FFB19";
|
||||||
|
signByDefault = true;
|
||||||
|
};
|
||||||
|
extraConfig = {
|
||||||
|
# ignore trends
|
||||||
|
init.defaultBranch = "master";
|
||||||
|
core = {
|
||||||
|
quotePath = false;
|
||||||
|
commitGraph = true;
|
||||||
|
whitespace = "trailing-space";
|
||||||
|
};
|
||||||
|
receive.advertisePushOptions = true;
|
||||||
|
gc.writeCommitGraph = true;
|
||||||
|
diff.submodule = "log";
|
||||||
|
};
|
||||||
|
aliases = {
|
||||||
|
plog = "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
bat.enable = true;
|
bat.enable = true;
|
||||||
btop = {
|
btop = {
|
||||||
@ -175,6 +224,8 @@
|
|||||||
mutableTrust = true;
|
mutableTrust = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Graphical
|
||||||
|
|
||||||
alacritty = {
|
alacritty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
@ -192,7 +243,9 @@
|
|||||||
show-icons = true;
|
show-icons = true;
|
||||||
disable-history = false;
|
disable-history = false;
|
||||||
};
|
};
|
||||||
theme = let inherit (hmConfig.lib.formats.rasi) mkLiteral; in {
|
theme = let
|
||||||
|
inherit (hmConfig.lib.formats.rasi) mkLiteral;
|
||||||
|
in {
|
||||||
"*" = {
|
"*" = {
|
||||||
border-col = mkLiteral "#a6da95";
|
border-col = mkLiteral "#a6da95";
|
||||||
};
|
};
|
||||||
@ -215,6 +268,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
|
# General
|
||||||
gpg-agent = {
|
gpg-agent = {
|
||||||
enable = true;
|
enable = true;
|
||||||
defaultCacheTtl = 3600;
|
defaultCacheTtl = 3600;
|
||||||
@ -225,6 +279,7 @@
|
|||||||
enableBashIntegration = true;
|
enableBashIntegration = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Graphical
|
||||||
hypridle = {
|
hypridle = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
@ -243,13 +298,218 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# ---
|
wayland.windowManager.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
# Devices (use `hyprctl devices`)
|
||||||
|
"$monitor1" = "AOC Q27G2G3R3B 137P4HA000540";
|
||||||
|
"$monitor2" = "AOC Q27B3MA 17ZPAHA006135";
|
||||||
|
"$keyboard" = "keychron-keychron-k3-pro";
|
||||||
|
"$mouse" = "logitech-g102-lightsync-gaming-mouse";
|
||||||
|
|
||||||
|
# Main programs
|
||||||
|
"$terminal" = "${lib.getExe hmConfig.programs.alacritty.package}";
|
||||||
|
"$menu" = "${lib.getExe hmConfig.programs.rofi.package} -show drun";
|
||||||
|
"$fileManager" = "$terminal -e ${lib.getExe pkgs.nnn}";
|
||||||
|
|
||||||
|
monitor = [
|
||||||
|
"desc:$monitor2, 2560x1440@75, 0x0, auto"
|
||||||
|
"desc:$monitor1, 2560x1440@165, 2560x0, auto"
|
||||||
|
"Unknown-1, disable"
|
||||||
|
];
|
||||||
|
|
||||||
|
exec-once = [
|
||||||
|
"eww daemon"
|
||||||
|
"nm-applet --indicator &"
|
||||||
|
"blueman-applet &"
|
||||||
|
"wl-gammarelay-rs run &"
|
||||||
|
"systemctl --user start hypridle"
|
||||||
|
"wl-paste --type text --watch cliphist store" #Stores only text data
|
||||||
|
"wl-paste --type image --watch cliphist store" #Stores only image data
|
||||||
|
"swww-daemon & swww img ~/Pictures/wallpapers/emily-in-the-cyberpunk-city.3840x2160.png & swww img ~/Pictures/wallpapers/emily-in-the-cyberpunk-city.3840x2160a.gif"
|
||||||
|
];
|
||||||
|
|
||||||
|
env = [
|
||||||
|
"XCURSOR_SIZE,16"
|
||||||
|
"HYPRCURSOR_SIZE,16"
|
||||||
|
"WLR_DRM_NO_ATOMIC,1"
|
||||||
|
];
|
||||||
|
|
||||||
|
general = {
|
||||||
|
gaps_in = 2;
|
||||||
|
gaps_out = 2;
|
||||||
|
|
||||||
|
border_size = 2;
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
|
||||||
|
"col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg";
|
||||||
|
"col.inactive_border" = "rgba(595959aa)";
|
||||||
|
|
||||||
|
# Set to true enable resizing windows by clicking and dragging on borders and gaps
|
||||||
|
resize_on_border = true;
|
||||||
|
|
||||||
|
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
|
||||||
|
allow_tearing = true;
|
||||||
|
|
||||||
|
layout = "dwindle";
|
||||||
|
};
|
||||||
|
decoration = {
|
||||||
|
rounding = 5;
|
||||||
|
|
||||||
|
# Change transparency of focused and unfocused windows
|
||||||
|
active_opacity = 1.0;
|
||||||
|
inactive_opacity = 0.95;
|
||||||
|
|
||||||
|
drop_shadow = true;
|
||||||
|
shadow_range = 4;
|
||||||
|
shadow_render_power = 3;
|
||||||
|
"col.shadow" = "rgba(1a1a1aee)";
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#blur
|
||||||
|
blur = {
|
||||||
|
enabled = true;
|
||||||
|
size = 3;
|
||||||
|
passes = 1;
|
||||||
|
|
||||||
|
vibrancy = 0.1696;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
animations = {
|
||||||
|
enabled = true;
|
||||||
|
|
||||||
|
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
||||||
|
|
||||||
|
bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
|
||||||
|
|
||||||
|
animation = [
|
||||||
|
"windows, 1, 7, myBezier"
|
||||||
|
"windowsOut, 1, 7, default, popin 80%"
|
||||||
|
"border, 1, 10, default"
|
||||||
|
"borderangle, 1, 8, default"
|
||||||
|
"fade, 1, 7, default"
|
||||||
|
"workspaces, 1, 6, default"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
||||||
|
dwindle = {
|
||||||
|
pseudotile = true; # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||||
|
preserve_split = true; # You probably want this
|
||||||
|
};
|
||||||
|
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
||||||
|
master = {
|
||||||
|
new_status = "master";
|
||||||
|
};
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#misc
|
||||||
|
misc = {
|
||||||
|
force_default_wallpaper = -1; # Set to 0 or 1 to disable the anime mascot wallpapers
|
||||||
|
disable_hyprland_logo = false; # Enable the random hyprland logo / anime girl background. :)
|
||||||
|
};
|
||||||
|
input = {
|
||||||
|
kb_layout = "us,ru";
|
||||||
|
|
||||||
|
follow_mouse = 1;
|
||||||
|
|
||||||
|
sensitivity = 0; # -1.0 - 1.0, 0 means no modification.
|
||||||
|
|
||||||
|
touchpad = {
|
||||||
|
natural_scroll = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#gestures
|
||||||
|
gestures = {
|
||||||
|
workspace_swipe = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
windowrulev2 = [
|
||||||
|
"suppressevent maximize, class:.*" # You'll probably like this.
|
||||||
|
"float, class:^(steam_app.*)$"
|
||||||
|
"immediate, class:^(steam_app.*)$"
|
||||||
|
"float, class:^(steam_proton.*)$"
|
||||||
|
];
|
||||||
|
bind = [
|
||||||
|
"SUPER, Q, exec, $terminal"
|
||||||
|
"SUPER, N, exec, $fileManager"
|
||||||
|
"SUPER, R, exec, $menu"
|
||||||
|
"SUPER, P, exec, eww open --toggle basemenu"
|
||||||
|
|
||||||
|
"SUPER, C, killactive,"
|
||||||
|
"SUPER, M, exit,"
|
||||||
|
"SUPER, V, togglefloating,"
|
||||||
|
"SUPER, F, fullscreen,"
|
||||||
|
"SUPER, J, togglesplit," # dwindle
|
||||||
|
|
||||||
|
# Move focus with mainMod + arrow keys
|
||||||
|
"SUPER, left, movefocus, l"
|
||||||
|
"SUPER, right, movefocus, r"
|
||||||
|
"SUPER, up, movefocus, u"
|
||||||
|
"SUPER, down, movefocus, d"
|
||||||
|
|
||||||
|
# Switch workspaces with mainMod + [0-9]
|
||||||
|
"SUPER, 1, workspace, 1"
|
||||||
|
"SUPER, 2, workspace, 2"
|
||||||
|
"SUPER, 3, workspace, 3"
|
||||||
|
"SUPER, 4, workspace, 4"
|
||||||
|
"SUPER, 5, workspace, 5"
|
||||||
|
"SUPER, 6, workspace, 6"
|
||||||
|
"SUPER, 7, workspace, 7"
|
||||||
|
"SUPER, 8, workspace, 8"
|
||||||
|
"SUPER, 9, workspace, 9"
|
||||||
|
"SUPER, 0, workspace, 10"
|
||||||
|
|
||||||
|
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||||
|
"SUPER SHIFT, 1, movetoworkspace, 1"
|
||||||
|
"SUPER SHIFT, 2, movetoworkspace, 2"
|
||||||
|
"SUPER SHIFT, 3, movetoworkspace, 3"
|
||||||
|
"SUPER SHIFT, 4, movetoworkspace, 4"
|
||||||
|
"SUPER SHIFT, 5, movetoworkspace, 5"
|
||||||
|
"SUPER SHIFT, 6, movetoworkspace, 6"
|
||||||
|
"SUPER SHIFT, 7, movetoworkspace, 7"
|
||||||
|
"SUPER SHIFT, 8, movetoworkspace, 8"
|
||||||
|
"SUPER SHIFT, 9, movetoworkspace, 9"
|
||||||
|
"SUPER SHIFT, 0, movetoworkspace, 10"
|
||||||
|
|
||||||
|
# special workspace (scratchpad)
|
||||||
|
"SUPER, S, togglespecialworkspace, magic"
|
||||||
|
"SUPER SHIFT, S, movetoworkspace, special:magic"
|
||||||
|
|
||||||
|
"SUPER, SPACE, exec, hyprctl switchxkblayout keychron-keychron-k3-pro next"
|
||||||
|
", PRINT, exec, hyprshot -m region"
|
||||||
|
"SUPER, H, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy"
|
||||||
|
];
|
||||||
|
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||||
|
bindm = [
|
||||||
|
"SUPER, mouse:272, movewindow"
|
||||||
|
"SUPER, mouse:273, resizewindow"
|
||||||
|
];
|
||||||
|
|
||||||
|
bindel = [
|
||||||
|
", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
|
||||||
|
", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
|
||||||
|
];
|
||||||
|
bindl = [
|
||||||
|
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
||||||
|
", XF86AudioPrev, exec, playerctl previous"
|
||||||
|
", XF86AudioPlay, exec, playerctl play-pause"
|
||||||
|
", XF86AudioNext, exec, playerctl next"
|
||||||
|
", XF86MonBrightnessDown, exec, busctl --user -- call rs.wl-gammarelay / rs.wl.gammarelay UpdateTemperature n -500"
|
||||||
|
", XF86MonBrightnessUp, exec, busctl --user -- call rs.wl-gammarelay / rs.wl.gammarelay UpdateTemperature n +500"
|
||||||
|
"SUPER, XF86MonBrightnessDown, exec, busctl --user -- call rs.wl-gammarelay / rs.wl.gammarelay Brightness d -0.1"
|
||||||
|
"SUPER, XF86MonBrightnessUp, exec, busctl --user -- call rs.wl-gammarelay / rs.wl.gammarelay Brightness d +0.1"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# XDG
|
||||||
xdg = {
|
xdg = {
|
||||||
enable = true;
|
enable = true;
|
||||||
mime.enable = true;
|
mime.enable = true;
|
||||||
userDirs.enable = true;
|
userDirs.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# dconf
|
||||||
dconf.settings = {
|
dconf.settings = {
|
||||||
"org/virt-manager/virt-manager/connections" = {
|
"org/virt-manager/virt-manager/connections" = {
|
||||||
autoconnect = ["qemu:///system"];
|
autoconnect = ["qemu:///system"];
|
||||||
@ -260,34 +520,16 @@
|
|||||||
home.sessionVariables = {
|
home.sessionVariables = {
|
||||||
HYPRSHOT_DIR = "${hmConfig.xdg.userDirs.pictures}/screenshots";
|
HYPRSHOT_DIR = "${hmConfig.xdg.userDirs.pictures}/screenshots";
|
||||||
};
|
};
|
||||||
|
|
||||||
home.file = {
|
|
||||||
#"gnupg/gpg-agent.conf".text = ''
|
|
||||||
# default-cache-ttl 3600
|
|
||||||
# pinentry-program ${pkgs.pinentry.gtk2}/bin/pinentry
|
|
||||||
#'';
|
|
||||||
|
|
||||||
".config/git/config".source = "${config.bonfire.configDir}/git/config";
|
|
||||||
|
|
||||||
".config/nvim" = {
|
|
||||||
source = "${config.bonfire.configDir}/nvim";
|
|
||||||
recursive = true;
|
|
||||||
};
|
};
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
#programs.gnupg.agent = {
|
|
||||||
# enable = true;
|
|
||||||
# enableSSHSupport = true;
|
|
||||||
# pinentryPackage = pkgs.pinentry-gnome3;
|
|
||||||
#};
|
|
||||||
|
|
||||||
environment.variables = let
|
environment.variables = let
|
||||||
makePluginPath = name: (lib.makeSearchPath name [
|
makePluginPath = name:
|
||||||
|
(lib.makeSearchPath name [
|
||||||
"/etc/profiles/per-user/$USER/lib"
|
"/etc/profiles/per-user/$USER/lib"
|
||||||
"/run/current-system/sw/lib"
|
"/run/current-system/sw/lib"
|
||||||
"$HOME/.nix-profile/lib"
|
"$HOME/.nix-profile/lib"
|
||||||
]) + ":$HOME/.${name}";
|
])
|
||||||
|
+ ":$HOME/.${name}";
|
||||||
in {
|
in {
|
||||||
LADSPA_PATH = makePluginPath "ladspa";
|
LADSPA_PATH = makePluginPath "ladspa";
|
||||||
LV2_PATH = makePluginPath "lv2";
|
LV2_PATH = makePluginPath "lv2";
|
||||||
@ -304,8 +546,6 @@
|
|||||||
|
|
||||||
programs.virt-manager.enable = true;
|
programs.virt-manager.enable = true;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Services
|
# Services
|
||||||
services.spoofdpi.enable = true;
|
services.spoofdpi.enable = true;
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,18 @@
|
|||||||
{ config, pkgs, lib, self, ... }:
|
{
|
||||||
let bonfire-pkgs = self.packages.${pkgs.system};
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
self,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
bonfire-pkgs = self.packages.${pkgs.system};
|
||||||
in {
|
in {
|
||||||
system.stateVersion = "23.11";
|
system.stateVersion = "23.11";
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
./hardware.nix
|
./hardware.nix
|
||||||
./users.nix
|
./users.nix
|
||||||
./services/papermc.nix
|
# ./services/papermc.nix # disabled
|
||||||
./services/gitea.nix
|
./services/gitea.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -15,12 +21,19 @@ in {
|
|||||||
settings = {
|
settings = {
|
||||||
experimental-features = ["nix-command" "flakes"];
|
experimental-features = ["nix-command" "flakes"];
|
||||||
trusted-users = ["l-nafaryus"];
|
trusted-users = ["l-nafaryus"];
|
||||||
allowed-users = [ "l-nafaryus" ];
|
allowed-users = ["l-nafaryus" "hydra"];
|
||||||
substituters = ["https://nix-community.cachix.org"];
|
substituters = ["https://nix-community.cachix.org"];
|
||||||
trusted-public-keys = [
|
trusted-public-keys = [
|
||||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||||
];
|
];
|
||||||
auto-optimise-store = true;
|
auto-optimise-store = true;
|
||||||
|
allowed-uris = [
|
||||||
|
"github:"
|
||||||
|
"git+https://github.com/"
|
||||||
|
"git+ssh://github.com/"
|
||||||
|
"git+https://vcs.elnafo.ru/"
|
||||||
|
"git+ssh://vcs.elnafo.ru/"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
gc = {
|
gc = {
|
||||||
automatic = lib.mkDefault true;
|
automatic = lib.mkDefault true;
|
||||||
@ -34,10 +47,6 @@ in {
|
|||||||
hostPlatform = lib.mkDefault "x86_64-linux";
|
hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
config.allowUnfree = true;
|
config.allowUnfree = true;
|
||||||
config.cudaSupport = false;
|
config.cudaSupport = false;
|
||||||
|
|
||||||
config.packageOverrides = super: {
|
|
||||||
lego = bonfire-pkgs.lego;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Services
|
# Services
|
||||||
@ -122,6 +131,12 @@ in {
|
|||||||
useACMEHost = "elnafo.ru";
|
useACMEHost = "elnafo.ru";
|
||||||
locations."/".root = "${bonfire-pkgs.bonfire-docs}";
|
locations."/".root = "${bonfire-pkgs.bonfire-docs}";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
"hydra.elnafo.ru" = {
|
||||||
|
forceSSL = true;
|
||||||
|
useACMEHost = "elnafo.ru";
|
||||||
|
locations."/".proxyPass = "http://127.0.0.1:3000";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -196,6 +211,17 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
services.hydra = {
|
||||||
|
enable = true;
|
||||||
|
listenHost = "127.0.0.1";
|
||||||
|
port = 3000;
|
||||||
|
hydraURL = "http://127.0.0.1:3000";
|
||||||
|
smtpHost = "elnafo.ru";
|
||||||
|
useSubstitutes = true;
|
||||||
|
notificationSender = "hydra@elnafo.ru";
|
||||||
|
buildMachinesFiles = [];
|
||||||
|
};
|
||||||
|
|
||||||
# Packages
|
# Packages
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
wget
|
wget
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
{ config, lib, ... }:
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
# Boot
|
# Boot
|
||||||
boot = {
|
boot = {
|
||||||
loader.systemd-boot.enable = true;
|
loader.systemd-boot.enable = true;
|
||||||
@ -139,10 +142,12 @@
|
|||||||
|
|
||||||
interfaces.enp9s0 = {
|
interfaces.enp9s0 = {
|
||||||
useDHCP = false;
|
useDHCP = false;
|
||||||
ipv4.addresses = [ {
|
ipv4.addresses = [
|
||||||
|
{
|
||||||
address = "192.168.156.102";
|
address = "192.168.156.102";
|
||||||
prefixLength = 24;
|
prefixLength = 24;
|
||||||
} ];
|
}
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
defaultGateway = "192.168.156.1";
|
defaultGateway = "192.168.156.1";
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
{ config, ... }:
|
{config, ...}: {
|
||||||
{
|
|
||||||
services.postgresql = {
|
services.postgresql = {
|
||||||
enable = true;
|
enable = true;
|
||||||
authentication = ''
|
authentication = ''
|
||||||
@ -103,5 +102,4 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{
|
||||||
let
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
inherit (pkgs) stdenv fetchurl;
|
inherit (pkgs) stdenv fetchurl;
|
||||||
|
|
||||||
playerlist = [
|
playerlist = [
|
||||||
@ -176,9 +180,17 @@ let
|
|||||||
};
|
};
|
||||||
|
|
||||||
plugins = [
|
plugins = [
|
||||||
passky grimAnticheat viaVersion directionHUD miniMOTD skinsRestorer squaremap stargate chunky xclaim
|
passky
|
||||||
|
grimAnticheat
|
||||||
|
viaVersion
|
||||||
|
directionHUD
|
||||||
|
miniMOTD
|
||||||
|
skinsRestorer
|
||||||
|
squaremap
|
||||||
|
stargate
|
||||||
|
chunky
|
||||||
|
xclaim
|
||||||
];
|
];
|
||||||
|
|
||||||
in {
|
in {
|
||||||
services.papermc = {
|
services.papermc = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@ -202,9 +214,12 @@ in {
|
|||||||
rconPasswordFile = config.sops.secrets."papermc/rcon".path;
|
rconPasswordFile = config.sops.secrets."papermc/rcon".path;
|
||||||
whitelist = whitelist;
|
whitelist = whitelist;
|
||||||
ops = operators;
|
ops = operators;
|
||||||
extraPreStart = ''
|
extraPreStart =
|
||||||
|
''
|
||||||
mkdir -p ${builtins.concatStringsSep " " (map (v: "plugins/${v.pname}") plugins)}
|
mkdir -p ${builtins.concatStringsSep " " (map (v: "plugins/${v.pname}") plugins)}
|
||||||
'' + builtins.concatStringsSep "\n" (map (v: "ln -sf ${v.outPath}/bin/${v.pname}.jar plugins/") plugins) + ''
|
''
|
||||||
|
+ builtins.concatStringsSep "\n" (map (v: "ln -sf ${v.outPath}/bin/${v.pname}.jar plugins/") plugins)
|
||||||
|
+ ''
|
||||||
|
|
||||||
ln -sf ${config.bonfire.configDir}/goodomens/plugins/MiniMOTD/main.conf plugins/MiniMOTD/
|
ln -sf ${config.bonfire.configDir}/goodomens/plugins/MiniMOTD/main.conf plugins/MiniMOTD/
|
||||||
mkdir -p plugins/MiniMOTD/icons
|
mkdir -p plugins/MiniMOTD/icons
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
{ config, pkgs, lib, ... }:
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
# Users
|
# Users
|
||||||
users.users.root.hashedPasswordFile = config.sops.secrets."users/root".path;
|
users.users.root.hashedPasswordFile = config.sops.secrets."users/root".path;
|
||||||
|
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
{ lib, check ? true, self, ... }:
|
{
|
||||||
rec {
|
lib,
|
||||||
|
check ? true,
|
||||||
|
self,
|
||||||
|
...
|
||||||
|
}: rec {
|
||||||
modules = [
|
modules = [
|
||||||
./misc/bonfire/default.nix
|
./misc/bonfire/default.nix
|
||||||
./services/papermc.nix
|
./services/papermc.nix
|
||||||
@ -7,8 +11,11 @@ rec {
|
|||||||
./services/spoofdpi.nix
|
./services/spoofdpi.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
configModule = { config, pkgs, ... }: {
|
configModule = {
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
config = {
|
config = {
|
||||||
# Module type checking
|
# Module type checking
|
||||||
_module.check = check;
|
_module.check = check;
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
{ config, lib, ... }:
|
{
|
||||||
with lib;
|
config,
|
||||||
let cfg = config.bonfire;
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.bonfire;
|
||||||
in {
|
in {
|
||||||
options = {
|
options = {
|
||||||
bonfire = {
|
bonfire = {
|
||||||
@ -31,15 +35,17 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
assertions = mkIf cfg.withSecrets [{
|
assertions = mkIf cfg.withSecrets [
|
||||||
assertion = (builtins.pathExists ./secrets/default.nix);
|
{
|
||||||
|
assertion = builtins.pathExists ./secrets/default.nix;
|
||||||
message = "Missed git submodule 'bonfire-secrets'";
|
message = "Missed git submodule 'bonfire-secrets'";
|
||||||
}];
|
}
|
||||||
|
];
|
||||||
|
|
||||||
environment.sessionVariables = {
|
environment.sessionVariables = {
|
||||||
BONFIRE_HOME = cfg.home;
|
BONFIRE_HOME = cfg.home;
|
||||||
};
|
};
|
||||||
|
|
||||||
bonfire.secrets = mkIf cfg.withSecrets (import ./secrets { inherit config; });
|
bonfire.secrets = mkIf cfg.withSecrets (import ./secrets {inherit config lib;});
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
{ config }:
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
}: {
|
||||||
catarina = {
|
catarina = {
|
||||||
sops = {
|
sops = {
|
||||||
defaultSopsFile = ./catarina.yaml;
|
defaultSopsFile = ./catarina.yaml;
|
||||||
@ -10,18 +12,30 @@
|
|||||||
"users/root" = {neededForUsers = true;};
|
"users/root" = {neededForUsers = true;};
|
||||||
"users/l-nafaryus" = {neededForUsers = true;};
|
"users/l-nafaryus" = {neededForUsers = true;};
|
||||||
|
|
||||||
"database/git" = { owner = "git"; group = "gitea"; };
|
"database/git" = {
|
||||||
|
owner = "git";
|
||||||
|
group = "gitea";
|
||||||
|
};
|
||||||
|
|
||||||
"mail/l-nafaryus" = {};
|
"mail/l-nafaryus" = {};
|
||||||
"mail/git" = {};
|
"mail/git" = {};
|
||||||
"mail/kirill" = {};
|
"mail/kirill" = {};
|
||||||
|
|
||||||
"gitea/mail" = { owner = "git"; group = "gitea"; };
|
"gitea/mail" = {
|
||||||
|
owner = "git";
|
||||||
|
group = "gitea";
|
||||||
|
};
|
||||||
"gitea-runner/master-token" = {};
|
"gitea-runner/master-token" = {};
|
||||||
|
|
||||||
"papermc/rcon" = { owner = "papermc"; group = "papermc"; };
|
"papermc/rcon" = lib.mkIf config.services.papermc.enable {
|
||||||
|
owner = "papermc";
|
||||||
|
group = "papermc";
|
||||||
|
};
|
||||||
|
|
||||||
discordToken = { owner = "oscuro"; group = "oscuro"; };
|
discordToken = {
|
||||||
|
owner = "oscuro";
|
||||||
|
group = "oscuro";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{
|
||||||
with lib;
|
config,
|
||||||
let
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
cfg = config.services.papermc;
|
cfg = config.services.papermc;
|
||||||
|
|
||||||
eulaFile = builtins.toFile "eula.txt" ''
|
eulaFile = builtins.toFile "eula.txt" ''
|
||||||
@ -8,22 +12,32 @@ let
|
|||||||
eula=true
|
eula=true
|
||||||
'';
|
'';
|
||||||
|
|
||||||
whitelistFile = pkgs.writeText "whitelist.json"
|
whitelistFile =
|
||||||
|
pkgs.writeText "whitelist.json"
|
||||||
(builtins.toJSON cfg.whitelist);
|
(builtins.toJSON cfg.whitelist);
|
||||||
|
|
||||||
opsFile = pkgs.writeText "ops.json"
|
opsFile =
|
||||||
|
pkgs.writeText "ops.json"
|
||||||
(builtins.toJSON cfg.ops);
|
(builtins.toJSON cfg.ops);
|
||||||
|
|
||||||
cfgToString = v: if builtins.isBool v then boolToString v else toString v;
|
cfgToString = v:
|
||||||
|
if builtins.isBool v
|
||||||
|
then boolToString v
|
||||||
|
else toString v;
|
||||||
|
|
||||||
serverPropertiesFile = let
|
serverPropertiesFile = let
|
||||||
serverProperties' = if (cfg.rconPasswordFile == null) then cfg.serverProperties else
|
serverProperties' =
|
||||||
(removeAttrs cfg.serverProperties [ "rcon.password" ]);
|
if (cfg.rconPasswordFile == null)
|
||||||
in pkgs.writeText "server.properties" (''
|
then cfg.serverProperties
|
||||||
|
else (removeAttrs cfg.serverProperties ["rcon.password"]);
|
||||||
|
in
|
||||||
|
pkgs.writeText "server.properties" (''
|
||||||
# server.properties managed by NixOS configuration
|
# server.properties managed by NixOS configuration
|
||||||
'' + concatStringsSep "\n" (mapAttrsToList
|
''
|
||||||
(n: v: "${n}=${cfgToString v}") serverProperties') +
|
+ concatStringsSep "\n" (mapAttrsToList
|
||||||
lib.optionalString (cfg.rconPasswordFile != null) "\nrcon.password=#rconpass#");
|
(n: v: "${n}=${cfgToString v}")
|
||||||
|
serverProperties')
|
||||||
|
+ lib.optionalString (cfg.rconPasswordFile != null) "\nrcon.password=#rconpass#");
|
||||||
|
|
||||||
stopScript = pkgs.writeShellScript "minecraft-server-stop" ''
|
stopScript = pkgs.writeShellScript "minecraft-server-stop" ''
|
||||||
echo stop > ${config.systemd.sockets.papermc.socketConfig.ListenFIFO}
|
echo stop > ${config.systemd.sockets.papermc.socketConfig.ListenFIFO}
|
||||||
@ -39,14 +53,15 @@ let
|
|||||||
|
|
||||||
serverPort = cfg.serverProperties.server-port or defaultServerPort;
|
serverPort = cfg.serverProperties.server-port or defaultServerPort;
|
||||||
|
|
||||||
rconPort = if cfg.serverProperties.enable-rcon or false
|
rconPort =
|
||||||
|
if cfg.serverProperties.enable-rcon or false
|
||||||
then cfg.serverProperties."rcon.port" or 25575
|
then cfg.serverProperties."rcon.port" or 25575
|
||||||
else null;
|
else null;
|
||||||
|
|
||||||
queryPort = if cfg.serverProperties.enable-query or false
|
queryPort =
|
||||||
|
if cfg.serverProperties.enable-query or false
|
||||||
then cfg.serverProperties."query.port" or 25565
|
then cfg.serverProperties."query.port" or 25565
|
||||||
else null;
|
else null;
|
||||||
|
|
||||||
in {
|
in {
|
||||||
options.services.papermc = {
|
options.services.papermc = {
|
||||||
enable = mkEnableOption "PaperMC service";
|
enable = mkEnableOption "PaperMC service";
|
||||||
@ -127,7 +142,8 @@ in {
|
|||||||
type = types.separatedString " ";
|
type = types.separatedString " ";
|
||||||
default = "-Xmx2048M -Xms2048M";
|
default = "-Xmx2048M -Xms2048M";
|
||||||
# Example options from https://minecraft.gamepedia.com/Tutorials/Server_startup_script
|
# Example options from https://minecraft.gamepedia.com/Tutorials/Server_startup_script
|
||||||
example = "-Xms4092M -Xmx4092M -XX:+UseG1GC -XX:+CMSIncrementalPacing "
|
example =
|
||||||
|
"-Xms4092M -Xmx4092M -XX:+UseG1GC -XX:+CMSIncrementalPacing "
|
||||||
+ "-XX:+CMSClassUnloadingEnabled -XX:ParallelGCThreads=2 "
|
+ "-XX:+CMSClassUnloadingEnabled -XX:ParallelGCThreads=2 "
|
||||||
+ "-XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=10";
|
+ "-XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=10";
|
||||||
description = "JVM options for the Minecraft server.";
|
description = "JVM options for the Minecraft server.";
|
||||||
@ -204,7 +220,8 @@ in {
|
|||||||
|
|
||||||
preStart = let
|
preStart = let
|
||||||
replaceSecretBin = "${pkgs.replace-secret}/bin/replace-secret";
|
replaceSecretBin = "${pkgs.replace-secret}/bin/replace-secret";
|
||||||
in ''
|
in
|
||||||
|
''
|
||||||
ln -sf ${eulaFile} eula.txt
|
ln -sf ${eulaFile} eula.txt
|
||||||
|
|
||||||
cp -b --suffix=.stateful ${whitelistFile} whitelist.json
|
cp -b --suffix=.stateful ${whitelistFile} whitelist.json
|
||||||
@ -216,19 +233,23 @@ in {
|
|||||||
${lib.optionalString (cfg.rconPasswordFile != null) ''
|
${lib.optionalString (cfg.rconPasswordFile != null) ''
|
||||||
${replaceSecretBin} '#rconpass#' '${cfg.rconPasswordFile}' server.properties
|
${replaceSecretBin} '#rconpass#' '${cfg.rconPasswordFile}' server.properties
|
||||||
''}
|
''}
|
||||||
'' + cfg.extraPreStart;
|
''
|
||||||
|
+ cfg.extraPreStart;
|
||||||
};
|
};
|
||||||
|
|
||||||
networking.firewall = mkIf cfg.openFirewall ({
|
networking.firewall = mkIf cfg.openFirewall {
|
||||||
allowedUDPPorts = [serverPort];
|
allowedUDPPorts = [serverPort];
|
||||||
allowedTCPPorts = [ serverPort ]
|
allowedTCPPorts =
|
||||||
|
[serverPort]
|
||||||
++ optional (queryPort != null) queryPort
|
++ optional (queryPort != null) queryPort
|
||||||
++ optional (rconPort != null) rconPort;
|
++ optional (rconPort != null) rconPort;
|
||||||
});
|
};
|
||||||
|
|
||||||
assertions = [
|
assertions = [
|
||||||
{ assertion = cfg.eula;
|
{
|
||||||
message = "You must agree to Mojangs EULA to run minecraft-server."
|
assertion = cfg.eula;
|
||||||
|
message =
|
||||||
|
"You must agree to Mojangs EULA to run minecraft-server."
|
||||||
+ " Read https://account.mojang.com/documents/minecraft_eula and"
|
+ " Read https://account.mojang.com/documents/minecraft_eula and"
|
||||||
+ " set `services.minecraft-server.eula` to `true` if you agree.";
|
+ " set `services.minecraft-server.eula` to `true` if you agree.";
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{
|
||||||
with lib;
|
config,
|
||||||
let
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
cfg = config.services.qbittorrent-nox;
|
cfg = config.services.qbittorrent-nox;
|
||||||
in {
|
in {
|
||||||
options.services.qbittorrent-nox = {
|
options.services.qbittorrent-nox = {
|
||||||
@ -113,7 +117,6 @@ in {
|
|||||||
RemoveIPC = true;
|
RemoveIPC = true;
|
||||||
PrivateMounts = true;
|
PrivateMounts = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
{ config, lib, bonpkgs, ... }:
|
{
|
||||||
with lib;
|
config,
|
||||||
let
|
lib,
|
||||||
|
bonpkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
cfg = config.services.spoofdpi;
|
cfg = config.services.spoofdpi;
|
||||||
in {
|
in {
|
||||||
options.services.spoofdpi = {
|
options.services.spoofdpi = {
|
||||||
|
@ -3,8 +3,7 @@
|
|||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}: let
|
||||||
let
|
|
||||||
version = bonfire.shortRev or bonfire.dirtyShortRev or "unknown";
|
version = bonfire.shortRev or bonfire.dirtyShortRev or "unknown";
|
||||||
projectPath = ../../.;
|
projectPath = ../../.;
|
||||||
modulesPath = ../../nixosModules;
|
modulesPath = ../../nixosModules;
|
||||||
@ -21,17 +20,27 @@ let
|
|||||||
];
|
];
|
||||||
|
|
||||||
formatDeclaration = declaration:
|
formatDeclaration = declaration:
|
||||||
if lib.hasPrefix (toString modulesPath) (toString declaration) then
|
if lib.hasPrefix (toString modulesPath) (toString declaration)
|
||||||
let subpath = lib.removePrefix (toString projectPath + "/") (toString declaration);
|
then let
|
||||||
in map ({ hostname, url }: {
|
subpath = lib.removePrefix (toString projectPath + "/") (toString declaration);
|
||||||
|
in
|
||||||
|
map ({
|
||||||
|
hostname,
|
||||||
|
url,
|
||||||
|
}: {
|
||||||
url = "${url}/${subpath}";
|
url = "${url}/${subpath}";
|
||||||
name = "<${hostname}:bonfire/${subpath}>";
|
name = "<${hostname}:bonfire/${subpath}>";
|
||||||
}) links
|
})
|
||||||
|
links
|
||||||
else
|
else
|
||||||
# skip external declarations
|
# skip external declarations
|
||||||
lib.singleton declaration;
|
lib.singleton declaration;
|
||||||
|
|
||||||
nixosModules = (import modulesPath { inherit lib; self = bonfire; check = false; });
|
nixosModules = import modulesPath {
|
||||||
|
inherit lib;
|
||||||
|
self = bonfire;
|
||||||
|
check = false;
|
||||||
|
};
|
||||||
|
|
||||||
evaluatedModules = lib.evalModules {
|
evaluatedModules = lib.evalModules {
|
||||||
modules = nixosModules.modules ++ [nixosModules.configModule];
|
modules = nixosModules.modules ++ [nixosModules.configModule];
|
||||||
@ -43,10 +52,12 @@ let
|
|||||||
"system"
|
"system"
|
||||||
];
|
];
|
||||||
|
|
||||||
transformOptions = option: option // {
|
transformOptions = option:
|
||||||
|
option
|
||||||
|
// {
|
||||||
declarations = lib.unique (
|
declarations = lib.unique (
|
||||||
lib.flatten (map (declaration: formatDeclaration declaration) option.declarations) ++
|
lib.flatten (map (declaration: formatDeclaration declaration) option.declarations)
|
||||||
option.declarations
|
++ option.declarations
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
documentType = "none";
|
documentType = "none";
|
||||||
@ -57,20 +68,30 @@ let
|
|||||||
derivations = lib.flatten (
|
derivations = lib.flatten (
|
||||||
map (packages: (
|
map (packages: (
|
||||||
map (name: packages.${name}) (builtins.attrNames packages)
|
map (name: packages.${name}) (builtins.attrNames packages)
|
||||||
)) (map (system: bonfire.packages.${system}) systems));
|
)) (map (system: bonfire.packages.${system}) systems)
|
||||||
|
|
||||||
renderMaintainers = maintainers: lib.concatStringsSep ", " (
|
|
||||||
let
|
|
||||||
maintainer = mt: if mt?github then "[${mt.name}](https://github.com/${mt.github})" else mt.name;
|
|
||||||
email = mt: if mt?email then "<[${mt.email}](mailto:${mt.email})>" else "";
|
|
||||||
in map (mt: maintainer mt + email mt) maintainers
|
|
||||||
);
|
);
|
||||||
|
|
||||||
renderPlatforms = platforms: if platforms != lib.platforms.none then
|
renderMaintainers = maintainers:
|
||||||
if platforms == lib.platforms.all then
|
lib.concatStringsSep ", " (
|
||||||
"all"
|
let
|
||||||
else
|
maintainer = mt:
|
||||||
lib.concatStringsSep ", " (map (platform: "__${platform}__") platforms)
|
if mt ? github
|
||||||
|
then "[${mt.name}](https://github.com/${mt.github})"
|
||||||
|
else mt.name;
|
||||||
|
email = mt:
|
||||||
|
if mt ? email
|
||||||
|
then "<[${mt.email}](mailto:${mt.email})>"
|
||||||
|
else "";
|
||||||
|
in
|
||||||
|
map (mt: maintainer mt + email mt) maintainers
|
||||||
|
);
|
||||||
|
|
||||||
|
renderPlatforms = platforms:
|
||||||
|
if platforms != lib.platforms.none
|
||||||
|
then
|
||||||
|
if platforms == lib.platforms.all
|
||||||
|
then "all"
|
||||||
|
else lib.concatStringsSep ", " (map (platform: "__${platform}__") platforms)
|
||||||
else "";
|
else "";
|
||||||
|
|
||||||
renderPackage = drv: ''
|
renderPackage = drv: ''
|
||||||
@ -104,17 +125,26 @@ let
|
|||||||
|
|
||||||
${lib.optionalString (drv.fromImage != null) "From: __${drv.fromImage.imageName}__"}
|
${lib.optionalString (drv.fromImage != null) "From: __${drv.fromImage.imageName}__"}
|
||||||
|
|
||||||
${lib.optionalString (drv.meta?license) "License: ${if lib.isList drv.meta.license then (map (license: "[${drv.meta.license.fullName}](${drv.meta.license.url})") drv.meta.license) else "[${drv.meta.license.fullName}](${drv.meta.license.url})"}"}
|
${lib.optionalString (drv.meta ? license) "License: ${
|
||||||
|
if lib.isList drv.meta.license
|
||||||
|
then (map (license: "[${drv.meta.license.fullName}](${drv.meta.license.url})") drv.meta.license)
|
||||||
|
else "[${drv.meta.license.fullName}](${drv.meta.license.url})"
|
||||||
|
}"}
|
||||||
|
|
||||||
${lib.optionalString (drv.meta ? maintainers) "Maintainers: ${renderMaintainers drv.meta.maintainers}"}
|
${lib.optionalString (drv.meta ? maintainers) "Maintainers: ${renderMaintainers drv.meta.maintainers}"}
|
||||||
|
|
||||||
${lib.optionalString (drv.meta ? platforms) "Platforms: ${renderPlatforms drv.meta.platforms}"}
|
${lib.optionalString (drv.meta ? platforms) "Platforms: ${renderPlatforms drv.meta.platforms}"}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
packagesDoc = pkgs.writeText "packages.md"
|
packagesDoc =
|
||||||
|
pkgs.writeText "packages.md"
|
||||||
(lib.concatStringsSep "\n" (map (drv:
|
(lib.concatStringsSep "\n" (map (drv:
|
||||||
if drv?imageTag then renderImage drv else renderPackage drv) derivations));
|
if drv ? imageTag
|
||||||
|
then renderImage drv
|
||||||
|
else if drv ? pname
|
||||||
|
then renderPackage drv
|
||||||
|
else "")
|
||||||
|
derivations));
|
||||||
in
|
in
|
||||||
pkgs.stdenvNoCC.mkDerivation {
|
pkgs.stdenvNoCC.mkDerivation {
|
||||||
pname = "bonfire-docs";
|
pname = "bonfire-docs";
|
||||||
@ -164,4 +194,3 @@ pkgs.stdenvNoCC.mkDerivation {
|
|||||||
platforms = lib.platforms.all;
|
platforms = lib.platforms.all;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
16
packages/bonvim/default.nix
Normal file
16
packages/bonvim/default.nix
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
nixvim-pkgs,
|
||||||
|
bonconfigs,
|
||||||
|
fenix-pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
nixvim-pkgs.makeNixvimWithModule {
|
||||||
|
pkgs = pkgs;
|
||||||
|
module = import bonconfigs.bonvim;
|
||||||
|
extraSpecialArgs = {
|
||||||
|
rustc = fenix-pkgs.complete.rustc;
|
||||||
|
cargo = fenix-pkgs.complete.cargo;
|
||||||
|
rust-analyzer = fenix-pkgs.complete.rust-analyzer;
|
||||||
|
};
|
||||||
|
}
|
@ -6,8 +6,8 @@
|
|||||||
version ? "v0.44.0",
|
version ? "v0.44.0",
|
||||||
hash ? "sha256-3u2GWgDQpa4sU/66vS6S+JwCEL/fvy8MTsATRs7RGVs=",
|
hash ? "sha256-3u2GWgDQpa4sU/66vS6S+JwCEL/fvy8MTsATRs7RGVs=",
|
||||||
...
|
...
|
||||||
}:
|
}: let
|
||||||
let pkg = {
|
pkg = {
|
||||||
pname = "cargo-shuttle";
|
pname = "cargo-shuttle";
|
||||||
inherit version;
|
inherit version;
|
||||||
|
|
||||||
@ -37,7 +37,9 @@ let pkg = {
|
|||||||
maintainers = with bonfire.lib.maintainers; [L-Nafaryus];
|
maintainers = with bonfire.lib.maintainers; [L-Nafaryus];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
in let cargoArtifacts = crane-lib.buildDepsOnly pkg;
|
in let
|
||||||
in crane-lib.buildPackage (
|
cargoArtifacts = crane-lib.buildDepsOnly pkg;
|
||||||
|
in
|
||||||
|
crane-lib.buildPackage (
|
||||||
pkg // {inherit cargoArtifacts;}
|
pkg // {inherit cargoArtifacts;}
|
||||||
)
|
)
|
||||||
|
@ -1,8 +1,11 @@
|
|||||||
{
|
{
|
||||||
bonfire,
|
bonfire,
|
||||||
stdenv, lib, pkgs,
|
stdenv,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
version ? "1.10.0",
|
version ? "1.10.0",
|
||||||
sha256 ? "sha256-36GAGfvHZyNZe/Z7o3VrCCwApkZpJ+r2E8+1Hy32G5Q=", ...
|
sha256 ? "sha256-36GAGfvHZyNZe/Z7o3VrCCwApkZpJ+r2E8+1Hy32G5Q=",
|
||||||
|
...
|
||||||
}:
|
}:
|
||||||
pkgs.python3.pkgs.buildPythonPackage {
|
pkgs.python3.pkgs.buildPythonPackage {
|
||||||
pname = "dearpygui";
|
pname = "dearpygui";
|
||||||
|
@ -1,24 +1,29 @@
|
|||||||
# self.packages.${system}
|
# self.packages.${system}
|
||||||
#
|
#
|
||||||
{ self, nixpkgs, ... }:
|
{
|
||||||
let
|
self,
|
||||||
forAllSystems = nixpkgs.lib.genAttrs [ "x86_64-linux" ];
|
inputs,
|
||||||
nixpkgsFor = forAllSystems (system: import nixpkgs { inherit system; });
|
...
|
||||||
|
}: let
|
||||||
in forAllSystems(system:
|
forAllSystems = inputs.nixpkgs.lib.genAttrs ["x86_64-linux"];
|
||||||
let
|
nixpkgsFor = forAllSystems (system: import inputs.nixpkgs {inherit system;});
|
||||||
|
in
|
||||||
|
forAllSystems (system: let
|
||||||
pkgs = nixpkgsFor.${system};
|
pkgs = nixpkgsFor.${system};
|
||||||
|
|
||||||
bonfire = self;
|
bonfire = self;
|
||||||
bonlib = self.lib;
|
bonlib = self.lib;
|
||||||
bonpkgs = self.packages.${system};
|
bonpkgs = self.packages.${system};
|
||||||
|
bonconfigs = self.configurations;
|
||||||
|
|
||||||
crane = self.inputs.crane;
|
crane = self.inputs.crane;
|
||||||
crane-lib = self.inputs.crane.mkLib pkgs;
|
crane-lib = self.inputs.crane.mkLib pkgs;
|
||||||
|
|
||||||
fenix = self.inputs.fenix;
|
fenix = self.inputs.fenix;
|
||||||
in {
|
fenix-pkgs = self.inputs.fenix.packages.${system};
|
||||||
|
|
||||||
|
nixvim-pkgs = self.inputs.nixvim.legacyPackages.${system};
|
||||||
|
in {
|
||||||
bonfire-docs = pkgs.callPackage ./bonfire-docs {inherit bonfire;};
|
bonfire-docs = pkgs.callPackage ./bonfire-docs {inherit bonfire;};
|
||||||
|
|
||||||
netgen = pkgs.callPackage ./netgen {inherit bonfire;};
|
netgen = pkgs.callPackage ./netgen {inherit bonfire;};
|
||||||
@ -38,5 +43,6 @@ in forAllSystems(system:
|
|||||||
nix-minimal = pkgs.callPackage ./nix-minimal {inherit bonpkgs bonlib;};
|
nix-minimal = pkgs.callPackage ./nix-minimal {inherit bonpkgs bonlib;};
|
||||||
|
|
||||||
nix-runner = pkgs.callPackage ./nix-runner {inherit bonpkgs bonlib;};
|
nix-runner = pkgs.callPackage ./nix-runner {inherit bonpkgs bonlib;};
|
||||||
|
|
||||||
|
bonvim = import ./bonvim {inherit nixvim-pkgs pkgs bonconfigs fenix-pkgs;};
|
||||||
})
|
})
|
||||||
# map (ps: (map (p: { name = p; systems = [ ps.${p}.system ]; type = if ps.${p}?imageTag then "image" else "package"; }) (builtins.attrNames ps))) (map (s: bf.packages.${s}) (builtins.attrNames bf.packages))
|
|
||||||
|
@ -1,10 +1,13 @@
|
|||||||
{
|
{
|
||||||
bonfire,
|
bonfire,
|
||||||
lib,
|
lib,
|
||||||
fetchFromGitHub, buildGoModule, nixosTests,
|
fetchFromGitHub,
|
||||||
|
buildGoModule,
|
||||||
|
nixosTests,
|
||||||
version ? "c847ac4a4c55d6a5a457f6ef494cf45a47299e01",
|
version ? "c847ac4a4c55d6a5a457f6ef494cf45a47299e01",
|
||||||
hash ? "sha256-g9OxhM+iNUrAZgM1we8qPsismPy5a0eN654tSYuM/No=",
|
hash ? "sha256-g9OxhM+iNUrAZgM1we8qPsismPy5a0eN654tSYuM/No=",
|
||||||
vendorHash ? "sha256-wG0x86lptEY3x+7kVN7v1XZniliMOxaJ6Y95YS6ivJY=", ...
|
vendorHash ? "sha256-wG0x86lptEY3x+7kVN7v1XZniliMOxaJ6Y95YS6ivJY=",
|
||||||
|
...
|
||||||
}:
|
}:
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "lego";
|
pname = "lego";
|
||||||
|
@ -1,10 +1,13 @@
|
|||||||
{
|
{
|
||||||
bonfire,
|
bonfire,
|
||||||
stdenv, lib, pkgs,
|
stdenv,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
version ? "6.2.2402",
|
version ? "6.2.2402",
|
||||||
sha256 ? "sha256-o3cj5k2VtYiGcs9Z9FyfwtOpDlZZlcO3kRgBSer6KAw=", ...
|
sha256 ? "sha256-o3cj5k2VtYiGcs9Z9FyfwtOpDlZZlcO3kRgBSer6KAw=",
|
||||||
}:
|
...
|
||||||
let pkg = stdenv.mkDerivation {
|
}: let
|
||||||
|
pkg = stdenv.mkDerivation {
|
||||||
pname = "netgen";
|
pname = "netgen";
|
||||||
inherit version;
|
inherit version;
|
||||||
|
|
||||||
@ -35,7 +38,8 @@ let pkg = stdenv.mkDerivation {
|
|||||||
cmake
|
cmake
|
||||||
ninja
|
ninja
|
||||||
git
|
git
|
||||||
(python3.withPackages (ps: with ps; [
|
(python3.withPackages (ps:
|
||||||
|
with ps; [
|
||||||
pybind11
|
pybind11
|
||||||
mpi4py
|
mpi4py
|
||||||
]))
|
]))
|
||||||
@ -69,4 +73,5 @@ let pkg = stdenv.mkDerivation {
|
|||||||
broken = pkgs.stdenv.isDarwin;
|
broken = pkgs.stdenv.isDarwin;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
in pkg
|
in
|
||||||
|
pkg
|
||||||
|
@ -4,24 +4,32 @@
|
|||||||
bonlib,
|
bonlib,
|
||||||
extraPaths ? [],
|
extraPaths ? [],
|
||||||
...
|
...
|
||||||
}:
|
}: let
|
||||||
let
|
|
||||||
nixPath = pkgs.writeText "nixpkgsError" '' _: throw '''
|
nixPath = pkgs.writeText "nixpkgsError" '' _: throw '''
|
||||||
This container doesn't include nixpkgs.
|
This container doesn't include nixpkgs.
|
||||||
Hint: override the NIX_PATH environment variable with eg:
|
Hint: override the NIX_PATH environment variable with eg:
|
||||||
"NIX_PATH=nixpkgs=channel:nixos-unstable"
|
"NIX_PATH=nixpkgs=channel:nixos-unstable"
|
||||||
''' '';
|
''' '';
|
||||||
|
|
||||||
builderIds = let forEach = n: if n == 1 then [n] else [n] ++ forEach (n - 1); in forEach 32;
|
builderIds = let
|
||||||
|
forEach = n:
|
||||||
|
if n == 1
|
||||||
|
then [n]
|
||||||
|
else [n] ++ forEach (n - 1);
|
||||||
|
in
|
||||||
|
forEach 32;
|
||||||
|
|
||||||
withFakeNss = with pkgs; [
|
withFakeNss = with pkgs; [
|
||||||
(writeTextDir "etc/passwd" (
|
(writeTextDir "etc/passwd" (
|
||||||
builtins.concatStringsSep "\n" (
|
builtins.concatStringsSep "\n" (
|
||||||
map (n: "nixbld${toString n}:x:${toString (30000 + n)}:30000:Nix build user ${toString n}:/var/empty:/bin/false") builderIds)
|
map (n: "nixbld${toString n}:x:${toString (30000 + n)}:30000:Nix build user ${toString n}:/var/empty:/bin/false") builderIds
|
||||||
+ "\n" + ''
|
)
|
||||||
|
+ "\n"
|
||||||
|
+ ''
|
||||||
root:x:0:0:System administrator:/root:${bashInteractive}/bin/bash
|
root:x:0:0:System administrator:/root:${bashInteractive}/bin/bash
|
||||||
nobody:x:65534:65534:Unprivileged account (don't use!):/var/empty:${shadow}/bin/nologin
|
nobody:x:65534:65534:Unprivileged account (don't use!):/var/empty:${shadow}/bin/nologin
|
||||||
''))
|
''
|
||||||
|
))
|
||||||
|
|
||||||
(writeTextDir "etc/group" ''
|
(writeTextDir "etc/group" ''
|
||||||
root:x:0:
|
root:x:0:
|
||||||
@ -71,15 +79,16 @@ let
|
|||||||
trusted-users = root
|
trusted-users = root
|
||||||
'')
|
'')
|
||||||
];
|
];
|
||||||
|
in
|
||||||
in pkgs.dockerTools.buildImageWithNixDb {
|
pkgs.dockerTools.buildImageWithNixDb {
|
||||||
name = "nix-minimal";
|
name = "nix-minimal";
|
||||||
tag = "latest";
|
tag = "latest";
|
||||||
|
|
||||||
copyToRoot = pkgs.buildEnv {
|
copyToRoot = pkgs.buildEnv {
|
||||||
name = "image-root";
|
name = "image-root";
|
||||||
pathsToLink = ["/bin" "/etc"];
|
pathsToLink = ["/bin" "/etc"];
|
||||||
paths = with pkgs; [
|
paths = with pkgs;
|
||||||
|
[
|
||||||
dockerTools.usrBinEnv
|
dockerTools.usrBinEnv
|
||||||
|
|
||||||
coreutils
|
coreutils
|
||||||
@ -96,10 +105,14 @@ in pkgs.dockerTools.buildImageWithNixDb {
|
|||||||
pythonSupport = false;
|
pythonSupport = false;
|
||||||
withpcre2 = false;
|
withpcre2 = false;
|
||||||
withManual = false;
|
withManual = false;
|
||||||
}).overrideAttrs (_: { doInstallCheck = false; }))
|
})
|
||||||
|
.overrideAttrs (_: {doInstallCheck = false;}))
|
||||||
|
|
||||||
iana-etc
|
iana-etc
|
||||||
] ++ withFakeNss ++ withNixConf ++ extraPaths;
|
]
|
||||||
|
++ withFakeNss
|
||||||
|
++ withNixConf
|
||||||
|
++ extraPaths;
|
||||||
};
|
};
|
||||||
|
|
||||||
runAsRoot = with pkgs; ''
|
runAsRoot = with pkgs; ''
|
||||||
@ -120,7 +133,8 @@ in pkgs.dockerTools.buildImageWithNixDb {
|
|||||||
"NIX_PATH=nixpkgs=${nixPath}"
|
"NIX_PATH=nixpkgs=${nixPath}"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
} // {
|
}
|
||||||
|
// {
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
homepage = "https://vcs.elnafo.ru/L-Nafaryus/bonfire";
|
homepage = "https://vcs.elnafo.ru/L-Nafaryus/bonfire";
|
||||||
description = "Minimal image with a Nix package manager";
|
description = "Minimal image with a Nix package manager";
|
||||||
|
@ -14,16 +14,21 @@ pkgs.dockerTools.buildImage {
|
|||||||
copyToRoot = pkgs.buildEnv {
|
copyToRoot = pkgs.buildEnv {
|
||||||
name = "image-root";
|
name = "image-root";
|
||||||
pathsToLink = ["/bin"];
|
pathsToLink = ["/bin"];
|
||||||
paths = with pkgs; [
|
paths = with pkgs;
|
||||||
|
[
|
||||||
nodejs
|
nodejs
|
||||||
jq
|
jq
|
||||||
cachix
|
cachix
|
||||||
] ++ extraPaths;
|
]
|
||||||
|
++ extraPaths;
|
||||||
};
|
};
|
||||||
|
|
||||||
config.Cmd = ["/bin/bash"];
|
config.Cmd = ["/bin/bash"];
|
||||||
} // {
|
}
|
||||||
meta = bonpkgs.nix-minimal.meta // {
|
// {
|
||||||
|
meta =
|
||||||
|
bonpkgs.nix-minimal.meta
|
||||||
|
// {
|
||||||
description = "Image for action runners with a Nix package manager";
|
description = "Image for action runners with a Nix package manager";
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
Docker image for action runners with Nix package manager (https://nixos.org/).
|
Docker image for action runners with Nix package manager (https://nixos.org/).
|
||||||
|
@ -1,16 +1,18 @@
|
|||||||
{
|
{
|
||||||
bonfire,
|
bonfire,
|
||||||
stdenv, lib, pkgs,
|
stdenv,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
version ? "11.20240116",
|
version ? "11.20240116",
|
||||||
sha256 ? "sha256-bNWlza3cL/lUrwrVEmPECvKbFkwR2rTMaccsn8amGFQ=", ...
|
sha256 ? "sha256-bNWlza3cL/lUrwrVEmPECvKbFkwR2rTMaccsn8amGFQ=",
|
||||||
}:
|
...
|
||||||
let
|
}: let
|
||||||
version' = lib.strings.splitString "." version;
|
version' = lib.strings.splitString "." version;
|
||||||
major = lib.elemAt version' 0;
|
major = lib.elemAt version' 0;
|
||||||
revision = lib.elemAt version' 1;
|
revision = lib.elemAt version' 1;
|
||||||
realname = "OpenFOAM";
|
realname = "OpenFOAM";
|
||||||
in
|
in let
|
||||||
let pkg = stdenv.mkDerivation {
|
pkg = stdenv.mkDerivation {
|
||||||
pname = "openfoam";
|
pname = "openfoam";
|
||||||
inherit version major;
|
inherit version major;
|
||||||
|
|
||||||
@ -81,4 +83,5 @@ let pkg = stdenv.mkDerivation {
|
|||||||
broken = pkgs.stdenv.isDarwin;
|
broken = pkgs.stdenv.isDarwin;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
in pkg
|
in
|
||||||
|
pkg
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
{
|
{
|
||||||
bonfire,
|
bonfire,
|
||||||
lib, pkgs,
|
lib,
|
||||||
|
pkgs,
|
||||||
version ? "0.8",
|
version ? "0.8",
|
||||||
hash ? "sha256-kPCdOZl4m7KBb970TjJokXorKfnCvuV5Uq7lFQIh1z8=",
|
hash ? "sha256-kPCdOZl4m7KBb970TjJokXorKfnCvuV5Uq7lFQIh1z8=",
|
||||||
vendorHash ? "sha256-ib9xRklkLfrDCuLf7zDkJE8lJiNiUMPZ01MDxvqho6o=", ...
|
vendorHash ? "sha256-ib9xRklkLfrDCuLf7zDkJE8lJiNiUMPZ01MDxvqho6o=",
|
||||||
|
...
|
||||||
}:
|
}:
|
||||||
pkgs.buildGoModule {
|
pkgs.buildGoModule {
|
||||||
pname = "spoofdpi";
|
pname = "spoofdpi";
|
||||||
|
@ -1,11 +1,18 @@
|
|||||||
{
|
{
|
||||||
bonfire,
|
bonfire,
|
||||||
lib, stdenv,
|
lib,
|
||||||
fetchFromGitHub, wrapQtAppsHook,
|
stdenv,
|
||||||
extra-cmake-modules, cmake,
|
fetchFromGitHub,
|
||||||
file, jdk17,
|
wrapQtAppsHook,
|
||||||
copyDesktopItems, makeDesktopItem,
|
extra-cmake-modules,
|
||||||
xorg, libpulseaudio, libGL
|
cmake,
|
||||||
|
file,
|
||||||
|
jdk17,
|
||||||
|
copyDesktopItems,
|
||||||
|
makeDesktopItem,
|
||||||
|
xorg,
|
||||||
|
libpulseaudio,
|
||||||
|
libGL,
|
||||||
}:
|
}:
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "faf3c966c43465d6f6c245ed78556222240398ee";
|
version = "faf3c966c43465d6f6c245ed78556222240398ee";
|
||||||
@ -43,7 +50,8 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
# TODO: fix broken data directory location
|
# TODO: fix broken data directory location
|
||||||
postInstall = let
|
postInstall = let
|
||||||
libpath = with xorg; lib.makeLibraryPath [
|
libpath = with xorg;
|
||||||
|
lib.makeLibraryPath [
|
||||||
libX11
|
libX11
|
||||||
libXext
|
libXext
|
||||||
libXcursor
|
libXcursor
|
||||||
|
@ -3,11 +3,18 @@
|
|||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
||||||
crane = { url = "github:ipetkov/crane"; inputs.nixpkgs.follows = "nixpkgs"; };
|
crane = {
|
||||||
|
url = "github:ipetkov/crane";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = inputs @ { self, nixpkgs, crane, ... }:
|
outputs = inputs @ {
|
||||||
let
|
self,
|
||||||
|
nixpkgs,
|
||||||
|
crane,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
forAllSystems = nixpkgs.lib.genAttrs ["x86_64-linux"];
|
forAllSystems = nixpkgs.lib.genAttrs ["x86_64-linux"];
|
||||||
nixpkgsFor = forAllSystems (system: import nixpkgs {inherit system;});
|
nixpkgsFor = forAllSystems (system: import nixpkgs {inherit system;});
|
||||||
in {
|
in {
|
||||||
@ -15,7 +22,8 @@
|
|||||||
my-crate = let
|
my-crate = let
|
||||||
pkgs = nixpkgsFor.${system};
|
pkgs = nixpkgsFor.${system};
|
||||||
craneLib = crane.lib.${system};
|
craneLib = crane.lib.${system};
|
||||||
in craneLib.buildPackage {
|
in
|
||||||
|
craneLib.buildPackage {
|
||||||
src = craneLib.cleanCargoSource (craneLib.path ./.);
|
src = craneLib.cleanCargoSource (craneLib.path ./.);
|
||||||
strictDeps = true;
|
strictDeps = true;
|
||||||
|
|
||||||
@ -28,7 +36,10 @@
|
|||||||
checks = forAllSystems (system: {
|
checks = forAllSystems (system: {
|
||||||
inherit (self.packages.${system}.my-crate);
|
inherit (self.packages.${system}.my-crate);
|
||||||
|
|
||||||
my-crate-fmt = let craneLib = crane.lib.${system}; in craneLib.cargoFmt {
|
my-crate-fmt = let
|
||||||
|
craneLib = crane.lib.${system};
|
||||||
|
in
|
||||||
|
craneLib.cargoFmt {
|
||||||
src = craneLib.cleanCargoSource (craneLib.path ./.);
|
src = craneLib.cleanCargoSource (craneLib.path ./.);
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
@ -48,5 +59,4 @@
|
|||||||
};
|
};
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user