Compare commits
2 Commits
main
...
nixos-2605
| Author | SHA1 | Date | |
|---|---|---|---|
|
af691352d2
|
|||
|
d4050cda3d
|
@@ -73,6 +73,9 @@
|
||||
"ipu6-camera-bins-unstable"
|
||||
"ivsc-firmware"
|
||||
"ivsc-firmware-unstable"
|
||||
"semshi"
|
||||
"vim-polyglot"
|
||||
"vim-trailing-whitespace"
|
||||
];
|
||||
android_sdk.accept_license = true;
|
||||
segger-jlink.acceptLicense = true;
|
||||
@@ -155,7 +158,6 @@
|
||||
};
|
||||
|
||||
homeModules = {
|
||||
cargo = ./home/modules/programs/cargo;
|
||||
colors = ./home/modules/colors.nix;
|
||||
direnv-auto-prune = ./home/modules/programs/direnv/auto-prune.nix;
|
||||
downloads-sorter = ./home/modules/services/downloads-sorter.nix;
|
||||
@@ -166,7 +168,6 @@
|
||||
prism-launcher = ./home/modules/programs/prism-launcher;
|
||||
shellAliases = ./home/modules/shellAliases.nix;
|
||||
systemd-tmpfiles = ./home/modules/systemd-tmpfiles.nix;
|
||||
uidGid = ./home/modules/uidGid.nix;
|
||||
};
|
||||
|
||||
homeConfigurations = {
|
||||
|
||||
@@ -29,5 +29,7 @@
|
||||
"work"
|
||||
"ctf"
|
||||
];
|
||||
|
||||
gtk4.theme = config.gtk.theme;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -13,11 +13,14 @@ in
|
||||
enable = true;
|
||||
userDirs = {
|
||||
enable = true;
|
||||
setSessionVariables = true;
|
||||
|
||||
desktop = lib.mkDefault "${config.home.homeDirectory}/Desktop";
|
||||
documents = lib.mkDefault "${config.home.homeDirectory}/documents";
|
||||
download = lib.mkDefault "${config.home.homeDirectory}/downloads";
|
||||
music = lib.mkDefault "${config.home.homeDirectory}/music";
|
||||
pictures = lib.mkDefault "${config.home.homeDirectory}/pictures";
|
||||
projects = lib.mkDefault "${config.home.homeDirectory}/git";
|
||||
publicShare = lib.mkDefault "${config.home.homeDirectory}/public";
|
||||
templates = lib.mkDefault "${config.home.homeDirectory}/templates";
|
||||
videos = lib.mkDefault "${config.home.homeDirectory}/videos";
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
let
|
||||
cfg = config.programs.cargo;
|
||||
format = pkgs.formats.toml { };
|
||||
cargoHome = config.systemd.user.sessionVariables.CARGO_HOME or "${config.home.homeDirectory}/.cargo";
|
||||
relativeCargoHome = lib.strings.removePrefix config.home.homeDirectory cargoHome;
|
||||
in
|
||||
{
|
||||
options.programs.cargo = {
|
||||
enable = lib.mkEnableOption "cargo, the rust package manager and build tool";
|
||||
|
||||
package = lib.mkPackageOption pkgs "cargo" { };
|
||||
|
||||
addPackageToEnvironment = lib.mkOption {
|
||||
description = "Whether to add cargo to the user's environment.";
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
example = false;
|
||||
};
|
||||
|
||||
settings = lib.mkOption {
|
||||
description = "cargo settings";
|
||||
type = lib.types.submodule {
|
||||
freeformType = format.type;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
systemd.user.sessionVariables.CARGO_HOME = lib.mkIf config.home.preferXdgDirectories (lib.mkDefault "${config.xdg.dataHome}/cargo");
|
||||
|
||||
home = {
|
||||
packages = lib.mkIf cfg.addPackageToEnvironment [ cfg.package ];
|
||||
|
||||
file."${relativeCargoHome}/config.toml" = lib.mkIf (cfg.settings != { }) {
|
||||
source = format.generate "cargo-config.toml" cfg.settings;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{ lib, ... }:
|
||||
{
|
||||
options.home = {
|
||||
uid = lib.mkOption {
|
||||
default = 1000;
|
||||
type = lib.types.ints.between 0 60000;
|
||||
};
|
||||
gid = lib.mkOption {
|
||||
default = 1000;
|
||||
type = lib.types.ints.between 0 60000;
|
||||
};
|
||||
};
|
||||
}
|
||||
+5
-5
@@ -80,11 +80,12 @@
|
||||
zlib
|
||||
icu
|
||||
openssl
|
||||
xorg.xprop
|
||||
xprop
|
||||
] ++ (
|
||||
lib.optionals (!machineVars.headless) [
|
||||
alsa-utils
|
||||
kdePackages.ark
|
||||
brightnessctl
|
||||
calibre
|
||||
cool-retro-term
|
||||
darktable
|
||||
@@ -105,7 +106,6 @@
|
||||
# kdePackages.ktouch
|
||||
libnotify
|
||||
libreoffice
|
||||
light
|
||||
mission-center
|
||||
# mopidy
|
||||
# mopidy-mpd
|
||||
@@ -134,9 +134,9 @@
|
||||
xcalib
|
||||
xclip
|
||||
xdotool
|
||||
xorg.xmodmap
|
||||
(xfce.thunar.override {
|
||||
thunarPlugins = with xfce; [
|
||||
xmodmap
|
||||
(thunar.override {
|
||||
thunarPlugins = [
|
||||
thunar-volman
|
||||
# thunar-dropbox-plugin
|
||||
thunar-archive-plugin
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{ lib, pkgs, ... }:
|
||||
{ config, lib, pkgs, ... }:
|
||||
{
|
||||
programs.firefox = {
|
||||
configPath = "${config.xdg.configHome}/mozilla/firefox";
|
||||
profiles.h7x4 = {
|
||||
bookmarks = {
|
||||
force = true;
|
||||
|
||||
@@ -1,88 +1,133 @@
|
||||
{ lib, ... }:
|
||||
{
|
||||
wayland.windowManager.hyprland = {
|
||||
systemd.enable = false;
|
||||
systemd.enableXdgAutostart = false;
|
||||
configType = "lua";
|
||||
|
||||
settings = {
|
||||
exec-once = [
|
||||
"uwsm finalize"
|
||||
on._args = [
|
||||
"hyprland.start"
|
||||
(lib.generators.mkLuaInline ''
|
||||
function()
|
||||
hl.exec_cmd("uwsm finalize")
|
||||
end
|
||||
'')
|
||||
];
|
||||
|
||||
monitor = [
|
||||
# TODO: host specific
|
||||
"eDP-1, 3840x2400@90.00Hz, 0x0, 2"
|
||||
{
|
||||
output = "eDP-1";
|
||||
mode = "3840x2400@90.00Hz";
|
||||
position = "0x0";
|
||||
scale = "2";
|
||||
}
|
||||
|
||||
# PVV Demiurgen
|
||||
"desc:Hewlett Packard HP ZR24w CNT01711G6, 1920x1200, 0x-1200, 1"
|
||||
"desc:Hewlett Packard HP ZR24w CNT018103H, 1920x1200, 1920x-1200, 1"
|
||||
{
|
||||
output = "desc:Hewlett Packard HP ZR24w CNT01711G6";
|
||||
mode = "1920x1200";
|
||||
position = "1920x-1200";
|
||||
scale = "1";
|
||||
}
|
||||
{
|
||||
output = "desc:Hewlett Packard HP ZR24w CNT018103H";
|
||||
mode = "1920x1200";
|
||||
position = "0x-1200";
|
||||
scale = "1";
|
||||
}
|
||||
|
||||
# PVV Eirin
|
||||
"desc:Hewlett Packard HP ZR24w CNT01710L4, 1920x1200, 0x-1200, 1"
|
||||
"desc:Hewlett Packard HP ZR24w CNT0181039, 1920x1200, 1920x-1200, 1"
|
||||
{
|
||||
output = "desc:Hewlett Packard HP ZR24w CNT01710L4";
|
||||
mode = "1920x1200";
|
||||
position = "1920x-1200";
|
||||
scale = "1";
|
||||
}
|
||||
{
|
||||
output = "desc:Hewlett Packard HP ZR24w CNT0181039";
|
||||
mode = "1920x1200";
|
||||
position = "0x-1200";
|
||||
scale = "1";
|
||||
}
|
||||
|
||||
",preferred,auto,1"
|
||||
{
|
||||
output = "";
|
||||
mode = "preferred";
|
||||
position = "auto";
|
||||
scale = "auto";
|
||||
}
|
||||
];
|
||||
|
||||
general = {
|
||||
gaps_in = 5;
|
||||
gaps_out = 15;
|
||||
config = {
|
||||
general = {
|
||||
gaps_in = 5;
|
||||
gaps_out = 15;
|
||||
|
||||
border_size = 2;
|
||||
border_size = 2;
|
||||
|
||||
"col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg";
|
||||
"col.inactive_border" = "rgba(595959aa)";
|
||||
"col.active_border" = {
|
||||
colors = [
|
||||
"rgba(33ccffee)"
|
||||
"rgba(00ff99ee)"
|
||||
];
|
||||
angle = 45;
|
||||
};
|
||||
"col.inactive_border" = "rgba(595959aa)";
|
||||
|
||||
resize_on_border = false;
|
||||
allow_tearing = false;
|
||||
layout = "master";
|
||||
};
|
||||
|
||||
decoration = {
|
||||
rounding = 10;
|
||||
|
||||
# Change transparency of focused and unfocused windows
|
||||
active_opacity = 1.0;
|
||||
inactive_opacity = 1.0;
|
||||
|
||||
# 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;
|
||||
resize_on_border = false;
|
||||
allow_tearing = false;
|
||||
layout = "master";
|
||||
};
|
||||
};
|
||||
|
||||
animations.enabled = false;
|
||||
decoration = {
|
||||
rounding = 10;
|
||||
|
||||
master = {
|
||||
new_status = "slave";
|
||||
};
|
||||
# Change transparency of focused and unfocused windows
|
||||
active_opacity = 1.0;
|
||||
inactive_opacity = 1.0;
|
||||
|
||||
misc = {
|
||||
force_default_wallpaper = 0; # 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. :(
|
||||
};
|
||||
# drop_shadow = true;
|
||||
# shadow_range = 4;
|
||||
# shadow_render_power = 3;
|
||||
# "col.shadow" = "rgba(1a1a1aee)";
|
||||
|
||||
input ={
|
||||
kb_layout = "us";
|
||||
kb_variant = "";
|
||||
kb_model = "";
|
||||
kb_options = "caps:escape";
|
||||
kb_rules = "";
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#blur
|
||||
blur = {
|
||||
enabled = true;
|
||||
size = 3;
|
||||
passes = 1;
|
||||
|
||||
follow_mouse = 1;
|
||||
vibrancy = 0.1696;
|
||||
};
|
||||
};
|
||||
|
||||
sensitivity = 0; # -1.0 - 1.0, 0 means no modification.
|
||||
animations.enabled = false;
|
||||
|
||||
touchpad = {
|
||||
natural_scroll = false;
|
||||
master = {
|
||||
new_status = "slave";
|
||||
};
|
||||
|
||||
misc = {
|
||||
force_default_wallpaper = 0; # 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 ={
|
||||
kb_layout = "us";
|
||||
kb_variant = "";
|
||||
kb_model = "";
|
||||
kb_options = "caps:escape";
|
||||
kb_rules = "";
|
||||
|
||||
follow_mouse = 1;
|
||||
|
||||
sensitivity = 0; # -1.0 - 1.0, 0 means no modification.
|
||||
|
||||
touchpad = {
|
||||
natural_scroll = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -7,87 +7,189 @@ in
|
||||
wayland.windowManager.hyprland.settings = let
|
||||
exe = lib.getExe;
|
||||
in {
|
||||
"$mod" = "SUPER";
|
||||
mod._var = "SUPER";
|
||||
|
||||
# https://github.com/xkbcommon/libxkbcommon/blob/master/include/xkbcommon/xkbcommon-keysyms.h
|
||||
bind = [
|
||||
"$mod SHIFT, Q, exec, uwsm stop"
|
||||
"$mod ALT SHIFT, Q, exec, ${pkgs.systemd}/bin/loginctl terminate-user \"${config.home.username}\""
|
||||
"$mod, R, exec, uwsm app -- ${exe config.programs.anyrun.package}"
|
||||
"$mod, T, togglefloating"
|
||||
bind = let
|
||||
lua = lib.generators.mkLuaInline;
|
||||
mod = key: args: {
|
||||
_args = [
|
||||
(lua "mod .. \" + ${key}\"")
|
||||
] ++ args;
|
||||
};
|
||||
in [
|
||||
(mod "SHIFT + Q" [
|
||||
(lua "hl.dsp.exec_cmd(\"uwsm stop\")")
|
||||
])
|
||||
(mod "ALT + SHIFT + Q" [
|
||||
(lua "hl.dsp.exec_cmd(\"${pkgs.systemd}/bin/loginctl terminate-user '${config.home.username}'\")")
|
||||
])
|
||||
(mod "R" [
|
||||
(lua "hl.dsp.exec_cmd(\"uwsm app -- ${exe config.programs.anyrun.package}\")")
|
||||
])
|
||||
(mod "T" [
|
||||
(lua "hl.dsp.window.float({ action = \"toggle\" })")
|
||||
])
|
||||
|
||||
"$mod, F, fullscreenstate, 1"
|
||||
"$mod SHIFT, F, fullscreenstate, 3"
|
||||
"$mod, C, exec, ${cfg.finalPackage}/bin/hyprctl reload"
|
||||
(mod "F" [
|
||||
(lua "hl.dsp.window.fullscreen({ action = \"toggle\", mode = \"maximized\" })")
|
||||
])
|
||||
(mod "SHIFT + F" [
|
||||
(lua "hl.dsp.window.fullscreen({ action = \"toggle\", mode = \"fullscreen\" })")
|
||||
])
|
||||
|
||||
"$mod, BACKSPACE, killactive"
|
||||
(mod "C" [
|
||||
(lua "hl.dsp.exec_cmd(\"${cfg.finalPackage}/bin/hyprctl reload\")")
|
||||
])
|
||||
|
||||
"$mod SHIFT, RETURN, exec, ${exe pkgs.app2unit} -t service -C -s app-graphical.slice -- ${exe pkgs.alacritty} --class termTerminal -e ${exe pkgs.tmux} new-session -A -s term"
|
||||
"$mod SHIFT, SPACE, exec, ${exe pkgs.app2unit} -t service -C -s app-graphical.slice -- ${exe pkgs.alacritty} --class termTerminal -e ${exe pkgs.tmux} new-session -A -s term"
|
||||
(mod "BACKSPACE" [
|
||||
(lua "hl.dsp.window.close()")
|
||||
])
|
||||
|
||||
"$mod, j, layoutmsg,cyclenext"
|
||||
"$mod, k, layoutmsg,cycleprev"
|
||||
"$mod SHIFT, j, layoutmsg, swapnext"
|
||||
"$mod SHIFT, k, layoutmsg, swapprev"
|
||||
(mod "SHIFT + BACKSPACE" [
|
||||
(lua "hl.dsp.window.kill()")
|
||||
])
|
||||
|
||||
"$mod, 1, focusworkspaceoncurrentmonitor, 1"
|
||||
"$mod, 2, focusworkspaceoncurrentmonitor, 2"
|
||||
"$mod, 3, focusworkspaceoncurrentmonitor, 3"
|
||||
"$mod, 4, focusworkspaceoncurrentmonitor, 4"
|
||||
"$mod, 5, focusworkspaceoncurrentmonitor, 5"
|
||||
"$mod, 6, focusworkspaceoncurrentmonitor, 6"
|
||||
"$mod, 7, focusworkspaceoncurrentmonitor, 7"
|
||||
"$mod, 8, focusworkspaceoncurrentmonitor, 8"
|
||||
"$mod, 9, focusworkspaceoncurrentmonitor, 9"
|
||||
(mod "SHIFT + RETURN" [
|
||||
(lua "hl.dsp.exec_cmd(\"${exe pkgs.app2unit} -t service -C -s app-graphical.slice -- ${exe pkgs.alacritty} --class termTerminal -e ${exe pkgs.tmux} new-session -A -s term\")")
|
||||
])
|
||||
(mod "SHIFT + SPACE" [
|
||||
(lua "hl.dsp.exec_cmd(\"${exe pkgs.app2unit} -t service -C -s app-graphical.slice -- ${exe pkgs.alacritty} --class termTerminal -e ${exe pkgs.tmux} new-session -A -s term\")")
|
||||
])
|
||||
|
||||
"$mod SHIFT, 1, movetoworkspacesilent, 1"
|
||||
"$mod SHIFT, 2, movetoworkspacesilent, 2"
|
||||
"$mod SHIFT, 3, movetoworkspacesilent, 3"
|
||||
"$mod SHIFT, 4, movetoworkspacesilent, 4"
|
||||
"$mod SHIFT, 5, movetoworkspacesilent, 5"
|
||||
"$mod SHIFT, 6, movetoworkspacesilent, 6"
|
||||
"$mod SHIFT, 7, movetoworkspacesilent, 7"
|
||||
"$mod SHIFT, 8, movetoworkspacesilent, 8"
|
||||
"$mod SHIFT, 9, movetoworkspacesilent, 9"
|
||||
(mod "j" [(lua "hl.dsp.layout(\"cyclenext\")")])
|
||||
(mod "k" [(lua "hl.dsp.layout(\"cycleprev\")")])
|
||||
(mod "SHIFT + j" [(lua "hl.dsp.layout(\"swapnext\")")])
|
||||
(mod "SHIFT + k" [(lua "hl.dsp.layout(\"swapprev\")")])
|
||||
|
||||
"$mod, b, exec, ${pkgs.fcitx5}/bin/fcitx5-remote -s mozc"
|
||||
"$mod, n, exec, ${pkgs.fcitx5}/bin/fcitx5-remote -s keyboard-no"
|
||||
"$mod, m, exec, ${pkgs.fcitx5}/bin/fcitx5-remote -s keyboard-us"
|
||||
(mod "1" [(lua "hl.dsp.focus({ workspace = 1, on_current_monitor = true })")])
|
||||
(mod "2" [(lua "hl.dsp.focus({ workspace = 2, on_current_monitor = true })")])
|
||||
(mod "3" [(lua "hl.dsp.focus({ workspace = 3, on_current_monitor = true })")])
|
||||
(mod "4" [(lua "hl.dsp.focus({ workspace = 4, on_current_monitor = true })")])
|
||||
(mod "5" [(lua "hl.dsp.focus({ workspace = 5, on_current_monitor = true })")])
|
||||
(mod "6" [(lua "hl.dsp.focus({ workspace = 6, on_current_monitor = true })")])
|
||||
(mod "7" [(lua "hl.dsp.focus({ workspace = 7, on_current_monitor = true })")])
|
||||
(mod "8" [(lua "hl.dsp.focus({ workspace = 8, on_current_monitor = true })")])
|
||||
(mod "9" [(lua "hl.dsp.focus({ workspace = 9, on_current_monitor = true })")])
|
||||
|
||||
"$mod, l, exec, ${pkgs.systemd}/bin/loginctl lock-session"
|
||||
(mod "SHIFT + 1" [(lua "hl.dsp.window.move({ workspace = 1 })")])
|
||||
(mod "SHIFT + 2" [(lua "hl.dsp.window.move({ workspace = 2 })")])
|
||||
(mod "SHIFT + 3" [(lua "hl.dsp.window.move({ workspace = 3 })")])
|
||||
(mod "SHIFT + 4" [(lua "hl.dsp.window.move({ workspace = 4 })")])
|
||||
(mod "SHIFT + 5" [(lua "hl.dsp.window.move({ workspace = 5 })")])
|
||||
(mod "SHIFT + 6" [(lua "hl.dsp.window.move({ workspace = 6 })")])
|
||||
(mod "SHIFT + 7" [(lua "hl.dsp.window.move({ workspace = 7 })")])
|
||||
(mod "SHIFT + 8" [(lua "hl.dsp.window.move({ workspace = 8 })")])
|
||||
(mod "SHIFT + 9" [(lua "hl.dsp.window.move({ workspace = 9 })")])
|
||||
|
||||
(mod "b" [(lua "hl.dsp.exec_cmd(\"${pkgs.fcitx5}/bin/fcitx5-remote -s mozc\")")])
|
||||
(mod "n" [(lua "hl.dsp.exec_cmd(\"${pkgs.fcitx5}/bin/fcitx5-remote -s keyboard-no\")")])
|
||||
(mod "m" [(lua "hl.dsp.exec_cmd(\"${pkgs.fcitx5}/bin/fcitx5-remote -s keyboard-us\")")])
|
||||
|
||||
(mod "l" [(lua "hl.dsp.exec_cmd(\"${pkgs.systemd}/bin/loginctl lock-session\")")])
|
||||
|
||||
# TODO: fix
|
||||
# "super + minus" = "${pkgs.xcalib}/bin/xcalib -invert -alter"
|
||||
|
||||
", Print, exec, ${exe pkgs.grimblast} copy area"
|
||||
{
|
||||
_args = [
|
||||
(lua "\"PRINT\"")
|
||||
(lua "hl.dsp.exec_cmd(\"${exe pkgs.grimblast} copy area\")")
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
(lua "\"SHIFT + PRINT\"")
|
||||
(lua "hl.dsp.exec_cmd(\"${lib.getExe pkgs.grimblast} save\")")
|
||||
];
|
||||
}
|
||||
|
||||
"SHIFT, Print, exec, ${lib.getExe pkgs.grimblast} save"
|
||||
# "SHIFT, Print, exec, ${lib.getExe pkgs.grimblast} save"
|
||||
# "shift + @Print" = "${pkgs.maim}/bin/maim --hidecursor --nokeyboard $SCREENSHOT_DIR/$(date +%s).png"
|
||||
|
||||
"$mod, Print, exec, ${exe pkgs.woomer}"
|
||||
];
|
||||
# "$mod, Print, exec, ${exe pkgs.woomer}"
|
||||
|
||||
bindm = [
|
||||
"$mod, mouse:272, movewindow"
|
||||
"$mod, Control_L, movewindow"
|
||||
"$mod, mouse:273, resizewindow"
|
||||
"$mod, ALT_L, resizewindow"
|
||||
];
|
||||
(mod "mouse:272" [
|
||||
(lua "hl.dsp.window.drag()")
|
||||
(lua "{ mouse = true }")
|
||||
])
|
||||
|
||||
bindl = [
|
||||
"$mod, p, exec, ${exe pkgs.mpc} toggle"
|
||||
",XF86AudioPlay, exec, ${exe pkgs.mpc} toggle"
|
||||
",XF86AudioPrev, exec, ${exe pkgs.mpc} prev"
|
||||
",XF86AudioNext, exec, ${exe pkgs.mpc} next"
|
||||
];
|
||||
(mod "Control_L" [
|
||||
(lua "hl.dsp.window.drag()")
|
||||
(lua "{ mouse = true }")
|
||||
])
|
||||
|
||||
bindle = [
|
||||
",XF86MonBrightnessUp, exec, ${exe pkgs.brightnessctl} s +5%"
|
||||
",XF86MonBrightnessDown, exec, ${exe pkgs.brightnessctl} s 5%-"
|
||||
",XF86AudioLowerVolume, exec, ${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%-"
|
||||
",XF86AudioRaiseVolume, exec, ${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%+"
|
||||
"$mod ,F7, exec, ${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%-"
|
||||
"$mod ,F8, exec, ${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%+"
|
||||
(mod "mouse:273" [
|
||||
(lua "hl.dsp.window.resize()")
|
||||
(lua "{ mouse = true }")
|
||||
])
|
||||
|
||||
(mod "ALT_L" [
|
||||
(lua "hl.dsp.window.resize()")
|
||||
(lua "{ mouse = true }")
|
||||
])
|
||||
|
||||
(mod "p" [
|
||||
(lua "hl.dsp.exec_cmd(\"${exe pkgs.mpc} toggle\")")
|
||||
(lua "{ locked = true }")
|
||||
])
|
||||
{
|
||||
_args = [
|
||||
(lua "\"XF86AudioPlay\"")
|
||||
(lua "hl.dsp.exec_cmd(\"${exe pkgs.mpc} toggle\")")
|
||||
(lua "{ locked = true }")
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
(lua "\"XF86AudioPrev\"")
|
||||
(lua "hl.dsp.exec_cmd(\"${exe pkgs.mpc} prev\")")
|
||||
(lua "{ locked = true }")
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
(lua "\"XF86AudioNext\"")
|
||||
(lua "hl.dsp.exec_cmd(\"${exe pkgs.mpc} next\")")
|
||||
(lua "{ locked = true }")
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
(lua "\"XF86MonBrightnessUp\"")
|
||||
(lua "hl.dsp.exec_cmd(\"${exe pkgs.brightnessctl} s +5%\")")
|
||||
(lua "{ locked = true, repeating = true }")
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
(lua "\"XF86MonBrightnessDown\"")
|
||||
(lua "hl.dsp.exec_cmd(\"${exe pkgs.brightnessctl} s 5%-\")")
|
||||
(lua "{ locked = true, repeating = true }")
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
(lua "\"XF86AudioLowerVolume\"")
|
||||
(lua "hl.dsp.exec_cmd(\"${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%-\")")
|
||||
(lua "{ locked = true, repeating = true }")
|
||||
];
|
||||
}
|
||||
{
|
||||
_args = [
|
||||
(lua "\"XF86AudioRaiseVolume\"")
|
||||
(lua "hl.dsp.exec_cmd(\"${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%+\")")
|
||||
(lua "{ locked = true, repeating = true }")
|
||||
];
|
||||
}
|
||||
(mod "F7" [
|
||||
(lua "hl.dsp.exec_cmd(\"${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%-\")")
|
||||
(lua "{ locked = true, repeating = true }")
|
||||
])
|
||||
(mod "F8" [
|
||||
(lua "hl.dsp.exec_cmd(\"${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%+\")")
|
||||
(lua "{ locked = true, repeating = true }")
|
||||
])
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
let
|
||||
{ config, pkgs, lib, ... }: let
|
||||
cfg = config.wayland.windowManager.hyprland;
|
||||
in
|
||||
{
|
||||
@@ -13,62 +12,128 @@ in
|
||||
command = "uwsm app -- ${exe pkgs.alacritty} --class ${class} -e ${exe pkgs.tmux} new-session -A -s f";
|
||||
size = { h = 90; w = 95; };
|
||||
keys = [
|
||||
"$mod, RETURN"
|
||||
"$mod, SPACE"
|
||||
(lib.generators.mkLuaInline "mod .. \" + RETURN\"")
|
||||
(lib.generators.mkLuaInline "mod .. \" + SPACE\"")
|
||||
];
|
||||
})
|
||||
(rec {
|
||||
title = "Ncmpcpp";
|
||||
class = "floatingNcmpcpp";
|
||||
command = "uwsm app -- ${exe pkgs.alacritty} --class ${class} -e ${exe pkgs.ncmpcpp}";
|
||||
size = { h = 95; w = 95; };
|
||||
keys = [ "$mod, Q" ];
|
||||
size = { h = 90; w = 95; };
|
||||
keys = [
|
||||
(lib.generators.mkLuaInline "mod .. \" + Q\"")
|
||||
];
|
||||
})
|
||||
# "$mod, W, emacs"
|
||||
# "$mod, E, filebrowser"
|
||||
# "$mod, X, taskwarriortui"
|
||||
];
|
||||
in {
|
||||
bind = lib.pipe scratchpads [
|
||||
(map ({ keys, command, class, ... }:
|
||||
(map (key: let
|
||||
# TODO: rewrite this to take arguments instead of creating n copies
|
||||
invokeIfNotRunningAndToggleWorkspace = pkgs.writeShellApplication {
|
||||
name = "hyprland-toggle-scratchpad-${class}";
|
||||
runtimeInputs = [ cfg.finalPackage pkgs.jq ];
|
||||
text = ''
|
||||
SCRATCHPAD_PROGRAM_EXISTS=$(hyprctl clients -j | jq -r '[.[].class]|any(. == "${class}")')
|
||||
CURRENT_WORKSPACE_ID=$(hyprctl activeworkspace -j | jq -r '.id')
|
||||
scratchpads._var = scratchpads;
|
||||
|
||||
if [ "$SCRATCHPAD_PROGRAM_EXISTS" != "true" ]; then
|
||||
${command} &
|
||||
hyprctl dispatch movetoworkspacesilent "''${CURRENT_WORKSPACE_ID},class:${class}"
|
||||
hyprctl dispatch focuswindow "class:${class}"
|
||||
else
|
||||
SCRATCHPAD_PROGRAM_WORKSPACE_ID=$(hyprctl clients -j | jq '.[] | select( .class == "${class}") | .workspace.id')
|
||||
if [ "$SCRATCHPAD_PROGRAM_WORKSPACE_ID" != "$CURRENT_WORKSPACE_ID" ]; then
|
||||
hyprctl dispatch movetoworkspacesilent "''${CURRENT_WORKSPACE_ID},class:${class}"
|
||||
hyprctl dispatch focuswindow "class:${class}"
|
||||
else
|
||||
hyprctl dispatch movetoworkspacesilent "special:${class}Ws,class:${class}"
|
||||
fi
|
||||
fi
|
||||
'';
|
||||
};
|
||||
in "${key}, exec, ${lib.getExe invokeIfNotRunningAndToggleWorkspace}"
|
||||
) keys)
|
||||
))
|
||||
lib.flatten
|
||||
];
|
||||
fixScratchpad._var = lib.generators.mkLuaInline ''
|
||||
function(scratchpad, window, monitor_)
|
||||
local monitor = monitor_
|
||||
if monitor == nil then
|
||||
monitor = window.monitor
|
||||
end
|
||||
|
||||
windowrulev2 = lib.pipe scratchpads [
|
||||
(map ({ class, size, ... }: [
|
||||
"workspace special:${class}Ws, class:^(${class})$"
|
||||
"float, class:^${class}$"
|
||||
"size ${toString size.w}% ${toString size.h}%, class:^(${class})$"
|
||||
"move ${toString ((100 - size.w) / 2)}% ${toString ((100 - size.h) / 2)}%, class:^(${class})$"
|
||||
]))
|
||||
lib.flatten
|
||||
local scaled_w = monitor.width * (1/monitor.scale)
|
||||
local scaled_h = monitor.height * (1/monitor.scale)
|
||||
|
||||
-- I have no idea why these need to be run twice, but despite the values being the same,
|
||||
-- it somehow always misplaces the window the first time around...
|
||||
hl.dispatch(hl.dsp.window.move({
|
||||
x = monitor.x + (scaled_w * (((100 -scratchpad.size.w) / 2) / 100)),
|
||||
y = monitor.y + (scaled_h * (((100 -scratchpad.size.h) / 2) / 100)),
|
||||
relative = false
|
||||
}))
|
||||
hl.dispatch(hl.dsp.window.resize({
|
||||
x = scaled_w * scratchpad.size.w / 100,
|
||||
y = scaled_h * scratchpad.size.h / 100,
|
||||
relative = false
|
||||
}))
|
||||
hl.dispatch(hl.dsp.window.move({
|
||||
x = monitor.x + (scaled_w * (((100 -scratchpad.size.w) / 2) / 100)),
|
||||
y = monitor.y + (scaled_h * (((100 -scratchpad.size.h) / 2) / 100)),
|
||||
relative = false
|
||||
}))
|
||||
hl.dispatch(hl.dsp.window.resize({
|
||||
x = scaled_w * scratchpad.size.w / 100,
|
||||
y = scaled_h * scratchpad.size.h / 100,
|
||||
relative = false
|
||||
}))
|
||||
end
|
||||
'';
|
||||
|
||||
invokeScratchpad._var = lib.generators.mkLuaInline ''
|
||||
function(scratchpad)
|
||||
local scratchpad_window = hl.get_window("class:^(" .. scratchpad.class .. ")$")
|
||||
local current_workspace = hl.get_active_workspace()
|
||||
|
||||
if scratchpad_window == nil then
|
||||
hl.dispatch(hl.dsp.exec_cmd(scratchpad.command, {
|
||||
workspace = current_workspace.id
|
||||
}))
|
||||
else
|
||||
hl.dispatch(hl.dsp.focus({ window = scratchpad_window }))
|
||||
|
||||
if scratchpad_window.workspace.id ~= current_workspace.id then
|
||||
hl.dispatch(hl.dsp.window.move({ workspace = current_workspace.id }))
|
||||
fixScratchpad(scratchpad, scratchpad_window, current_workspace.monitor)
|
||||
else
|
||||
hl.dispatch(hl.dsp.window.move({ workspace = "special:" .. scratchpad.class .. "Ws", follow = false }))
|
||||
end
|
||||
end
|
||||
end
|
||||
'';
|
||||
|
||||
bind = lib.concatLists (lib.imap1 (i: { keys, command, class, size, ... }: map (key: {
|
||||
_args = [
|
||||
key
|
||||
(lib.generators.mkLuaInline "function() invokeScratchpad(scratchpads[${toString i}]) end")
|
||||
];
|
||||
}) keys) scratchpads);
|
||||
|
||||
window_rule = map ({ class, size, ... }: {
|
||||
name = "scratchpad_${class}";
|
||||
match.class = "^(${class})$";
|
||||
|
||||
float = true;
|
||||
size = [
|
||||
"(monitor_w*${toString (size.w / 100.0)})"
|
||||
"(monitor_h*${toString (size.h / 100.0)})"
|
||||
];
|
||||
move = [
|
||||
"(monitor_w*${toString (((100 - size.w) / 2) / 100.0)})"
|
||||
"(monitor_h*${toString (((100 - size.h) / 2) / 100.0)})"
|
||||
];
|
||||
}) scratchpads;
|
||||
|
||||
# TODO: fix me
|
||||
on._args = [
|
||||
"workspace.move_to_monitor"
|
||||
(lib.mkLuaInline ''
|
||||
function(workspace, monitor)
|
||||
for _, scratchpad in pairs(scratchpads) do
|
||||
local scratchpad_window = hl.get_window("class:^(" .. scratchpad.class .. ")$")
|
||||
if scratchpad_window == nil or scratchpad_window.workspace.id ~= workspace.id then
|
||||
-- NOTE: crazy that there's no continue in lua...
|
||||
goto continue
|
||||
end
|
||||
|
||||
-- hl.notification.create({
|
||||
-- time = 3000,
|
||||
-- text = "Fixing scratchpad " .. scratchpad.class .. " to monitor " .. monitor.name
|
||||
-- })
|
||||
|
||||
fixScratchpad(scratchpad, scratchpad_window, monitor)
|
||||
|
||||
::continue::
|
||||
end
|
||||
end
|
||||
'')
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
@@ -4,38 +4,111 @@ let
|
||||
in
|
||||
{
|
||||
config = lib.mkIf cfg.enable {
|
||||
wayland.windowManager.hyprland.settings.windowrulev2 = [
|
||||
"float, class:^(Rofi)$"
|
||||
"float, class:^(xdg-desktop-portal-gtk)$"
|
||||
"float, title:^(.*Bitwarden Password Manager.*)$"
|
||||
"float, title:^(Picture-in-Picture)$"
|
||||
"tile, class:^(Nsxiv)$"
|
||||
wayland.windowManager.hyprland.settings.window_rule = [
|
||||
{
|
||||
match.class = "^(Rofi)$";
|
||||
float = true;
|
||||
}
|
||||
{
|
||||
match.class = "^(xdg-desktop-portal-gtk)$";
|
||||
float = true;
|
||||
}
|
||||
{
|
||||
match.title = "^(.*Bitwarden Password Manager.*)$";
|
||||
float = true;
|
||||
}
|
||||
{
|
||||
match.title = "^(Picture-in-Picture)$";
|
||||
float = true;
|
||||
}
|
||||
{
|
||||
match.class = "^(Nsxiv)$";
|
||||
tile = true;
|
||||
}
|
||||
|
||||
"float, class: ^(Gimp-2.*)$, title:^(Open Image)$"
|
||||
"size 70%, class: ^(Gimp-2.*)$, title:^(Open Image)$"
|
||||
"center, class: ^(Gimp-2.*)$, title:^(Open Image)$"
|
||||
{
|
||||
match.class = "^(Gimp-2.*)$";
|
||||
match.title = "^(Open Image)$";
|
||||
|
||||
"dimaround, class:^(xdg-desktop-portal-gtk)$"
|
||||
float = true;
|
||||
size = [
|
||||
"70%"
|
||||
"70%"
|
||||
];
|
||||
center = true;
|
||||
}
|
||||
# {
|
||||
# match.class = "^(xdg-desktop-portal-gtk)$";
|
||||
# dimaround = true;
|
||||
# }
|
||||
|
||||
"workspace special silent, title:^(Firefox — Sharing Indicator)$"
|
||||
"workspace special silent, title:^(Zen — Sharing Indicator)$"
|
||||
"workspace special silent, title:^(.*is sharing (your screen|a window)\.)$"
|
||||
{
|
||||
match.title = "^(Firefox — Sharing Indicator)$";
|
||||
workspace = "special:silent";
|
||||
}
|
||||
{
|
||||
match.title = "^(Zen — Sharing Indicator)$";
|
||||
workspace = "special:silent";
|
||||
}
|
||||
{
|
||||
match.title = "^(.*is sharing (your screen|a window)\\.)$";
|
||||
workspace = "special:silent";
|
||||
}
|
||||
|
||||
"workspace 2, class:^(firefox)$"
|
||||
"workspace 2, class:^(chromium)$"
|
||||
{
|
||||
}
|
||||
|
||||
"workspace 3, class:^(Emacs)$"
|
||||
"workspace 3, class:^(code)$"
|
||||
"workspace 3, class:^(code-url-handler)$"
|
||||
"workspace 3, class:^(dev.zed.Zed)$"
|
||||
{
|
||||
match.class = "^(firefox)$";
|
||||
workspace = 2;
|
||||
}
|
||||
{
|
||||
match.class = "^(chromium)$";
|
||||
workspace = 2;
|
||||
}
|
||||
|
||||
"workspace 5, class:^(discord)$"
|
||||
"workspace 5, class:^(Element)$"
|
||||
{
|
||||
match.class = "^(Emacs)$";
|
||||
workspace = 3;
|
||||
}
|
||||
{
|
||||
match.class = "^(code)$";
|
||||
workspace = 3;
|
||||
}
|
||||
{
|
||||
match.class = "^(code-url-handler)$";
|
||||
workspace = 3;
|
||||
}
|
||||
{
|
||||
match.class = "^(dev.zed.Zed)$";
|
||||
workspace = 3;
|
||||
}
|
||||
|
||||
"float, class:^(xdg-desktop-portal-termfilechooser)$"
|
||||
"float, class:^(anyrun)$"
|
||||
"size 70% 80%, class:^(xdg-desktop-portal-termfilechooser)$"
|
||||
"move 15% 10%, class:^(xdg-desktop-portal-termfilechooser)$"
|
||||
{
|
||||
match.class = "^(discord)$";
|
||||
workspace = 5;
|
||||
}
|
||||
{
|
||||
match.class = "^(Element)$";
|
||||
workspace = 5;
|
||||
}
|
||||
|
||||
{
|
||||
match.class = "^(anyrun)$";
|
||||
float = true;
|
||||
}
|
||||
{
|
||||
match.class = "^(xdg-desktop-portal-termfilechooser)$";
|
||||
float = true;
|
||||
size = [
|
||||
"70%"
|
||||
"80%"
|
||||
];
|
||||
move = [
|
||||
"15%"
|
||||
"10%"
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -10,6 +10,9 @@ lib.mkIf cfg.enable {
|
||||
vimAlias = true;
|
||||
vimdiffAlias = true;
|
||||
|
||||
withPython3 = true;
|
||||
withRuby = false;
|
||||
|
||||
plugins = with pkgs.vimPlugins; [
|
||||
direnv-vim
|
||||
fzf-vim
|
||||
@@ -27,6 +30,7 @@ lib.mkIf cfg.enable {
|
||||
semshi
|
||||
{
|
||||
plugin = goyo-vim;
|
||||
type = "viml";
|
||||
|
||||
# TODO: The mapleader definition should be in extraConfig, but setting
|
||||
# the mapleader before defining keymaps messes things up.
|
||||
@@ -73,21 +77,19 @@ lib.mkIf cfg.enable {
|
||||
vim-better-whitespace
|
||||
{
|
||||
plugin = nvim-treesitter.withAllGrammars;
|
||||
type = "lua";
|
||||
config = ''
|
||||
packadd! nvim-treesitter
|
||||
lua << EOF
|
||||
require'nvim-treesitter.configs'.setup {
|
||||
require('nvim-treesitter').setup {
|
||||
highlight = {
|
||||
enable = true,
|
||||
},
|
||||
}
|
||||
EOF
|
||||
'';
|
||||
}
|
||||
{
|
||||
plugin = rainbow-delimiters-nvim;
|
||||
type = "lua";
|
||||
config = ''
|
||||
lua << EOF
|
||||
local rainbow_delimiters = require 'rainbow-delimiters'
|
||||
vim.g.rainbow_delimiters = {
|
||||
["highlight"] = {
|
||||
@@ -99,11 +101,11 @@ lib.mkIf cfg.enable {
|
||||
'RainbowDelimiterCyan',
|
||||
},
|
||||
}
|
||||
EOF
|
||||
'';
|
||||
}
|
||||
{
|
||||
plugin = vim-monokai;
|
||||
type = "viml";
|
||||
config = ''
|
||||
colorscheme monokai
|
||||
|
||||
@@ -140,7 +142,7 @@ lib.mkIf cfg.enable {
|
||||
vnoremap <A-k> :m '<-2<CR>gv=gv
|
||||
'';
|
||||
|
||||
extraLuaConfig = ''
|
||||
initLua = ''
|
||||
local function paste_buf()
|
||||
local content = os.getenv("NVIM_CLIPBOARD")
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{ ... }:
|
||||
{
|
||||
programs.yazi = {
|
||||
shellWrapperName = "y";
|
||||
keymap = {
|
||||
manager.prepend_keymap = [
|
||||
{
|
||||
|
||||
@@ -5,7 +5,7 @@ let
|
||||
in
|
||||
{
|
||||
options.services.tumblerd.enable = lib.mkEnableOption "tumblerd";
|
||||
options.services.tumblerd.package = lib.mkPackageOption pkgs [ "xfce" "tumbler" ] { };
|
||||
options.services.tumblerd.package = lib.mkPackageOption pkgs "tumbler" { };
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
systemd.user.services.tumblerd = {
|
||||
|
||||
@@ -55,9 +55,6 @@ in {
|
||||
htop_ = p "htop";
|
||||
htop = p "bottom";
|
||||
|
||||
dig_ = p "dig";
|
||||
dig = p "dogdns";
|
||||
|
||||
man_ = p "man";
|
||||
man = "${pkgs.bat-extras.batman}/bin/batman";
|
||||
|
||||
|
||||
@@ -41,7 +41,6 @@ in {
|
||||
./services/uptimed.nix
|
||||
./services/userborn.nix
|
||||
./services/userdbd.nix
|
||||
./services/wpa_supplicant.nix
|
||||
./services/xserver.nix
|
||||
];
|
||||
|
||||
@@ -144,7 +143,6 @@ in {
|
||||
services = {
|
||||
udev.packages = with pkgs; [
|
||||
yubikey-personalization
|
||||
light
|
||||
];
|
||||
};
|
||||
|
||||
@@ -186,7 +184,7 @@ in {
|
||||
man.enable = true;
|
||||
nixos.enable = true;
|
||||
|
||||
man.generateCaches = true;
|
||||
man.cache.enable = true;
|
||||
};
|
||||
|
||||
# security.lockKernelModules = true;
|
||||
|
||||
@@ -32,23 +32,21 @@
|
||||
ghcid
|
||||
# haskellPackages.Cabal_3_6_3_0
|
||||
maven
|
||||
nixfmt-rfc-style
|
||||
nixfmt
|
||||
nixpkgs-fmt
|
||||
# nixpkgs-hammering
|
||||
nodePackages.node2nix
|
||||
nodePackages.npm
|
||||
nodePackages.sass
|
||||
nodePackages.typescript
|
||||
nodePackages.yarn
|
||||
nodejs
|
||||
plantuml
|
||||
python3
|
||||
rustc
|
||||
rustc
|
||||
rustup
|
||||
sass
|
||||
sqlcheck
|
||||
sqlint
|
||||
sqlite
|
||||
sqlite-web
|
||||
typescript
|
||||
yarn
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -1,63 +0,0 @@
|
||||
{ config, lib, ... }:
|
||||
let
|
||||
cfg = config.networking.wireless;
|
||||
in
|
||||
{
|
||||
systemd.services.wpa_supplicant.serviceConfig = lib.mkIf (cfg.enable || config.networking.hostName == "xps16") {
|
||||
RuntimeDirectory = [
|
||||
"wpa_supplicant"
|
||||
"wpa_supplicant/root-mnt"
|
||||
];
|
||||
RootDirectory = "/run/wpa_supplicant/root-mnt";
|
||||
BindPaths = [
|
||||
"/etc"
|
||||
"/run/dbus/system_bus_socket"
|
||||
"/tmp"
|
||||
];
|
||||
BindReadOnlyPaths = [
|
||||
# "/bin/sh"
|
||||
builtins.storeDir
|
||||
];
|
||||
|
||||
# wpa_ctrl puts sockets in /tmp
|
||||
PrivateTmp = false;
|
||||
# PrivateTmp = lib.mkIf (configIsGenerated && !cfg.allowAuxiliaryImperativeNetworks) "disconnected";
|
||||
|
||||
CapabilityBoundingSet = [
|
||||
"CAP_NET_ADMIN"
|
||||
"CAP_BLOCK_SUSPEND"
|
||||
"CAP_NET_RAW"
|
||||
"CAP_CHOWN"
|
||||
];
|
||||
RestrictNamespaces = true;
|
||||
SystemCallFilter = [
|
||||
"@system-service"
|
||||
"~@resources"
|
||||
"@chown"
|
||||
];
|
||||
ProtectProc = "invisible";
|
||||
SystemCallArchitectures = "native";
|
||||
DeviceAllow = "/dev/rfkill";
|
||||
DevicePolicy = "closed";
|
||||
NoNewPrivileges = true;
|
||||
ProtectKernelLogs = true;
|
||||
ProtectControlGroups = true;
|
||||
ProtectKernelModules = true;
|
||||
ProtectSystem = true;
|
||||
ProtectHome = true;
|
||||
MemoryDenyWriteExecute = true;
|
||||
ProtectHostname = true;
|
||||
LockPersonality = true;
|
||||
RestrictRealtime = true;
|
||||
RestrictSUIDSGID = true;
|
||||
RestrictAddressFamilies = [
|
||||
"AF_INET"
|
||||
"AF_INET6"
|
||||
"AF_NETLINK"
|
||||
"AF_PACKET"
|
||||
# "AF_ALG" # Used for 'linux' TLS backend
|
||||
] ++ lib.optionals cfg.dbusControlled [
|
||||
"AF_UNIX"
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -86,9 +86,7 @@
|
||||
docker.enable = true;
|
||||
};
|
||||
|
||||
services.resolved.extraConfig = ''
|
||||
MulticastDNS=no
|
||||
'';
|
||||
services.resolved.settings.Resolve.MulticastDNS = false;
|
||||
|
||||
services.zfs.trim.enable = true;
|
||||
services.zfs.autoScrub.enable = true;
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
defaults = {
|
||||
email = "h7x4@nani.wtf";
|
||||
dnsProvider = "cloudflare";
|
||||
credentialsFile = config.sops.secrets."cloudflare/api-key".path;
|
||||
credentialFiles.CLOUDFLARE_DNS_API_TOKEN_FILE = config.sops.secrets."cloudflare/api-key".path;
|
||||
dnsPropagationCheck = true;
|
||||
};
|
||||
certs."nani.wtf" = {
|
||||
|
||||
@@ -6,18 +6,18 @@
|
||||
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
monitor = [
|
||||
"eDP-1, 3840x2400@90.00Hz, 0x0, 2"
|
||||
# "eDP-1, 3840x2400@90.00Hz, 0x0, 2"
|
||||
|
||||
# Office, childhood home
|
||||
"desc:Dell Inc. DELL U2713H C6F0K52E19AL, 2560x1440, 1920x0, 1"
|
||||
"desc:Dell Inc. DELL U2713H C6F0K3CH0MUL, 2560x1440, ${toString (1920 + 2560)}x0, 1"
|
||||
# # Office, childhood home
|
||||
# "desc:Dell Inc. DELL U2713H C6F0K52E19AL, 2560x1440, 1920x0, 1"
|
||||
# "desc:Dell Inc. DELL U2713H C6F0K3CH0MUL, 2560x1440, ${toString (1920 + 2560)}x0, 1"
|
||||
|
||||
# PVV
|
||||
"desc:ASUSTek COMPUTER INC MG248 K2LMQS048969, 1920x1080@60.00Hz, -1920x0, 1"
|
||||
"desc:Ancor Communications Inc MG248 G7LMQS010063, 1920x1080@60.00Hz, -${toString (1920 * 2)}x0, 1"
|
||||
# # PVV
|
||||
# "desc:ASUSTek COMPUTER INC MG248 K2LMQS048969, 1920x1080@60.00Hz, -1920x0, 1"
|
||||
# "desc:Ancor Communications Inc MG248 G7LMQS010063, 1920x1080@60.00Hz, -${toString (1920 * 2)}x0, 1"
|
||||
|
||||
# Home office
|
||||
"desc:LG Electronics LG SMART UHD 0x000BC43F, 3840x2160@60.00Hz, 1920x0, 1.5"
|
||||
# # Home office
|
||||
# "desc:LG Electronics LG SMART UHD 0x000BC43F, 3840x2160@60.00Hz, 1920x0, 1.5"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
+2
-2
@@ -5,8 +5,8 @@
|
||||
libappindicator
|
||||
libindicator
|
||||
libnotify
|
||||
xorg.libXScrnSaver
|
||||
xorg.libXtst
|
||||
libXScrnSaver
|
||||
libXtst
|
||||
]);
|
||||
|
||||
preFixup = ''
|
||||
|
||||
Reference in New Issue
Block a user