Merge remote-tracking branch 'refs/remotes/origin/nixos' into nixos

This commit is contained in:
Moritz Böhme 2024-08-18 13:12:15 +02:00
commit 5c666feefb
Signed by: moritz
GPG key ID: 970C6E89EB0547A9
8 changed files with 74 additions and 16 deletions

View file

@ -20,8 +20,10 @@
webis.enable = true;
impermanence.enable = true;
};
programs.hyprland.enable = true;
programs.gitbutler.enable = true;
programs.hyprland = {
enable = true;
monitors.DP-3.scale = "auto";
};
programs.exercism.enable = true;
};

View file

@ -31,7 +31,7 @@ in
enable = true;
shellAbbrs = shellConfig.abbreviations;
shellAliases = shellConfig.aliases;
shellInit = ''
shellInit = /* fish */ ''
# Vi Mode
fish_vi_key_bindings
@ -62,7 +62,7 @@ in
end
abbr --add dotdot --regex '^\.\.+$' --function multicd
abbr -a P --position anywhere --set-cursor "% | $PAGER"
abbr -a .P --position anywhere --set-cursor "% | $PAGER"
function editor_edit
echo $EDITOR $argv

View file

@ -29,18 +29,24 @@ in
config = mkIf cfg.enable {
my.shell.abbreviations = {
g = "git";
gC = "git clone";
gF = "git pull";
gS = "git switch";
ga = "git add";
gap = "git add --patch";
gr = "git restore";
grp = "git restore --patch";
gb = "git branch";
gc = "git commit";
gco = "git checkout";
gd = "git diff";
gds = "git diff --staged";
gp = "git push";
gf = "git fetch";
gF = "git pull";
gp = "git push";
gr = "git restore";
grm = "git rm --cached";
grp = "git restore --patch";
grps = "git restore --patch --staged";
grs = "git restore --staged";
gs = "git status";
};
home-manager.users.moritz = {

View file

@ -3,10 +3,18 @@
, ...
}:
with lib;
let
inherit (lib) concatStringsSep flip boolToString mapAttrsToList;
cfg = config.my.programs.hyprland;
mkMonitor = { name, resolution, position, scale, disabled, extra }:
if disabled
then "monitor=${name},disabled"
else "monitor=${name},${resolution},${position},${scale},${extra}";
monitorsList = mapAttrsToList (name: value: { name = name; } // value) cfg.monitors;
monitors = map mkMonitor monitorsList;
mkRule = rule: windowRegexes: "windowrulev2 = ${rule},${concatStringsSep "," windowRegexes}";
mkRules = rules: windowRegexes: concatStringsSep "\n" (map (flip mkRule windowRegexes) rules);
in
@ -17,7 +25,7 @@ in
#
# See https://wiki.hyprland.org/Configuring/Monitors/
${concatLines (map (x: "monitor=${x}") cfg.monitors)}
${concatStringsSep "\n" monitors}
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
@ -226,7 +234,7 @@ in
# Lid open/close
bindl=,switch:on:Lid Switch,exec,monitors="$(hyprctl monitors | grep -c '^Monitor')" && hyprctl keyword monitor "eDP-1, disable" && [ "$monitors" = 1 ] && loginctl lock-session
bindl=,switch:off:Lid Switch,exec, hyprctl keyword monitor "eDP-1, prefered, auto"
bindl=,switch:off:Lid Switch,exec, hyprctl keyword monitor "eDP-1, preferred, auto"
# Extra Config
${cfg.extraConfig}

View file

@ -5,8 +5,8 @@
, ...
} @ args:
with lib;
let
inherit (lib) mkOption mkEnableOption mkIf types getExe genAttrs optionalAttrs optional;
cfg = config.my.programs.hyprland;
hyprland = inputs.hyprland.packages.${pkgs.system}.default;
@ -31,9 +31,38 @@ in
default = [ "de" "us" ];
};
monitors = mkOption {
type = types.listOf types.str;
description = "monitor settings";
default = [ ",preferred,auto,1" ];
type = types.attrsOf (
let
sub = types.submodule {
options = {
resolution = mkOption {
type = types.strMatching "\(preferred\)|\([[:digit:]]+x[[:digit:]]+\(@[[:digit:]]+\)\?\)";
default = "preferred";
};
position = mkOption {
type = types.strMatching "\(auto\)|\(-\?[[:digit:]]+x-?[[:digit:]]+\)";
default = "auto";
};
disabled = mkEnableOption "disabled";
scale = mkOption {
type = types.oneOf [ types.float (types.strMatching "auto") ];
default = 1.0;
apply = x: if lib.isFloat x then lib.strings.floatToString x else x;
};
extra = mkOption {
type = types.listOf types.str;
default = [ ];
apply = lib.concatStringsSep ",";
};
};
};
in
sub
);
description = "monitor setting";
default = {
"" = { };
};
};
extraConfig = mkOption {
type = types.str;
@ -51,6 +80,7 @@ in
# foot.enable = true;
kitty.enable = true;
rofi.enable = true;
hyprland.monitors."" = lib.mkDefault { };
};
wallpapers.enable = true;
services = {

View file

@ -73,6 +73,7 @@ in
stable.flake = inputs.stable;
dotfiles.flake = self;
default.flake = self;
d.flake = self;
};
settings = {

View file

@ -127,7 +127,6 @@ local servers = {
"bashls",
"gleam",
"gopls",
"nil_ls",
"pylsp",
"ruff",
"templ",
@ -141,6 +140,16 @@ lspconfig_setup("elixirls", {
cmd = { "elixir-ls" },
})
lspconfig_setup("nil_ls", {
settings = {
flake = {
autoArchive = true,
autoEvalInputs = true,
nixpkgsInputName = "nixpkgs",
},
},
})
lspconfig_setup("nixd", {
settings = {
nixd = {

View file

@ -1,5 +1,6 @@
{ config
, lib
, pkgs
, ...
}: {
## System security tweaks
@ -69,6 +70,7 @@
# SSH
services.openssh = {
package = pkgs.master.openssh; # HACK: to fix CVE-2024-6387
settings = {
# Disable ssh password login
PasswordAuthentication = lib.mkDefault false;