mirror of
https://github.com/buckley310/nixos-config.git
synced 2024-12-21 19:24:15 +00:00
add files
This commit is contained in:
commit
ca2edd4ae8
18 changed files with 549 additions and 0 deletions
0
.update-on-nixos-rebuild
Normal file
0
.update-on-nixos-rebuild
Normal file
11
modules/auto-update.nix
Normal file
11
modules/auto-update.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{ config, pkgs, ... }:
|
||||
{
|
||||
system.autoUpgrade = {
|
||||
enable = true;
|
||||
allowReboot = true;
|
||||
};
|
||||
nix.gc = {
|
||||
automatic = true;
|
||||
options = "--delete-older-than 30d";
|
||||
};
|
||||
}
|
35
modules/baseline.nix
Normal file
35
modules/baseline.nix
Normal file
|
@ -0,0 +1,35 @@
|
|||
{ config, pkgs, ... }:
|
||||
{
|
||||
time.timeZone = "US/Eastern";
|
||||
|
||||
boot = {
|
||||
zfs.forceImportAll = false;
|
||||
zfs.forceImportRoot = false;
|
||||
kernelParams = [ "amdgpu.gpu_recovery=1" "panic=30" ];
|
||||
};
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
environment.variables.NIXPKGS_ALLOW_UNFREE = "1";
|
||||
|
||||
systemd.tmpfiles.rules = [ "e /nix/var/log - - - 30d" ];
|
||||
|
||||
zramSwap = {
|
||||
enable = true;
|
||||
algorithm = "zstd";
|
||||
};
|
||||
|
||||
hardware = {
|
||||
cpu.amd.updateMicrocode = true;
|
||||
cpu.intel.updateMicrocode = true;
|
||||
};
|
||||
|
||||
services = {
|
||||
earlyoom.enable = true;
|
||||
avahi = {
|
||||
enable = true;
|
||||
nssmdns = true;
|
||||
publish.enable = true;
|
||||
publish.addresses = true;
|
||||
};
|
||||
};
|
||||
}
|
48
modules/cli.nix
Normal file
48
modules/cli.nix
Normal file
|
@ -0,0 +1,48 @@
|
|||
{ config, pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
pwgen pv tree tmux psmisc ncdu git file sqlite usbutils entr ffmpeg gcc
|
||||
python3 hugo openssl wget lm_sensors htop zip unzip dnsutils whois
|
||||
tcpdump rsync
|
||||
|
||||
(writeScriptBin "nix-roots" "nix-store --gc --print-roots | grep -v ^/proc/")
|
||||
|
||||
(vim_configurable.customize {
|
||||
name="vim";
|
||||
vimrcConfig.customRC=''
|
||||
syntax enable
|
||||
set nowrap ruler scrolloff=9 backspace=start,indent
|
||||
set autoindent expandtab tabstop=4 shiftwidth=4
|
||||
'';
|
||||
})
|
||||
|
||||
(writeScriptBin "zfsram" ''
|
||||
#!${pkgs.python3}/bin/python
|
||||
for ln in open('/proc/spl/kstat/zfs/arcstats').readlines():
|
||||
if ln.startswith('size '):
|
||||
print(str(int(ln.split(' ')[-1])/(1024*1024*1024))[:5],'GB')
|
||||
'')
|
||||
];
|
||||
|
||||
programs.bash.interactiveShellInit = ''
|
||||
stty -ixon
|
||||
echo $XDG_SESSION_TYPE
|
||||
alias p=python3
|
||||
alias buildsys='nix build -f "<nixpkgs/nixos>" --no-link system'
|
||||
|
||||
alias channel='
|
||||
echo " Local: $(cat /nix/var/nix/profiles/per-user/root/channels/nixos/.git-revision)";\
|
||||
echo "Remote: $(curl --silent -L https://channels.nixos.org/nixos-unstable/git-revision)"
|
||||
'
|
||||
|
||||
function _update_ps1() {
|
||||
PS1="\n$(${pkgs.powerline-go}/bin/powerline-go \
|
||||
-colorize-hostname \
|
||||
-cwd-mode=dironly \
|
||||
-modules=user,host,cwd,nix-shell,git,jobs \
|
||||
# -git-assume-unchanged-size 0 \
|
||||
)$ "
|
||||
}
|
||||
PROMPT_COMMAND="_update_ps1; $PROMPT_COMMAND"
|
||||
'';
|
||||
}
|
28
modules/gnome/bottom-panel.nix
Normal file
28
modules/gnome/bottom-panel.nix
Normal file
|
@ -0,0 +1,28 @@
|
|||
{ stdenv, fetchFromGitHub, glib, gettext }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-shell-extension-bottompanel";
|
||||
version = "1901";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Thoma5";
|
||||
repo = "gnome-shell-extension-bottompanel";
|
||||
rev = "3d9573896b122e9ccb02262249ca986f8dad1ebd";
|
||||
sha256 = "0lp25na5plz8vp8zjsikcadgy5hyx59ys2sbd4haagcalyv7jj4q";
|
||||
};
|
||||
|
||||
phases = [ "installPhase" ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p "$out/share/gnome-shell/extensions"
|
||||
cp -r "$src" "$out/share/gnome-shell/extensions/bottompanel@tmoer93"
|
||||
|
||||
chmod +w "$out/share/gnome-shell/extensions/bottompanel@tmoer93"
|
||||
sed -i 's/.*_rightPanelBarrier.*/if(Main.layoutManager._rightPanelBarrier)&/' "$out/share/gnome-shell/extensions/bottompanel@tmoer93/extension.js"
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Move your GNOME 3 shell panel to the bottom";
|
||||
homepage = https://github.com/Thoma5/gnome-shell-extension-bottompanel;
|
||||
};
|
||||
}
|
7
modules/gnome/dash-to-panel.sh
Executable file
7
modules/gnome/dash-to-panel.sh
Executable file
|
@ -0,0 +1,7 @@
|
|||
#!/usr/bin/env bash
|
||||
set -x
|
||||
|
||||
dconf write /org/gnome/shell/extensions/dash-to-panel/panel-size 40
|
||||
dconf write /org/gnome/shell/extensions/dash-to-panel/group-apps false
|
||||
dconf write /org/gnome/shell/extensions/dash-to-panel/isolate-workspaces true
|
||||
dconf write /org/gnome/shell/extensions/dash-to-panel/show-window-previews false
|
34
modules/gnome/default.nix
Normal file
34
modules/gnome/default.nix
Normal file
|
@ -0,0 +1,34 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
environment = {
|
||||
gnome3.excludePackages = with pkgs.gnome3; [ epiphany vinagre gnome-software ];
|
||||
systemPackages = with pkgs; [
|
||||
numix-icon-theme
|
||||
gnome3.gnome-tweaks
|
||||
gnome3.gnome-boxes qemu_kvm
|
||||
(callPackage ./bottom-panel.nix {})
|
||||
(writeScriptBin "red" ''
|
||||
x="$(gsettings get org.gnome.settings-daemon.plugins.color night-light-enabled)"
|
||||
[ "$x" = "true" ] && x=false || x=true
|
||||
echo "Nightlight: $x"
|
||||
gsettings set org.gnome.settings-daemon.plugins.color night-light-enabled $x
|
||||
'')
|
||||
] ++ (with pkgs.gnomeExtensions; [
|
||||
appindicator
|
||||
dash-to-panel
|
||||
drop-down-terminal
|
||||
sound-output-device-chooser
|
||||
]);
|
||||
};
|
||||
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
libinput.enable = true;
|
||||
displayManager.gdm.enable = true;
|
||||
desktopManager.gnome3.enable = true;
|
||||
desktopManager.xterm.enable = false;
|
||||
displayManager.sessionCommands = ''
|
||||
${./settings.sh}
|
||||
'';
|
||||
};
|
||||
}
|
25
modules/gnome/settings.sh
Executable file
25
modules/gnome/settings.sh
Executable file
|
@ -0,0 +1,25 @@
|
|||
#!/bin/sh
|
||||
set -x
|
||||
|
||||
gsettings set org.gnome.desktop.background picture-uri 'file:///run/current-system/sw/share/backgrounds/gnome/adwaita-night.jpg'
|
||||
gsettings set org.gnome.desktop.interface enable-hot-corners false
|
||||
gsettings set org.gnome.desktop.interface gtk-theme 'Adwaita-dark'
|
||||
gsettings set org.gnome.desktop.interface icon-theme 'Numix'
|
||||
gsettings set org.gnome.desktop.interface show-battery-percentage true
|
||||
gsettings set org.gnome.desktop.media-handling automount false
|
||||
gsettings set org.gnome.desktop.media-handling autorun-never true
|
||||
gsettings set org.gnome.desktop.notifications show-in-lock-screen false
|
||||
gsettings set org.gnome.desktop.peripherals.mouse speed 0.375
|
||||
gsettings set org.gnome.desktop.privacy recent-files-max-age 30
|
||||
gsettings set org.gnome.desktop.privacy remove-old-temp-files true
|
||||
gsettings set org.gnome.desktop.privacy remove-old-trash-files true
|
||||
gsettings set org.gnome.desktop.screensaver lock-enabled false
|
||||
gsettings set org.gnome.desktop.wm.keybindings switch-applications "['<Super>Tab']"
|
||||
gsettings set org.gnome.desktop.wm.keybindings switch-applications-backward "['<Shift><Super>Tab']"
|
||||
gsettings set org.gnome.desktop.wm.keybindings switch-windows "['<Alt>Tab']"
|
||||
gsettings set org.gnome.desktop.wm.keybindings switch-windows-backward "['<Shift><Alt>Tab']"
|
||||
gsettings set org.gnome.desktop.wm.keybindings toggle-fullscreen "['<Super>f']"
|
||||
gsettings set org.gnome.desktop.wm.preferences resize-with-right-button true
|
||||
gsettings set org.gnome.settings-daemon.plugins.media-keys logout '[]'
|
||||
|
||||
echo 'window.ssd headerbar.titlebar { padding-top: 2px; padding-bottom: 2px; }' > ~/.config/gtk-3.0/gtk.css
|
49
modules/graphical.nix
Normal file
49
modules/graphical.nix
Normal file
|
@ -0,0 +1,49 @@
|
|||
{ config, pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
firefox
|
||||
brave
|
||||
gimp
|
||||
mpv
|
||||
libreoffice
|
||||
tdesktop
|
||||
steam
|
||||
pavucontrol
|
||||
gnome3.dconf-editor
|
||||
glxinfo
|
||||
steam-run
|
||||
discord
|
||||
|
||||
(vscode-with-extensions.override {
|
||||
vscode = vscodium;
|
||||
vscodeExtensions = with pkgs.vscode-extensions; [
|
||||
bbenoist.Nix
|
||||
ms-python.python
|
||||
ms-vscode.cpptools
|
||||
ms-azuretools.vscode-docker
|
||||
];
|
||||
})
|
||||
|
||||
];
|
||||
|
||||
# environment.systemPackages = with pkgs; [ retroarch ];
|
||||
# nixpkgs.config.retroarch = {
|
||||
# enableParallelN64 = true;
|
||||
# enableNestopia = true;
|
||||
# enableHiganSFC = true;
|
||||
# };
|
||||
|
||||
services.xserver.deviceSection = ''
|
||||
Option "VariableRefresh" "true"
|
||||
'';
|
||||
|
||||
hardware = {
|
||||
pulseaudio.enable = true;
|
||||
pulseaudio.support32Bit = true;
|
||||
opengl.driSupport32Bit = true;
|
||||
};
|
||||
|
||||
fonts.fonts = [ pkgs.powerline-fonts ];
|
||||
|
||||
boot.loader.timeout = null;
|
||||
}
|
|
@ -0,0 +1,176 @@
|
|||
diff --git a/include/libinput-properties.h b/include/libinput-properties.h
|
||||
index a701316890d3d45511199f40207145bb08de4b4f..3dd659fbd157ecbe6be8382b9bf5d9bd8a8f4beb 100644
|
||||
--- a/include/libinput-properties.h
|
||||
+++ b/include/libinput-properties.h
|
||||
@@ -109,6 +109,12 @@
|
||||
only one is enabled at a time at max, read-only */
|
||||
#define LIBINPUT_PROP_SCROLL_METHOD_ENABLED_DEFAULT "libinput Scroll Method Enabled Default"
|
||||
|
||||
+/* Scroll distance scale: FLOAT, 2 values, 32 bit */
|
||||
+#define LIBINPUT_PROP_SCROLL_DISTANCE_SCALE "libinput Scroll Distance Scale"
|
||||
+
|
||||
+/* Scroll distance scale: FLOAT, 2 values, 32 bit, read only */
|
||||
+#define LIBINPUT_PROP_SCROLL_DISTANCE_SCALE_DEFAULT "libinput Scroll Distance Scale Default"
|
||||
+
|
||||
/* Scroll button for button scrolling: 32-bit int, 1 value */
|
||||
#define LIBINPUT_PROP_SCROLL_BUTTON "libinput Button Scrolling Button"
|
||||
|
||||
diff --git a/man/libinput.man b/man/libinput.man
|
||||
index dbf7dee7621d1c2f463813569202896a61259cfd..008a36acba47739ff24dbe8f23f1f6e650822ab4 100644
|
||||
--- a/man/libinput.man
|
||||
+++ b/man/libinput.man
|
||||
@@ -264,6 +264,9 @@ Indicates which scroll methods are available on this device.
|
||||
3 boolean values (8 bit, 0 or 1), in order "two-finger", "edge", "button".
|
||||
Indicates which scroll method is currently enabled on this device.
|
||||
.TP 7
|
||||
+.BI "libinput Scroll Distance Scale"
|
||||
+2 32-bit float values. Scroll distance is multiplied by this before being
|
||||
+passed to the client. First is vertical scale, second is horizontal scale.
|
||||
.BI "libinput Send Events Modes Available"
|
||||
2 boolean values (8 bit, 0 or 1), in order "disabled" and
|
||||
"disabled-on-external-mouse". Indicates which send-event modes are available
|
||||
diff --git a/src/xf86libinput.c b/src/xf86libinput.c
|
||||
index ff76895cbbe55ac3c5ed999cb54cefb1e7493063..05ac092615a447be19b25d47e93f476833a6d222 100644
|
||||
--- a/src/xf86libinput.c
|
||||
+++ b/src/xf86libinput.c
|
||||
@@ -131,6 +131,7 @@ struct xf86libinput {
|
||||
struct scroll_axis {
|
||||
int dist;
|
||||
double fraction;
|
||||
+ double scale;
|
||||
} v, h;
|
||||
} scroll;
|
||||
|
||||
@@ -1651,6 +1652,18 @@ calculate_axis_value(struct xf86libinput *driver_data,
|
||||
value = libinput_event_pointer_get_axis_value(event, axis);
|
||||
}
|
||||
|
||||
+ //LogMessageVerb(X_INFO, 0, "scroll of %f on axis %d", value, axis);
|
||||
+ switch (axis) {
|
||||
+ case LIBINPUT_POINTER_AXIS_SCROLL_HORIZONTAL:
|
||||
+ //LogMessageVerb(X_INFO, 0, "scaled by %f to %f\n", driver_data->scroll.h.scale, value);
|
||||
+ value *= driver_data->scroll.h.scale;
|
||||
+ break;
|
||||
+ case LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL:
|
||||
+ //LogMessageVerb(X_INFO, 0, "scaled by %f to %f\n", driver_data->scroll.v.scale, value);
|
||||
+ value *= driver_data->scroll.v.scale;
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
*value_out = value;
|
||||
|
||||
return true;
|
||||
@@ -3430,6 +3443,9 @@ xf86libinput_pre_init(InputDriverPtr drv,
|
||||
driver_data->scroll.v.dist = 15;
|
||||
driver_data->scroll.h.dist = 15;
|
||||
|
||||
+ driver_data->scroll.v.scale = 1;
|
||||
+ driver_data->scroll.h.scale = 1;
|
||||
+
|
||||
if (!is_subdevice) {
|
||||
if (libinput_device_has_capability(device, LIBINPUT_DEVICE_CAP_POINTER))
|
||||
driver_data->capabilities |= CAP_POINTER;
|
||||
@@ -3570,6 +3586,8 @@ static Atom prop_scroll_method_enabled;
|
||||
static Atom prop_scroll_method_default;
|
||||
static Atom prop_scroll_button;
|
||||
static Atom prop_scroll_button_default;
|
||||
+static Atom prop_scroll_distance_scale;
|
||||
+static Atom prop_scroll_distance_scale_default;
|
||||
static Atom prop_click_methods_available;
|
||||
static Atom prop_click_method_enabled;
|
||||
static Atom prop_click_method_default;
|
||||
@@ -4147,6 +4165,35 @@ LibinputSetPropertyScrollButton(DeviceIntPtr dev,
|
||||
return Success;
|
||||
}
|
||||
|
||||
+static inline int
|
||||
+LibinputSetPropertyScrollDistanceScale(DeviceIntPtr dev,
|
||||
+ Atom atom,
|
||||
+ XIPropertyValuePtr val,
|
||||
+ BOOL checkonly)
|
||||
+{
|
||||
+ InputInfoPtr pInfo = dev->public.devicePrivate;
|
||||
+ struct xf86libinput *driver_data = pInfo->private;
|
||||
+ float *data;
|
||||
+
|
||||
+ if (val->format != 32 || val->size != 2 || val->type != prop_float) {
|
||||
+ LogMessageVerb(X_INFO, 0, "bad match");
|
||||
+ return BadMatch;
|
||||
+ }
|
||||
+
|
||||
+ data = (float*)val->data;
|
||||
+ LogMessageVerb(X_INFO, 0, "i want to set it to %f %f\n", data[0], data[1]);
|
||||
+ if (checkonly) {
|
||||
+ if (!xf86libinput_check_device(dev, atom))
|
||||
+ return BadMatch;
|
||||
+ } else {
|
||||
+ LogMessageVerb(X_INFO, 0, "setting scroll.v.scale to %f and scroll.h.scale to %f\n", data[0], data[1]);
|
||||
+ driver_data->scroll.v.scale = data[0];
|
||||
+ driver_data->scroll.h.scale = data[1];
|
||||
+ }
|
||||
+
|
||||
+ return Success;
|
||||
+}
|
||||
+
|
||||
static inline int
|
||||
LibinputSetPropertyClickMethod(DeviceIntPtr dev,
|
||||
Atom atom,
|
||||
@@ -4521,6 +4568,8 @@ LibinputSetProperty(DeviceIntPtr dev, Atom atom, XIPropertyValuePtr val,
|
||||
rc = LibinputSetPropertyScrollMethods(dev, atom, val, checkonly);
|
||||
else if (atom == prop_scroll_button)
|
||||
rc = LibinputSetPropertyScrollButton(dev, atom, val, checkonly);
|
||||
+ else if (atom == prop_scroll_distance_scale)
|
||||
+ rc = LibinputSetPropertyScrollDistanceScale(dev, atom, val, checkonly);
|
||||
else if (atom == prop_click_method_enabled)
|
||||
rc = LibinputSetPropertyClickMethod(dev, atom, val, checkonly);
|
||||
else if (atom == prop_middle_emulation)
|
||||
@@ -4561,6 +4610,7 @@ LibinputSetProperty(DeviceIntPtr dev, Atom atom, XIPropertyValuePtr val,
|
||||
atom == prop_scroll_method_default ||
|
||||
atom == prop_scroll_methods_available ||
|
||||
atom == prop_scroll_button_default ||
|
||||
+ atom == prop_scroll_distance_scale_default ||
|
||||
atom == prop_click_method_default ||
|
||||
atom == prop_click_methods_available ||
|
||||
atom == prop_middle_emulation_default ||
|
||||
@@ -5072,6 +5122,33 @@ LibinputInitScrollMethodsProperty(DeviceIntPtr dev,
|
||||
}
|
||||
}
|
||||
|
||||
+static void
|
||||
+LibinputInitScrollDistanceScaleProperty(DeviceIntPtr dev,
|
||||
+ struct xf86libinput *driver_data,
|
||||
+ struct libinput_device *device)
|
||||
+{
|
||||
+ float scroll_distance_scale[2] = {driver_data->scroll.v.scale, driver_data->scroll.h.scale};
|
||||
+
|
||||
+ if (!subdevice_has_capabilities(dev, CAP_POINTER))
|
||||
+ return;
|
||||
+
|
||||
+ LogMessageVerb(X_INFO, 0, "making %s property with %f %f\n", LIBINPUT_PROP_SCROLL_DISTANCE_SCALE, scroll_distance_scale[0], scroll_distance_scale[1]);
|
||||
+ prop_scroll_distance_scale = LibinputMakeProperty(dev,
|
||||
+ LIBINPUT_PROP_SCROLL_DISTANCE_SCALE,
|
||||
+ prop_float, 32,
|
||||
+ 2, scroll_distance_scale);
|
||||
+ if (!prop_scroll_distance_scale)
|
||||
+ return;
|
||||
+
|
||||
+ scroll_distance_scale[0] = 1;
|
||||
+ scroll_distance_scale[1] = 1;
|
||||
+ LogMessageVerb(X_INFO, 0, "making %s property with %f %f\n", LIBINPUT_PROP_SCROLL_DISTANCE_SCALE_DEFAULT, scroll_distance_scale[0], scroll_distance_scale[1]);
|
||||
+ prop_scroll_distance_scale_default = LibinputMakeProperty(dev,
|
||||
+ LIBINPUT_PROP_SCROLL_DISTANCE_SCALE_DEFAULT,
|
||||
+ prop_float, 32,
|
||||
+ 2, scroll_distance_scale);
|
||||
+}
|
||||
+
|
||||
static void
|
||||
LibinputInitClickMethodsProperty(DeviceIntPtr dev,
|
||||
struct xf86libinput *driver_data,
|
||||
@@ -5476,6 +5553,7 @@ LibinputInitProperty(DeviceIntPtr dev)
|
||||
LibinputInitNaturalScrollProperty(dev, driver_data, device);
|
||||
LibinputInitDisableWhileTypingProperty(dev, driver_data, device);
|
||||
LibinputInitScrollMethodsProperty(dev, driver_data, device);
|
||||
+ LibinputInitScrollDistanceScaleProperty(dev, driver_data, device);
|
||||
LibinputInitClickMethodsProperty(dev, driver_data, device);
|
||||
LibinputInitMiddleEmulationProperty(dev, driver_data, device);
|
||||
LibinputInitRotationAngleProperty(dev, driver_data, device);
|
15
modules/scroll-boost/default.nix
Normal file
15
modules/scroll-boost/default.nix
Normal file
|
@ -0,0 +1,15 @@
|
|||
{ config, pkgs, ... }:
|
||||
{
|
||||
services.xserver.displayManager.sessionCommands = ''
|
||||
xinput list | cut -d= -f2 | cut -f1 | xargs -i xinput set-prop {} 'libinput Scroll Distance Scale' 2 1
|
||||
'';
|
||||
|
||||
nixpkgs.overlays = [(self: super: {
|
||||
xorg = super.xorg.overrideScope' (selfB: superB: {
|
||||
inherit (super.xorg) xlibsWrapper;
|
||||
xf86inputlibinput = superB.xf86inputlibinput.overrideAttrs (attr: {
|
||||
patches = [ ./b7b5c5ef5f34802fc5f57e68493afaea5db7cdb4.diff ];
|
||||
});
|
||||
});
|
||||
})];
|
||||
}
|
14
modules/sean/default.nix
Normal file
14
modules/sean/default.nix
Normal file
|
@ -0,0 +1,14 @@
|
|||
{ config, pkgs, ... }:
|
||||
{
|
||||
users.users = {
|
||||
sean = {
|
||||
isNormalUser = true;
|
||||
uid = 1000;
|
||||
extraGroups = [ "wheel" "audio" "video" "networkmanager" "dialout" "input" "wireshark" ];
|
||||
};
|
||||
test = {
|
||||
isNormalUser = true;
|
||||
isSystemUser = true;
|
||||
};
|
||||
};
|
||||
}
|
14
modules/security-tools.nix
Normal file
14
modules/security-tools.nix
Normal file
|
@ -0,0 +1,14 @@
|
|||
{ config, pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
exiftool burpsuite nmap masscan binutils remmina openvpn socat ghidra-bin
|
||||
wfuzz gobuster dirb pwndbg thc-hydra metasploit
|
||||
|
||||
(callPackage ../pkgs/binary-ninja-personal {})
|
||||
];
|
||||
|
||||
programs = {
|
||||
wireshark.enable = true;
|
||||
wireshark.package = pkgs.wireshark;
|
||||
};
|
||||
}
|
29
modules/sway/default.nix
Normal file
29
modules/sway/default.nix
Normal file
|
@ -0,0 +1,29 @@
|
|||
{ config, pkgs, ... }:
|
||||
{
|
||||
programs.sway.enable = true;
|
||||
|
||||
|
||||
environment.variables.GTK_THEME = "Yaru-dark";
|
||||
environment.variables.MOZ_ENABLE_WAYLAND = "1";
|
||||
|
||||
environment.etc."xdg/gtk-3.0/settings.ini".text = ''
|
||||
[Settings]
|
||||
gtk-theme-name=Yaru-dark
|
||||
gtk-icon-theme-name=Numix
|
||||
'';
|
||||
|
||||
# hardware.bluetooth.enable = true;
|
||||
# services.blueman.enable = true;
|
||||
services.gvfs.enable = true;
|
||||
programs.dconf.enable = true;
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
numix-icon-theme yaru-theme
|
||||
gnome3.networkmanagerapplet gnome3.file-roller gnome3.adwaita-icon-theme
|
||||
mate.mate-terminal xfce.thunar i3status xfce.thunar-archive-plugin caffeine-ng
|
||||
wf-recorder
|
||||
];
|
||||
|
||||
programs.bash.interactiveShellInit = '' [ "$(tty)" = "/dev/tty1" ] && exec sway '';
|
||||
}
|
35
pkgs/binary-ninja-personal/default.nix
Normal file
35
pkgs/binary-ninja-personal/default.nix
Normal file
|
@ -0,0 +1,35 @@
|
|||
{
|
||||
stdenv, autoPatchelfHook, requireFile, libxkbcommon, makeWrapper, unzip, zlib, glib,
|
||||
fontconfig, freetype, dbus, python37, libglvnd, libXext, libX11, libXrender, libXi,
|
||||
libSM, libICE, xkeyboardconfig, nss, libXcomposite, libXcursor, libXdamage, libXtst,
|
||||
alsaLib, libXrandr, krb5, xcbutilwm, xcbutilimage, xcbutilkeysyms, xcbutilrenderutil
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
name = "binary-ninja-personal";
|
||||
|
||||
src = requireFile {
|
||||
name = "BinaryNinja-personal.zip";
|
||||
url = "https://binary.ninja";
|
||||
sha256 = "5dae72ad0d31f7439cf4232a5324a31857ce4e0e593c85c62520c94ff171b4a2";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoPatchelfHook libxkbcommon stdenv.cc.cc.lib zlib glib fontconfig freetype nss
|
||||
dbus python37 libglvnd libXext libX11 libXrender libXi libSM libICE unzip makeWrapper
|
||||
libXcomposite libXcursor libXdamage libXtst alsaLib libXrandr krb5 xcbutilwm xcbutilimage
|
||||
xcbutilkeysyms xcbutilrenderutil
|
||||
];
|
||||
|
||||
dontStrip = true;
|
||||
dontPatchELF = true;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/lib $out/bin $out/share
|
||||
mv $NIX_BUILD_TOP/$sourceRoot $out/lib/binary-ninja
|
||||
ln -s "${src}" "$out/share/BinaryNinja-personal.zip"
|
||||
ln -s "${python37}/lib/libpython3.7m.so.1.0" "$out/lib/binary-ninja/libpython3.7m.so.1"
|
||||
makeWrapper $out/lib/binary-ninja/binaryninja $out/bin/binaryninja \
|
||||
--set QT_XKB_CONFIG_ROOT "${xkeyboardconfig}/share/X11/xkb" \
|
||||
--set QTCOMPOSE "${libX11.out}/share/X11/locale"
|
||||
'';
|
||||
}
|
10
profiles/desktop-gnome.nix
Normal file
10
profiles/desktop-gnome.nix
Normal file
|
@ -0,0 +1,10 @@
|
|||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
../modules/baseline.nix
|
||||
../modules/cli.nix
|
||||
../modules/gnome
|
||||
../modules/graphical.nix
|
||||
../modules/security-tools.nix
|
||||
];
|
||||
}
|
10
profiles/desktop-sway.nix
Normal file
10
profiles/desktop-sway.nix
Normal file
|
@ -0,0 +1,10 @@
|
|||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
../modules/baseline.nix
|
||||
../modules/cli.nix
|
||||
../modules/sway
|
||||
../modules/graphical.nix
|
||||
../modules/security-tools.nix
|
||||
];
|
||||
}
|
9
profiles/server.nix
Normal file
9
profiles/server.nix
Normal file
|
@ -0,0 +1,9 @@
|
|||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
../modules/auto-update.nix
|
||||
../modules/baseline.nix
|
||||
../modules/cli.nix
|
||||
];
|
||||
services.openssh.enable = true;
|
||||
}
|
Loading…
Reference in a new issue