what is even the point of this if I'm not going to commit for weeks at a time
This commit is contained in:
parent
692322af16
commit
c1c092bea7
|
@ -9,7 +9,7 @@
|
|||
];
|
||||
|
||||
programs.git.config.merge.tool = "meld";
|
||||
programs.git.config.core.editor = "nvim";
|
||||
programs.git.config.core.editor = "kak";
|
||||
|
||||
programs.neovim = {
|
||||
enable = true;
|
||||
|
@ -26,12 +26,12 @@
|
|||
'';
|
||||
packages.myVimPackage = with pkgs.vimPlugins; {
|
||||
start = [
|
||||
rust-vim
|
||||
#rust-vim
|
||||
vim-tmux-navigator
|
||||
popup-nvim
|
||||
vim-sleuth
|
||||
nvim-lspconfig
|
||||
rust-tools-nvim
|
||||
#rust-tools-nvim
|
||||
tabby-nvim
|
||||
nvim-lint
|
||||
nvim-cmp
|
||||
|
@ -44,7 +44,8 @@
|
|||
telescope-file-browser-nvim
|
||||
telescope-fzy-native-nvim
|
||||
nvim-treesitter.withAllGrammars
|
||||
sweetie-nvim
|
||||
#sweetie-nvim
|
||||
tokyonight-nvim
|
||||
vim-nix
|
||||
csharpls-extended-lsp-nvim
|
||||
];
|
||||
|
|
|
@ -1,4 +1,7 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
let
|
||||
swaylockCmd = "swaylock -c 1a1b26";
|
||||
in
|
||||
{
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
|
@ -16,14 +19,161 @@
|
|||
|
||||
libinput.enable = true;
|
||||
|
||||
displayManager.sddm = {
|
||||
enable = true;
|
||||
wayland.enable = true;
|
||||
};
|
||||
|
||||
desktopManager.plasma6 = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
blueman.enable = true;
|
||||
};
|
||||
|
||||
# sway stuff
|
||||
programs.regreet.enable = true;
|
||||
services.greetd.settings = {
|
||||
default_session.command = "${pkgs.dbus}/bin/dbus-run-session ${lib.getExe config.programs.sway.package} -c /etc/sway/greeter-config";
|
||||
};
|
||||
programs.regreet.settings = {
|
||||
background.path = "/home/audrey/Pictures/smotsgamed.jpg";
|
||||
background.fit = "Fill";
|
||||
GTK.application_prefer_dark_theme = true;
|
||||
};
|
||||
environment.etc."sway/greeter-config".source = lib.mkForce (pkgs.writeText "sway-greeter-config" ''
|
||||
exec "${lib.getExe config.programs.regreet.package}; swaymsg exit"
|
||||
output * scale 2
|
||||
input type:keyboard {
|
||||
xkb_options "caps:escape"
|
||||
}
|
||||
input type:touchpad {
|
||||
dwt enabled
|
||||
dwtp enabled
|
||||
tap enabled
|
||||
tap_button_map lrm
|
||||
natural_scroll enabled
|
||||
}
|
||||
|
||||
# Brightness
|
||||
bindsym --locked XF86MonBrightnessDown exec light -U 10
|
||||
bindsym --locked XF86MonBrightnessUp exec light -A 10
|
||||
|
||||
blur enable
|
||||
corner_radius 8
|
||||
shadows enable
|
||||
shadow_blur_radius 8
|
||||
'');
|
||||
|
||||
programs.uwsm = {
|
||||
enable = true;
|
||||
waylandCompositors.sway = {
|
||||
prettyName = "Sway";
|
||||
binPath = "/run/current-system/sw/bin/sway";
|
||||
};
|
||||
};
|
||||
programs.sway = {
|
||||
enable = true;
|
||||
package = pkgs.swayfx;
|
||||
wrapperFeatures.gtk = true;
|
||||
xwayland.enable = true;
|
||||
extraPackages = with pkgs; [
|
||||
swaylock
|
||||
pavucontrol
|
||||
pasystray
|
||||
libnotify
|
||||
wdisplays
|
||||
playerctl
|
||||
grim
|
||||
slurp
|
||||
wl-clipboard
|
||||
wlogout
|
||||
fuzzel
|
||||
gsettings-desktop-schemas
|
||||
adwaita-icon-theme
|
||||
glib
|
||||
kdePackages.kwallet
|
||||
swaynotificationcenter
|
||||
];
|
||||
extraSessionCommands = ''
|
||||
export ELECTRON_OZONE_PLATFORM_HINT=wayland
|
||||
export SDL_VIDEODRIVER=wayland
|
||||
export QT_QPA_PLATFORM=wayland-egl
|
||||
export QT_WAYLAND_DISABLE_WINDOWDECORATION=1
|
||||
'';
|
||||
};
|
||||
environment.sessionVariables.XDG_DATA_DIRS = [ "/run/current-system/sw/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}" ];
|
||||
programs.light.enable = lib.mkIf config.programs.sway.enable true;
|
||||
security.pam.services.swaylock = {};
|
||||
security.pam.loginLimits = [
|
||||
{ domain = "@users"; item = "rtprio"; type = "-"; value = 1; }
|
||||
];
|
||||
security.pam.services = {
|
||||
greetd.kwallet = {
|
||||
enable = true;
|
||||
package = pkgs.kdePackages.kwallet-pam;
|
||||
forceRun = true;
|
||||
};
|
||||
greetd.rules.session.kwallet.settings.auto_start = true;
|
||||
};
|
||||
programs.dconf.enable = true;
|
||||
systemd.user.targets.graphical-environment = lib.mkIf config.programs.sway.enable { };
|
||||
systemd.user.services.kanshi = lib.mkIf config.programs.sway.enable {
|
||||
description = "Monitor hotswap daemon";
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
ExecStart = lib.getExe pkgs.kanshi;
|
||||
};
|
||||
partOf = [ "graphical-environment.target" ];
|
||||
wantedBy = [ "graphical-environment.target" ];
|
||||
};
|
||||
systemd.user.services.swayidle = lib.mkIf config.programs.sway.enable {
|
||||
description = "Idle lock + sleep manager";
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
ExecStart = ''${lib.getExe pkgs.swayidle} -w \
|
||||
timeout 300 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \
|
||||
timeout 360 '${swaylockCmd} -f' \
|
||||
timeout 600 'systemctl suspend' before-sleep '${swaylockCmd} -f'
|
||||
'';
|
||||
};
|
||||
partOf = [ "graphical-environment.target" ];
|
||||
wantedBy = [ "graphical-environment.target" ];
|
||||
};
|
||||
systemd.user.services.waybar = lib.mkIf config.programs.sway.enable {
|
||||
description = "Desktop status bar";
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
ExecStart = lib.getExe pkgs.waybar;
|
||||
};
|
||||
path = [ "/run/current-system/sw" ];
|
||||
partOf = [ "graphical-environment.target" ];
|
||||
wantedBy = [ "graphical-environment.target" ];
|
||||
};
|
||||
systemd.user.services.networkmanagerapplet = lib.mkIf config.programs.sway.enable {
|
||||
description = "Networkmanager applet";
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
ExecStart = lib.getExe pkgs.networkmanagerapplet;
|
||||
};
|
||||
path = [ "/run/current-system/sw" ];
|
||||
partOf = [ "graphical-environment.target" ];
|
||||
wantedBy = [ "graphical-environment.target" ];
|
||||
};
|
||||
systemd.user.services.swaynotificationcenter = lib.mkIf config.programs.sway.enable {
|
||||
description = "Sway Notification Center";
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
ExecStart = lib.getExe pkgs.swaynotificationcenter;
|
||||
};
|
||||
path = [ "/run/current-system/sw" ];
|
||||
partOf = [ "graphical-environment.target" ];
|
||||
wantedBy = [ "graphical-environment.target" ];
|
||||
};
|
||||
systemd.user.services.kdeconnect-indicator = lib.mkIf config.programs.sway.enable {
|
||||
description = "KDE connect indicator";
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
ExecStart = "${lib.getBin pkgs.kdePackages.kdeconnect-kde}/bin/kdeconnect-indicator";
|
||||
};
|
||||
path = [ "/run/current-system/sw" ];
|
||||
partOf = [ "graphical-environment.target" ];
|
||||
wantedBy = [ "graphical-environment.target" ];
|
||||
};
|
||||
|
||||
virtualisation.docker = {
|
||||
|
@ -36,11 +186,19 @@
|
|||
};
|
||||
|
||||
programs = {
|
||||
chromium.enable = true;
|
||||
firefox.enable = true;
|
||||
kdeconnect.enable = true;
|
||||
partition-manager.enable = true;
|
||||
wireshark.enable = true;
|
||||
wireshark.package = pkgs.wireshark;
|
||||
foot.enable = true;
|
||||
obs-studio = {
|
||||
enable = true;
|
||||
plugins = with pkgs.obs-studio-plugins; [
|
||||
obs-livesplit-one
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
|
@ -49,7 +207,8 @@
|
|||
element-desktop
|
||||
signal-desktop
|
||||
slack
|
||||
obs-studio
|
||||
zotero
|
||||
via
|
||||
|
||||
dwarfdump
|
||||
|
||||
|
@ -71,4 +230,7 @@
|
|||
'';
|
||||
before = [ "boot-complete.target" ];
|
||||
};
|
||||
|
||||
hardware.keyboard.qmk.enable = true;
|
||||
services.udev.packages = [ pkgs.via ];
|
||||
}
|
||||
|
|
|
@ -35,7 +35,7 @@ in {
|
|||
|
||||
# language servers
|
||||
nil
|
||||
rust-analyzer
|
||||
#rust-analyzer # misbehaves unless it's in a dev shell with other environment variables... see shelld
|
||||
lua-language-server
|
||||
clang-tools
|
||||
bash-language-server
|
||||
|
@ -49,6 +49,7 @@ in {
|
|||
];
|
||||
|
||||
programs = {
|
||||
firejail.enable = true;
|
||||
virt-manager.enable = true;
|
||||
nix-ld = {
|
||||
enable = true;
|
||||
|
@ -66,6 +67,11 @@ in {
|
|||
xorg.xcbutilkeysyms
|
||||
xorg.xcbutilrenderutil
|
||||
xorg.xcbutilwm
|
||||
xorg.libXrandr
|
||||
xorg.libXxf86vm
|
||||
xorg.libXi
|
||||
xorg.libXcursor
|
||||
xorg.libXinerama
|
||||
];
|
||||
};
|
||||
};
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
{ config, lib, pkgs, pkgs-unstable, ... }:
|
||||
let rhelmot = config.rhelmot;
|
||||
in {
|
||||
options.rhelmot = {
|
||||
|
@ -7,6 +7,11 @@ in {
|
|||
default = [];
|
||||
description = "python packages (p: with p; [ x ]) to include in the global python environment";
|
||||
};
|
||||
globalKakounePlugins = lib.mkOption {
|
||||
type = with lib.types; listOf package;
|
||||
default = [];
|
||||
description = "kakoune packages to include in the global editor";
|
||||
};
|
||||
};
|
||||
imports = [ ./overlays/packages.nix ./configuration-cross.nix ];
|
||||
config = {
|
||||
|
@ -18,6 +23,7 @@ in {
|
|||
nix.settings.cores = 0;
|
||||
nix.settings.secret-key-files = [ "/var/lib/nix/binary-cache-key" ];
|
||||
nix.settings.trusted-public-keys = builtins.filter (f: f != "") <| lib.strings.splitString "\n" <| builtins.readFile ./keys/nix;
|
||||
nix.package = pkgs.lixPackageSets.stable.lix;
|
||||
|
||||
# Select internationalisation properties.
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
|
@ -32,11 +38,15 @@ in {
|
|||
uid = 1000;
|
||||
description = "Audrey Dutcher";
|
||||
isNormalUser = true;
|
||||
extraGroups = [ "wheel" "docker" ];
|
||||
extraGroups = [ "wheel" "docker" "video" "networkmanager" ];
|
||||
openssh.authorizedKeys.keyFiles = [ ./keys/ssh ];
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
man-pages
|
||||
man-pages-posix
|
||||
bat
|
||||
gnumake
|
||||
wget
|
||||
ripgrep
|
||||
fd
|
||||
|
@ -47,6 +57,7 @@ in {
|
|||
psmisc
|
||||
patchelf
|
||||
gdb
|
||||
kubectl
|
||||
p7zip
|
||||
unzip
|
||||
foremost
|
||||
|
@ -56,9 +67,18 @@ in {
|
|||
openssl
|
||||
wireguard-tools
|
||||
cached-nix-shell
|
||||
tcpdump
|
||||
editorconfig-core-c
|
||||
pkgs-unstable.kakoune-lsp
|
||||
(pkgs-unstable.kakoune.override { plugins = rhelmot.globalKakounePlugins; })
|
||||
(python3.withPackages (p: lib.concatMap (pl: pl p) rhelmot.globalPythonPackages))
|
||||
];
|
||||
|
||||
rhelmot.globalKakounePlugins = with pkgs-unstable.kakounePlugins; [
|
||||
kak-fzf
|
||||
smarttab-kak
|
||||
];
|
||||
|
||||
rhelmot.globalPythonPackages = [ (p: with p; [
|
||||
virtualenvwrapper
|
||||
pylint
|
||||
|
@ -70,8 +90,11 @@ in {
|
|||
snakeviz
|
||||
requests
|
||||
pysocks
|
||||
aiohttp
|
||||
]) ];
|
||||
|
||||
documentation.dev.enable = true;
|
||||
|
||||
programs = {
|
||||
zsh = {
|
||||
enable = true;
|
||||
|
@ -93,6 +116,7 @@ in {
|
|||
gits = "git status";
|
||||
pag = "ps aux | grep -v grep | grep -i";
|
||||
hd = "hexdump -C";
|
||||
hdc = "hexdump -ve '\"\\\x\" 1/1 \"%02x\"'";
|
||||
man = "MAN_POSIXLY_CORRECT=1 man";
|
||||
nose = "pytest -v --capture=no --pdbcls=IPython.terminal.debugger:TerminalPdb";
|
||||
mkvirtualenv = "mkvirtualenv -r /etc/venv-default.txt";
|
||||
|
|
|
@ -8,7 +8,7 @@ if ok then
|
|||
end
|
||||
end
|
||||
|
||||
local rt = require("rust-tools")
|
||||
--local rt = require("rust-tools")
|
||||
local lint = require('lint')
|
||||
local lspconfig = require('lspconfig')
|
||||
tb = require("telescope.builtin")
|
||||
|
@ -345,7 +345,7 @@ end
|
|||
local pipe = io.popen('rustup which rust-analyzer --toolchain nightly 2>/dev/null')
|
||||
local rust_analyzer = pipe:read()
|
||||
if rust_analyzer == nil then
|
||||
pipe = io.popen('which rust-analyzer')
|
||||
pipe = io.popen('which rust-analyzer 2>/dev/null')
|
||||
rust_analyzer = pipe:read()
|
||||
end
|
||||
pipe = io.popen('which clangd')
|
||||
|
@ -360,14 +360,25 @@ pipe = io.popen('which pyright-langserver')
|
|||
pyright = pipe:read()
|
||||
pipe.close()
|
||||
if rust_analyzer ~= nil then
|
||||
rt.setup({
|
||||
server = {
|
||||
on_attach = lsp_keybinds,
|
||||
capabilities = capabilities,
|
||||
root_dir = rust_root_dir,
|
||||
cmd = {rust_analyzer},
|
||||
--rt.setup({
|
||||
-- server = {
|
||||
-- on_attach = lsp_keybinds,
|
||||
-- capabilities = capabilities,
|
||||
-- root_dir = rust_root_dir,
|
||||
-- cmd = {rust_analyzer},
|
||||
-- },
|
||||
--})
|
||||
lspconfig.rust_analyzer.setup{
|
||||
on_attach = lsp_keybinds,
|
||||
capabilities = capabilities,
|
||||
settings = {
|
||||
["rust-analyzer"] = {
|
||||
diagnostics = {
|
||||
enable = true,
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
}
|
||||
end
|
||||
if pyright ~= nil then
|
||||
lspconfig.pyright.setup{
|
||||
|
@ -509,24 +520,29 @@ show = function(x)
|
|||
vim.notify(vim.inspect(x))
|
||||
end
|
||||
|
||||
vim.g.sweetie = {
|
||||
palette = {
|
||||
dark = {
|
||||
bg_alt = "#151523",
|
||||
bg_hl = "#505040",
|
||||
}
|
||||
},
|
||||
overrides = {
|
||||
StatusLineNC = { fg = "#eeffee", bg = "#151523" },
|
||||
StatusLine = {fg = "#ffffff", bg = "#151523", bold = true },
|
||||
MatchParen = { fg = '#ae920a', reverse = false },
|
||||
Search = { fg = '#ae920a', bg = "#0b658e" },
|
||||
}
|
||||
--vim.g.sweetie = {
|
||||
-- palette = {
|
||||
-- dark = {
|
||||
-- bg = "NONE",
|
||||
-- bg_alt = "#151523",
|
||||
-- bg_hl = "#505040",
|
||||
-- }
|
||||
-- },
|
||||
-- overrides = {
|
||||
-- StatusLineNC = { fg = "#eeffee", bg = "#151523" },
|
||||
-- StatusLine = {fg = "#ffffff", bg = "#151523", bold = true },
|
||||
-- MatchParen = { fg = '#ae920a', reverse = false },
|
||||
-- Search = { fg = '#ae920a', bg = "#0b658e" },
|
||||
-- }
|
||||
--}
|
||||
require("tokyonight").setup {
|
||||
style = "night",
|
||||
transparent = true,
|
||||
}
|
||||
if vim.env.TERM == "tmux" or vim.env.TERM == "xterm" then
|
||||
vim.cmd.colorscheme("default")
|
||||
else
|
||||
vim.cmd.colorscheme("sweetie")
|
||||
vim.cmd.colorscheme("tokyonight")
|
||||
end
|
||||
|
||||
local tabtheme = {
|
||||
|
|
|
@ -10,7 +10,7 @@ unsetopt beep nomatch
|
|||
# standard functions
|
||||
|
||||
function nixos-edit() {
|
||||
(cd ~/nixos-config && vim configuration.nix)
|
||||
(cd ~/nixos-config && kak configuration.nix)
|
||||
}
|
||||
|
||||
function nixos-apply() {
|
||||
|
@ -93,11 +93,19 @@ function preexec-osc133-marker() {
|
|||
print -Pn "\e]133;B\e\\"
|
||||
print -n "\e]133;C\e\\"
|
||||
}
|
||||
function precmd-osc-title() {
|
||||
print -Pn "\e]2;%n@%M | %~\a"
|
||||
}
|
||||
function preexec-osc-title() {
|
||||
print -Pn "\e]2;%n@%M | $1\a"
|
||||
}
|
||||
|
||||
autoload -Uz add-zsh-hook
|
||||
add-zsh-hook -Uz chpwd chpwd-osc7-pwd
|
||||
add-zsh-hook -Uz precmd precmd-osc133-marker
|
||||
add-zsh-hook -Uz precmd precmd-osc-title
|
||||
add-zsh-hook -Uz preexec preexec-osc133-marker
|
||||
add-zsh-hook -Uz preexec preexec-osc-title
|
||||
|
||||
# virtualenv integration
|
||||
|
||||
|
|
|
@ -26,29 +26,34 @@ key[CtrlRight]=${terminfo[kRIT5]}
|
|||
bindkey -v
|
||||
export KEYTIMEOUT=1
|
||||
|
||||
[[ -n "${key[Home]}" ]] && bindkey "${key[Home]}" beginning-of-line
|
||||
[[ -n "${key[End]}" ]] && bindkey "${key[End]}" end-of-line
|
||||
[[ -n "${key[Insert]}" ]] && bindkey "${key[Insert]}" overwrite-mode
|
||||
[[ -n "${key[Delete]}" ]] && bindkey "${key[Delete]}" backward-delete-char
|
||||
[[ -n "${key[Up]}" ]] && bindkey "${key[Up]}" up-line-or-history
|
||||
[[ -n "${key[Down]}" ]] && bindkey "${key[Down]}" down-line-or-history
|
||||
[[ -n "${key[Left]}" ]] && bindkey "${key[Left]}" backward-char
|
||||
[[ -n "${key[Right]}" ]] && bindkey "${key[Right]}" forward-char
|
||||
[[ -n "${key[Backspace]}" ]] && bindkey "${key[Backspace]}" backward-delete-char
|
||||
[[ -n "${key[PageUp]}" ]] && bindkey "${key[PageUp]}" up-history
|
||||
[[ -n "${key[PageDown]}" ]] && bindkey "${key[PageDown]}" down-history
|
||||
[[ -n "${key[CtrlLeft]}" ]] && bindkey "${key[CtrlLeft]}" backward-word
|
||||
[[ -n "${key[CtrlRight]}" ]] && bindkey "${key[CtrlRight]}" forward-word
|
||||
bindkey-both() {
|
||||
bindkey "$@"
|
||||
bindkey -a "$@"
|
||||
}
|
||||
|
||||
bindkey '^P' up-history
|
||||
bindkey '^N' down-history
|
||||
[[ -n "${key[Home]}" ]] && bindkey-both "${key[Home]}" beginning-of-line
|
||||
[[ -n "${key[End]}" ]] && bindkey-both "${key[End]}" end-of-line
|
||||
[[ -n "${key[Insert]}" ]] && bindkey-both "${key[Insert]}" overwrite-mode
|
||||
[[ -n "${key[Delete]}" ]] && bindkey-both "${key[Delete]}" backward-delete-char
|
||||
[[ -n "${key[Up]}" ]] && bindkey-both "${key[Up]}" up-line-or-history
|
||||
[[ -n "${key[Down]}" ]] && bindkey-both "${key[Down]}" down-line-or-history
|
||||
[[ -n "${key[Left]}" ]] && bindkey-both "${key[Left]}" backward-char
|
||||
[[ -n "${key[Right]}" ]] && bindkey-both "${key[Right]}" forward-char
|
||||
[[ -n "${key[Backspace]}" ]] && bindkey "${key[Backspace]}" backward-delete-char
|
||||
[[ -n "${key[PageUp]}" ]] && bindkey-both "${key[PageUp]}" up-history
|
||||
[[ -n "${key[PageDown]}" ]] && bindkey-both "${key[PageDown]}" down-history
|
||||
[[ -n "${key[CtrlLeft]}" ]] && bindkey-both "${key[CtrlLeft]}" backward-word
|
||||
[[ -n "${key[CtrlRight]}" ]] && bindkey-both "${key[CtrlRight]}" forward-word
|
||||
|
||||
bindkey-both '^P' up-history
|
||||
bindkey-both '^N' down-history
|
||||
bindkey '^h' backward-delete-char
|
||||
bindkey '^w' backward-kill-word
|
||||
bindkey '^r' history-incremental-search-backward
|
||||
bindkey-both '^r' history-incremental-search-backward
|
||||
bindkey -a '/' history-incremental-search-backward
|
||||
# https://github.com/romkatv/zsh4humans/issues/7
|
||||
bindkey "^[[H" beginning-of-line
|
||||
bindkey "^[[F" end-of-line
|
||||
bindkey-both "^[[H" beginning-of-line
|
||||
bindkey-both "^[[F" end-of-line
|
||||
|
||||
# Finally, make sure the terminal is in application mode, when zle is
|
||||
# active. Only then are the values from $terminfo valid.
|
||||
|
|
115
flake.lock
115
flake.lock
|
@ -88,77 +88,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1731533236,
|
||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flakey-profile": {
|
||||
"locked": {
|
||||
"lastModified": 1712898590,
|
||||
"narHash": "sha256-FhGIEU93VHAChKEXx905TSiPZKga69bWl1VB37FK//I=",
|
||||
"owner": "lf-",
|
||||
"repo": "flakey-profile",
|
||||
"rev": "243c903fd8eadc0f63d205665a92d4df91d42d9d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "lf-",
|
||||
"repo": "flakey-profile",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"lix": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1751825501,
|
||||
"narHash": "sha256-6Jve3xCvRJGkz0A9D8dXH/DMWYE8MkFt+KJWQs9cLkw=",
|
||||
"rev": "378b360bf8e0d04e8dd3733acd20d7a9b70360f1",
|
||||
"type": "tarball",
|
||||
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/378b360bf8e0d04e8dd3733acd20d7a9b70360f1.tar.gz?rev=378b360bf8e0d04e8dd3733acd20d7a9b70360f1"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://git.lix.systems/lix-project/lix/archive/main.tar.gz"
|
||||
}
|
||||
},
|
||||
"lix-module": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"flakey-profile": "flakey-profile",
|
||||
"lix": "lix",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1751909859,
|
||||
"narHash": "sha256-gbpuESxl/An4GTh7QEbQRYJozVIxWkwVGbWK0/0GoRc=",
|
||||
"ref": "refs/heads/main",
|
||||
"rev": "4d4c2b8f0a801c91ce5b717c77fe3a17efa1402f",
|
||||
"revCount": 150,
|
||||
"type": "git",
|
||||
"url": "https://git.lix.systems/lix-project/nixos-module"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "https://git.lix.systems/lix-project/nixos-module"
|
||||
}
|
||||
},
|
||||
"lix_2": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_2",
|
||||
"nix2container": "nix2container",
|
||||
|
@ -227,7 +157,7 @@
|
|||
"nixbsd": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
"lix": "lix_2",
|
||||
"lix": "lix",
|
||||
"mini-tmpfiles": "mini-tmpfiles",
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
|
@ -262,13 +192,29 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1753489912,
|
||||
"narHash": "sha256-uDCFHeXdRIgJpYmtcUxGEsZ+hYlLPBhR83fdU+vbC1s=",
|
||||
"lastModified": 1757545623,
|
||||
"narHash": "sha256-mCxPABZ6jRjUQx3bPP4vjA68ETbPLNz9V2pk9tO7pRQ=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "13e8d35b7d6028b7198f8186bc0347c6abaa2701",
|
||||
"rev": "8cd5ce828d5d1d16feff37340171a98fc3bf6526",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-25.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1757545623,
|
||||
"narHash": "sha256-mCxPABZ6jRjUQx3bPP4vjA68ETbPLNz9V2pk9tO7pRQ=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "8cd5ce828d5d1d16feff37340171a98fc3bf6526",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -298,9 +244,9 @@
|
|||
"inputs": {
|
||||
"bingosync": "bingosync",
|
||||
"blog-rhelmot-io": "blog-rhelmot-io",
|
||||
"lix-module": "lix-module",
|
||||
"nixbsd": "nixbsd",
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
|
@ -318,21 +264,6 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_2": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"utils": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
|
|
11
flake.nix
11
flake.nix
|
@ -1,11 +1,8 @@
|
|||
{
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
|
||||
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-25.05";
|
||||
nixbsd.url = "github:nixos-bsd/nixbsd/main";
|
||||
lix-module = {
|
||||
url = "git+https://git.lix.systems/lix-project/nixos-module";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
bingosync.url = "github:rhelmot/bingosync";
|
||||
blog-rhelmot-io.url = "git+https://git.lain.faith/rhelmot/blog.rhelmot.io";
|
||||
|
@ -14,7 +11,7 @@
|
|||
#nixos-defcon.url = "path:/home/audrey/nixos-defcon";
|
||||
#nixos-defcon.inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
outputs = { self, nixpkgs, nixbsd, lix-module, bingosync, /*nixos-defcon, */... }@flakeInputs: let
|
||||
outputs = { self, nixpkgs, nixbsd, bingosync, nixpkgs-unstable, ... }@flakeInputs: let
|
||||
sitesFiles = builtins.readDir ./sites;
|
||||
sitesNames = builtins.filter (name: builtins.pathExists ./sites/${name}/configuration.nix) (builtins.attrNames sitesFiles);
|
||||
systemTypes = {
|
||||
|
@ -30,12 +27,14 @@
|
|||
./configuration-${systemName name}.nix
|
||||
./sites/${name}/configuration.nix
|
||||
{ nixpkgs.buildPlatform = platform; }
|
||||
lix-module.nixosModules.default
|
||||
bingosync.nixosModules.default
|
||||
#nixos-defcon.nixosModules.pkgsOverlay
|
||||
#nixos-defcon.nixosModules.tulip
|
||||
#nixos-defcon.nixosModules.noscope
|
||||
];
|
||||
specialArgs = {
|
||||
pkgs-unstable = nixpkgs-unstable.legacyPackages.${platform};
|
||||
};
|
||||
}; in {
|
||||
inherit (evaluated) config options;
|
||||
system = evaluated.config.system.build.toplevel;
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
pyhidra,
|
||||
writableTmpDirAsHomeHook,
|
||||
}: let
|
||||
libbs_latest = buildPythonPackage rec {
|
||||
libbs_latest = buildPythonPackage {
|
||||
pname = "libbs";
|
||||
version = "2.15.5+dev";
|
||||
pyproject = true;
|
||||
|
@ -83,7 +83,7 @@
|
|||
|
||||
};
|
||||
|
||||
binsync_latest = buildPythonPackage rec {
|
||||
binsync_latest = buildPythonPackage {
|
||||
pname = "binsync";
|
||||
version = "5.5.1+dev";
|
||||
pyproject = true;
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
autoPatchelfHook,
|
||||
copyDesktopItems,
|
||||
python311,
|
||||
libsForQt5,
|
||||
qt6,
|
||||
cairo,
|
||||
dbus,
|
||||
fontconfig,
|
||||
|
@ -40,13 +40,13 @@ in
|
|||
# https://github.com/msanft/ida-pro-overlay/blob/main/packages/ida-pro.nix
|
||||
stdenv.mkDerivation (self: {
|
||||
pname = "idapro";
|
||||
version = "9.0.240807";
|
||||
version = "9.2.250908";
|
||||
src = requireFile {
|
||||
name = "IDA_Pro_Linux_9.tar.gz";
|
||||
hash = "sha256-PKbEHc8dPHOMwv76xjoMUoeSn1jF7VXF9QUmQ4YSmP0=";
|
||||
name = "idapro-linux-9.2.250908.tar.xz";
|
||||
hash = "sha256-daQtHbJxCuKzfGiBzkmy7FOTCMEJX3WL7IwuuvwIi+Y=";
|
||||
message = ''
|
||||
Please run nix store add-file IDA_Pro_Linux_9.tar.gz
|
||||
Its sha256sum should be 3ca6c41dcf1d3c738cc2fefac63a0c5287929f58c5ed55c5f5052643861298fd
|
||||
Please run nix store add-file idapro-linux-9.2.250908.tar.xz
|
||||
Its sha256sum should be 75a42d1db2710ae2b37c6881ce49b2ec539308c1095f758bec8c2ebafc088be6
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -87,6 +87,7 @@ stdenv.mkDerivation (self: {
|
|||
zlib
|
||||
curl.out
|
||||
pythonForIDA
|
||||
qt6.qtwayland
|
||||
];
|
||||
buildInputs = self.runtimeDependencies;
|
||||
|
||||
|
@ -97,7 +98,6 @@ stdenv.mkDerivation (self: {
|
|||
runHook preInstall
|
||||
|
||||
mkdir -p $out/opt $out/lib $out/bin
|
||||
cp ${libsForQt5.qtbase.out}/lib/libQt5EglFSDeviceIntegration.so.5 .
|
||||
cp -a * $out/opt
|
||||
|
||||
# Link the exported libraries to the output.
|
||||
|
@ -105,8 +105,8 @@ stdenv.mkDerivation (self: {
|
|||
ln -s $lib $out/lib/$(basename $lib)
|
||||
done
|
||||
|
||||
ln -s $out/opt/ida64 $out/bin/ida64
|
||||
ln -s $out/opt/ida64 $out/bin/ida
|
||||
ln -s $out/opt/ida $out/bin/ida64
|
||||
ln -s $out/opt/ida $out/bin/ida
|
||||
|
||||
ln -s ${pythonForIDA}/bin/binsync $out/bin/binsync
|
||||
|
||||
|
@ -114,27 +114,26 @@ stdenv.mkDerivation (self: {
|
|||
'';
|
||||
|
||||
preFixup = ''
|
||||
patchelf --shrink-rpath --allowed-rpath-prefixes $(patchelf --print-rpath $out/opt/libQt5EglFSDeviceIntegration.so.5 | sed 's/:/\n/g' | grep -v qtbase | paste -s -d: -) $out/opt/libQt5EglFSDeviceIntegration.so.5
|
||||
# Some libraries come with the installer.
|
||||
addAutoPatchelfSearchPath $out/opt
|
||||
|
||||
# Manually patch libraries that dlopen stuff.
|
||||
patchelf --add-needed libpython${pythonForIDA.pythonVersion}.so $out/lib/libida.so
|
||||
patchelf --add-needed libpython${pythonForIDA.pythonVersion}.so $out/opt/plugins/idapython3_64.so
|
||||
patchelf --add-needed libpython${pythonForIDA.pythonVersion}.so $out/opt/plugins/idapython3.so
|
||||
patchelf --add-needed libcrypto.so $out/lib/libida.so
|
||||
patchelf --add-needed libcrypto.so $out/opt/plugins/idapython3_64.so
|
||||
patchelf --add-needed libcrypto.so $out/opt/plugins/idapython3.so
|
||||
|
||||
wrapProgram "$out/opt/ida64" \
|
||||
wrapProgram "$out/opt/ida" \
|
||||
--prefix PYTHONPATH : $out/opt/idalib/python \
|
||||
--prefix PATH : ${pythonForIDA}/bin
|
||||
'';
|
||||
#--prefix QT_PLUGIN_PATH : $out/opt/plugins/platforms \
|
||||
dontWrapQtApps = true;
|
||||
|
||||
desktopItem = makeDesktopItem {
|
||||
name = "ida-pro";
|
||||
exec = "ida";
|
||||
icon = runCommand "appico.png" {nativeBuildInputs = [gnutar]; strictDeps = true;} ''
|
||||
tar --to-command cat -xf ${self.src} './idapro-9.0/appico.png' > "$out"
|
||||
tar --to-command cat -xf ${self.src} 'idapro-linux-9.2.250908/appico.png' > "$out"
|
||||
'';
|
||||
comment = self.meta.description;
|
||||
desktopName = "IDA Pro";
|
||||
|
@ -148,7 +147,7 @@ stdenv.mkDerivation (self: {
|
|||
inherit pythonForIDA;
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
meta = with lib; {
|
||||
description = "The world's smartest and most feature-full disassembler";
|
||||
homepage = "https://hex-rays.com/ida-pro/";
|
||||
mainProgram = "ida";
|
||||
|
|
|
@ -32,20 +32,20 @@
|
|||
};
|
||||
|
||||
# not sure when this commit will reach upstream
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest.extend ( self: super: {
|
||||
ipu6-drivers = super.ipu6-drivers.overrideAttrs (
|
||||
final: previous: rec {
|
||||
src = builtins.fetchGit {
|
||||
url = "https://github.com/intel/ipu6-drivers.git";
|
||||
ref = "master";
|
||||
rev = "b4ba63df5922150ec14ef7f202b3589896e0301a";
|
||||
};
|
||||
patches = [
|
||||
"${src}/patches/0001-v6.10-IPU6-headers-used-by-PSYS.patch"
|
||||
] ;
|
||||
}
|
||||
);
|
||||
} );
|
||||
#boot.kernelPackages = pkgs.linuxPackages_6_16.extend ( self: super: {
|
||||
# ipu6-drivers = super.ipu6-drivers.overrideAttrs (
|
||||
# final: previous: rec {
|
||||
# src = builtins.fetchGit {
|
||||
# url = "https://github.com/intel/ipu6-drivers.git";
|
||||
# ref = "master";
|
||||
# rev = "b4ba63df5922150ec14ef7f202b3589896e0301a";
|
||||
# };
|
||||
# patches = [
|
||||
# "${src}/patches/0001-v6.10-IPU6-headers-used-by-PSYS.patch"
|
||||
# ] ;
|
||||
# }
|
||||
# );
|
||||
#} );
|
||||
|
||||
environment.systemPackages = [
|
||||
pkgs.idapro9
|
||||
|
@ -62,6 +62,15 @@
|
|||
openFirewall = true;
|
||||
};
|
||||
|
||||
#services.coolify = {
|
||||
# enable = true;
|
||||
# hostname = "coolify";
|
||||
#};
|
||||
#networking.extraHosts = ''
|
||||
# 127.0.0.1 coolify
|
||||
#'';
|
||||
|
||||
|
||||
#services.influxdb2 = {
|
||||
# enable = true;
|
||||
# provision = {
|
||||
|
|
|
@ -43,15 +43,73 @@
|
|||
extraPythonPackages = p: [ p.psycopg2 ];
|
||||
};
|
||||
|
||||
users.users.wiki-js = {
|
||||
isSystemUser = true;
|
||||
group = "wiki-js";
|
||||
};
|
||||
users.groups.wiki-js = {};
|
||||
|
||||
users.groups.${config.services.forgejo.group}.members = [config.services.nginx.user];
|
||||
|
||||
services.wiki-js = {
|
||||
enable = true;
|
||||
settings = {
|
||||
db.type = "postgres";
|
||||
db.db = "wiki-js";
|
||||
db.user = "wiki-js";
|
||||
db.host = "/run/postgresql";
|
||||
bindIP = "127.0.0.1";
|
||||
port = 5517;
|
||||
};
|
||||
};
|
||||
|
||||
services.forgejo = {
|
||||
enable = true;
|
||||
lfs.enable = true;
|
||||
database = {
|
||||
createDatabase = true;
|
||||
type = "postgres";
|
||||
socket = "/run/postgresql";
|
||||
};
|
||||
settings = {
|
||||
DEFAULT = {
|
||||
APP_NAME = "Shellphish Git";
|
||||
};
|
||||
|
||||
server = {
|
||||
DOMAIN = "git.rhelmot.io";
|
||||
PROTOCOL = "http+unix";
|
||||
ROOT_URL = "https://git.rhelmot.io/";
|
||||
UNIX_SOCKET_PERMISSION = "770";
|
||||
LANDING_PAGE = "explore";
|
||||
};
|
||||
|
||||
"ssh.minimum_key_sizes".RSA = "2047";
|
||||
|
||||
repository = {
|
||||
ENABLE_PUSH_CREATE_USER = "true";
|
||||
ENABLE_PUSH_CREATE_ORG = "true";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
services.keycloak = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
services.postgresql = {
|
||||
enable = true;
|
||||
ensureDatabases = [
|
||||
"bingosync"
|
||||
"mspa"
|
||||
"wiki-js"
|
||||
"forgejo"
|
||||
];
|
||||
ensureUsers = [
|
||||
{ name = "bingosync"; ensureDBOwnership = true; }
|
||||
{ name = "mspa"; ensureDBOwnership = true; }
|
||||
{ name = "wiki-js"; ensureDBOwnership = true; }
|
||||
{ name = "forgejo"; ensureDBOwnership = true; }
|
||||
];
|
||||
authentication = pkgs.lib.mkOverride 10 ''
|
||||
#type database DBuser auth-method optional_ident_map
|
||||
|
@ -61,8 +119,10 @@
|
|||
# ArbitraryMapName systemUser DBUser
|
||||
defaultmap root postgres
|
||||
defaultmap postgres postgres
|
||||
defaultmap php-nginx mspa
|
||||
defaultmap php-nginx mspa
|
||||
defaultmap bingosync bingosync
|
||||
defaultmap wiki-js wiki-js
|
||||
defaultmap forgejo forgejo
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -162,6 +222,27 @@
|
|||
globalRedirect = "mimispastrypost.com";
|
||||
enableACME = true;
|
||||
};
|
||||
|
||||
"wiki.rhelmot.io" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations."/" = {
|
||||
proxyPass = "http://localhost:5517/";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
|
||||
"git.rhelmot.io" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
extraConfig = ''
|
||||
client_max_body_size 4G;
|
||||
'';
|
||||
locations."/" = {
|
||||
proxyPass = "http://unix:/run/forgejo/forgejo.sock";
|
||||
proxyWebsockets = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue