Format code with alejandra
This commit is contained in:
parent
7d17c52192
commit
68da077c72
217
flake.nix
217
flake.nix
@ -56,20 +56,18 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs =
|
outputs = {
|
||||||
{
|
self,
|
||||||
self,
|
nixpkgs,
|
||||||
nixpkgs,
|
home-manager,
|
||||||
home-manager,
|
systems,
|
||||||
systems,
|
...
|
||||||
...
|
} @ inputs: let
|
||||||
}@inputs:
|
inherit (self) outputs;
|
||||||
let
|
lib = nixpkgs.lib // home-manager.lib;
|
||||||
inherit (self) outputs;
|
forEachSystem = f: lib.genAttrs (import systems) (system: f pkgsFor.${system});
|
||||||
lib = nixpkgs.lib // home-manager.lib;
|
pkgsFor = lib.genAttrs (import systems) (
|
||||||
forEachSystem = f: lib.genAttrs (import systems) (system: f pkgsFor.${system});
|
system:
|
||||||
pkgsFor = lib.genAttrs (import systems) (
|
|
||||||
system:
|
|
||||||
import nixpkgs {
|
import nixpkgs {
|
||||||
inherit system;
|
inherit system;
|
||||||
config.allowUnfree = true;
|
config.allowUnfree = true;
|
||||||
@ -78,111 +76,110 @@
|
|||||||
];
|
];
|
||||||
warn-dirty = false;
|
warn-dirty = false;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
in
|
in {
|
||||||
{
|
inherit lib;
|
||||||
inherit lib;
|
|
||||||
|
|
||||||
nixosModules = import ./modules/nixos;
|
nixosModules = import ./modules/nixos;
|
||||||
homeManagerModules = import ./modules/home-manager;
|
homeManagerModules = import ./modules/home-manager;
|
||||||
|
|
||||||
overlays = import ./overlays { inherit inputs outputs; };
|
overlays = import ./overlays {inherit inputs outputs;};
|
||||||
# hydraJobs = import ./hydra.nix { inherit inputs outputs; }; # TODO add hydra jobs here?
|
# hydraJobs = import ./hydra.nix { inherit inputs outputs; }; # TODO add hydra jobs here?
|
||||||
|
|
||||||
packages = forEachSystem (pkgs: import ./pkgs { inherit pkgs; });
|
packages = forEachSystem (pkgs: import ./pkgs {inherit pkgs;});
|
||||||
devShells = forEachSystem (pkgs: import ./shell.nix { inherit pkgs; });
|
devShells = forEachSystem (pkgs: import ./shell.nix {inherit pkgs;});
|
||||||
formatter = forEachSystem (pkgs: pkgs.alejandra);
|
formatter = forEachSystem (pkgs: pkgs.alejandra);
|
||||||
|
|
||||||
nixosConfigurations = {
|
nixosConfigurations = {
|
||||||
# Main laptop
|
# Main laptop
|
||||||
aspi = lib.nixosSystem {
|
aspi = lib.nixosSystem {
|
||||||
modules = [ ./hosts/aspi ];
|
modules = [./hosts/aspi];
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
inherit inputs outputs;
|
inherit inputs outputs;
|
||||||
};
|
|
||||||
};
|
|
||||||
# Piano raspberry pi
|
|
||||||
pianonix = lib.nixosSystem {
|
|
||||||
modules = [ ./hosts/pianonix ];
|
|
||||||
specialArgs = {
|
|
||||||
inherit inputs outputs;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
kardorf = lib.nixosSystem {
|
|
||||||
modules = [ ./hosts/pianonix ];
|
|
||||||
specialArgs = {
|
|
||||||
inherit inputs outputs;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
# Piano raspberry pi
|
||||||
# Standalone HM
|
pianonix = lib.nixosSystem {
|
||||||
homeConfigurations = {
|
modules = [./hosts/pianonix];
|
||||||
# Main laptop
|
specialArgs = {
|
||||||
"julian@aspi" = lib.homeManagerConfiguration {
|
inherit inputs outputs;
|
||||||
modules = [
|
|
||||||
./homes/julian/aspi.nix
|
|
||||||
./homes/julian/hm-standalone-config.nix
|
|
||||||
];
|
|
||||||
pkgs = pkgsFor.x86_64-linux;
|
|
||||||
extraSpecialArgs = {
|
|
||||||
inherit inputs outputs;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
# Media server (RPi)
|
|
||||||
"julian@pianonix" = lib.homeManagerConfiguration {
|
|
||||||
modules = [
|
|
||||||
./homes/julian/pianonix.nix
|
|
||||||
./homes/julian/hm-standalone-config.nix
|
|
||||||
];
|
|
||||||
pkgs = pkgsFor.aarch64-linux;
|
|
||||||
extraSpecialArgs = {
|
|
||||||
inherit inputs outputs;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
"julian@kardorf" = lib.homeManagerConfiguration {
|
|
||||||
modules = [
|
|
||||||
./homes/julian/kardorf.nix
|
|
||||||
./homes/julian/hm-standalone-config.nix
|
|
||||||
];
|
|
||||||
pkgs = pkgsFor.aarch64-linux;
|
|
||||||
extraSpecialArgs = {
|
|
||||||
inherit inputs outputs;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
"julian@v3ms" = lib.homeManagerConfiguration {
|
|
||||||
modules = [
|
|
||||||
./homes/julian/v3ms
|
|
||||||
./homes/julian/hm-standalone-config.nix
|
|
||||||
];
|
|
||||||
pkgs = pkgsFor.aarch64-linux;
|
|
||||||
extraSpecialArgs = {
|
|
||||||
inherit inputs outputs;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
kardorf = lib.nixosSystem {
|
||||||
# deploy-rs node configuration
|
modules = [./hosts/pianonix];
|
||||||
deploy.nodes = {
|
specialArgs = {
|
||||||
pianonix = {
|
inherit inputs outputs;
|
||||||
hostname = "pianonix.local";
|
|
||||||
profiles.system = {
|
|
||||||
sshUser = "root";
|
|
||||||
user = "root";
|
|
||||||
path = inputs.deploy-rs.lib.aarch64-linux.activate.nixos self.nixosConfigurations.pianonix;
|
|
||||||
confirmTimeout = 90; # default: 30s; raspberrypi takes a little longer restarting services
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
builder = {
|
|
||||||
hostname = "builder.julian-mutter.de";
|
|
||||||
profiles.system = {
|
|
||||||
sshUser = "root";
|
|
||||||
user = "root";
|
|
||||||
path = inputs.deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.builder;
|
|
||||||
remoteBuild = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Standalone HM
|
||||||
|
homeConfigurations = {
|
||||||
|
# Main laptop
|
||||||
|
"julian@aspi" = lib.homeManagerConfiguration {
|
||||||
|
modules = [
|
||||||
|
./homes/julian/aspi.nix
|
||||||
|
./homes/julian/hm-standalone-config.nix
|
||||||
|
];
|
||||||
|
pkgs = pkgsFor.x86_64-linux;
|
||||||
|
extraSpecialArgs = {
|
||||||
|
inherit inputs outputs;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
# Media server (RPi)
|
||||||
|
"julian@pianonix" = lib.homeManagerConfiguration {
|
||||||
|
modules = [
|
||||||
|
./homes/julian/pianonix.nix
|
||||||
|
./homes/julian/hm-standalone-config.nix
|
||||||
|
];
|
||||||
|
pkgs = pkgsFor.aarch64-linux;
|
||||||
|
extraSpecialArgs = {
|
||||||
|
inherit inputs outputs;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"julian@kardorf" = lib.homeManagerConfiguration {
|
||||||
|
modules = [
|
||||||
|
./homes/julian/kardorf.nix
|
||||||
|
./homes/julian/hm-standalone-config.nix
|
||||||
|
];
|
||||||
|
pkgs = pkgsFor.aarch64-linux;
|
||||||
|
extraSpecialArgs = {
|
||||||
|
inherit inputs outputs;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"julian@v3ms" = lib.homeManagerConfiguration {
|
||||||
|
modules = [
|
||||||
|
./homes/julian/v3ms
|
||||||
|
./homes/julian/hm-standalone-config.nix
|
||||||
|
];
|
||||||
|
pkgs = pkgsFor.aarch64-linux;
|
||||||
|
extraSpecialArgs = {
|
||||||
|
inherit inputs outputs;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# deploy-rs node configuration
|
||||||
|
deploy.nodes = {
|
||||||
|
pianonix = {
|
||||||
|
hostname = "pianonix.local";
|
||||||
|
profiles.system = {
|
||||||
|
sshUser = "root";
|
||||||
|
user = "root";
|
||||||
|
path = inputs.deploy-rs.lib.aarch64-linux.activate.nixos self.nixosConfigurations.pianonix;
|
||||||
|
confirmTimeout = 90; # default: 30s; raspberrypi takes a little longer restarting services
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
builder = {
|
||||||
|
hostname = "builder.julian-mutter.de";
|
||||||
|
profiles.system = {
|
||||||
|
sshUser = "root";
|
||||||
|
user = "root";
|
||||||
|
path = inputs.deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.builder;
|
||||||
|
remoteBuild = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
@ -20,11 +20,9 @@
|
|||||||
./features/suites/cli
|
./features/suites/cli
|
||||||
./features/suites/desktop
|
./features/suites/desktop
|
||||||
./features/suites/development
|
./features/suites/development
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
hostName = "aspi";
|
hostName = "aspi";
|
||||||
is-nixos = true;
|
is-nixos = true;
|
||||||
terminal = "kitty";
|
terminal = "kitty";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -4,10 +4,8 @@
|
|||||||
inputs,
|
inputs,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
|
home.packages = with pkgs; [alacritty];
|
||||||
{
|
|
||||||
home.packages = with pkgs; [ alacritty ];
|
|
||||||
|
|
||||||
home.file = {
|
home.file = {
|
||||||
".config/alacritty/theme".source = "${inputs.alacritty-theme}";
|
".config/alacritty/theme".source = "${inputs.alacritty-theme}";
|
||||||
|
@ -3,13 +3,11 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
inputs,
|
inputs,
|
||||||
...
|
...
|
||||||
}:
|
}: let
|
||||||
let
|
inherit (inputs.nix-colors.lib-contrib {inherit pkgs;}) gtkThemeFromScheme;
|
||||||
inherit (inputs.nix-colors.lib-contrib { inherit pkgs; }) gtkThemeFromScheme;
|
in {
|
||||||
in
|
|
||||||
{
|
|
||||||
# Do not make conditional, just toggle things on and off
|
# Do not make conditional, just toggle things on and off
|
||||||
imports = [ inputs.nix-colors.homeManagerModules.default ]; # TODO: what does this do
|
imports = [inputs.nix-colors.homeManagerModules.default]; # TODO: what does this do
|
||||||
|
|
||||||
# home.sessionVariables.GTK_THEME = "Catppuccin-Mocha-Compact-Blue-dark";
|
# home.sessionVariables.GTK_THEME = "Catppuccin-Mocha-Compact-Blue-dark";
|
||||||
gtk = {
|
gtk = {
|
||||||
@ -29,6 +27,5 @@ in
|
|||||||
name = "macOS-BigSur";
|
name = "macOS-BigSur";
|
||||||
size = 24;
|
size = 24;
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -4,24 +4,19 @@
|
|||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
with lib; let
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
doomRepoUrl = "https://github.com/doomemacs/doomemacs";
|
doomRepoUrl = "https://github.com/doomemacs/doomemacs";
|
||||||
configRepoUrl = "https://gitlab.julian-mutter.de/julian/emacs-config";
|
configRepoUrl = "https://gitlab.julian-mutter.de/julian/emacs-config";
|
||||||
in
|
in {
|
||||||
{
|
home.sessionPath = ["/home/julian/.config/emacs/bin"];
|
||||||
home.sessionPath = [ "/home/julian/.config/emacs/bin" ];
|
|
||||||
|
|
||||||
home.packages =
|
home.packages = with pkgs;
|
||||||
with pkgs;
|
|
||||||
[
|
[
|
||||||
binutils # native-comp needs 'as', provided by this
|
binutils # native-comp needs 'as', provided by this
|
||||||
|
|
||||||
## Doom dependencies
|
## Doom dependencies
|
||||||
git
|
git
|
||||||
(ripgrep.override { withPCRE2 = true; })
|
(ripgrep.override {withPCRE2 = true;})
|
||||||
|
|
||||||
## Optional dependencies
|
## Optional dependencies
|
||||||
fd # faster projectile indexing
|
fd # faster projectile indexing
|
||||||
@ -30,12 +25,13 @@ in
|
|||||||
|
|
||||||
## Module dependencies
|
## Module dependencies
|
||||||
(aspellWithDicts (
|
(aspellWithDicts (
|
||||||
ds: with ds; [
|
ds:
|
||||||
en
|
with ds; [
|
||||||
en-computers
|
en
|
||||||
en-science
|
en-computers
|
||||||
de
|
en-science
|
||||||
]
|
de
|
||||||
|
]
|
||||||
))
|
))
|
||||||
|
|
||||||
hunspell
|
hunspell
|
||||||
@ -46,6 +42,8 @@ in
|
|||||||
|
|
||||||
# Code formatters for use with doom emacs
|
# Code formatters for use with doom emacs
|
||||||
nixfmt-rfc-style # nix
|
nixfmt-rfc-style # nix
|
||||||
|
alejandra # nix
|
||||||
|
|
||||||
nixd # nix lsp
|
nixd # nix lsp
|
||||||
dockfmt # docker
|
dockfmt # docker
|
||||||
google-java-format # java
|
google-java-format # java
|
||||||
@ -64,7 +62,7 @@ in
|
|||||||
]
|
]
|
||||||
++ lib.optional config.is-nixos emacs;
|
++ lib.optional config.is-nixos emacs;
|
||||||
|
|
||||||
home.activation.installDoomEmacs = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
|
home.activation.installDoomEmacs = lib.hm.dag.entryAfter ["writeBoundary"] ''
|
||||||
if [ ! -d "/home/julian/.config/emacs" ]; then
|
if [ ! -d "/home/julian/.config/emacs" ]; then
|
||||||
$DRY_RUN_CMD ${pkgs.git}/bin/git clone --depth=1 --single-branch "${doomRepoUrl}" "/home/julian/.config/emacs"
|
$DRY_RUN_CMD ${pkgs.git}/bin/git clone --depth=1 --single-branch "${doomRepoUrl}" "/home/julian/.config/emacs"
|
||||||
fi
|
fi
|
||||||
|
@ -3,10 +3,7 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
with lib; {
|
||||||
with lib;
|
|
||||||
|
|
||||||
{
|
|
||||||
home.file = {
|
home.file = {
|
||||||
".config/starship.toml".source = ./starship.toml;
|
".config/starship.toml".source = ./starship.toml;
|
||||||
".config/fish/conf.d/last-working-dir.fish".source = ./last-working-dir.fish;
|
".config/fish/conf.d/last-working-dir.fish".source = ./last-working-dir.fish;
|
||||||
|
@ -4,10 +4,7 @@
|
|||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
with lib; {
|
||||||
with lib;
|
|
||||||
|
|
||||||
{
|
|
||||||
fonts.fontconfig.enable = true; # required to autoload fonts from packages
|
fonts.fontconfig.enable = true; # required to autoload fonts from packages
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
nerd-fonts.fira-code
|
nerd-fonts.fira-code
|
||||||
|
@ -9,6 +9,5 @@
|
|||||||
settings = {
|
settings = {
|
||||||
general.adjustment-method = "wayland";
|
general.adjustment-method = "wayland";
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -4,14 +4,12 @@
|
|||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}:
|
}: let
|
||||||
|
inherit
|
||||||
let
|
(inputs.nix-colors.colorschemes.${builtins.toString config.colorscheme.name})
|
||||||
inherit (inputs.nix-colors.colorschemes.${builtins.toString config.colorscheme.name})
|
|
||||||
palette
|
palette
|
||||||
;
|
;
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
imports = [
|
imports = [
|
||||||
# inputs.hyprland.homeManagerModules.default
|
# inputs.hyprland.homeManagerModules.default
|
||||||
./waybar
|
./waybar
|
||||||
@ -30,7 +28,7 @@ in
|
|||||||
];
|
];
|
||||||
|
|
||||||
xdg.portal = {
|
xdg.portal = {
|
||||||
extraPortals = [ pkgs.xdg-desktop-portal-wlr ];
|
extraPortals = [pkgs.xdg-desktop-portal-wlr];
|
||||||
config.hyprland = {
|
config.hyprland = {
|
||||||
default = [
|
default = [
|
||||||
"wlr"
|
"wlr"
|
||||||
@ -147,7 +145,7 @@ in
|
|||||||
monitor = ",preferred,auto,auto";
|
monitor = ",preferred,auto,auto";
|
||||||
|
|
||||||
# Autostart
|
# Autostart
|
||||||
exec-once = [ "firefox" ];
|
exec-once = ["firefox"];
|
||||||
|
|
||||||
# Look and Feel
|
# Look and Feel
|
||||||
general = {
|
general = {
|
||||||
@ -356,26 +354,26 @@ in
|
|||||||
"$mod CTRL, 0, movetoworkspacesilent, 10"
|
"$mod CTRL, 0, movetoworkspacesilent, 10"
|
||||||
]
|
]
|
||||||
++
|
++
|
||||||
# Screen lock
|
# Screen lock
|
||||||
(
|
(
|
||||||
let
|
let
|
||||||
swaylock = lib.getExe config.programs.swaylock.package;
|
swaylock = lib.getExe config.programs.swaylock.package;
|
||||||
in
|
in
|
||||||
lib.optionals config.programs.swaylock.enable [
|
lib.optionals config.programs.swaylock.enable [
|
||||||
"$mod,TAB,exec,${swaylock} --daemonize"
|
"$mod,TAB,exec,${swaylock} --daemonize"
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
++
|
++
|
||||||
# Notification manager
|
# Notification manager
|
||||||
(
|
(
|
||||||
let
|
let
|
||||||
makoctl = lib.getExe' config.services.mako.package "makoctl";
|
makoctl = lib.getExe' config.services.mako.package "makoctl";
|
||||||
in
|
in
|
||||||
lib.optionals config.services.mako.enable [
|
lib.optionals config.services.mako.enable [
|
||||||
"$mod,w,exec,${makoctl} dismiss"
|
"$mod,w,exec,${makoctl} dismiss"
|
||||||
"$mod SHIFT,W,exec,${makoctl} restore"
|
"$mod SHIFT,W,exec,${makoctl} restore"
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
# plugin = {
|
# plugin = {
|
||||||
# hyprbars = {
|
# hyprbars = {
|
||||||
|
@ -4,8 +4,7 @@
|
|||||||
lib,
|
lib,
|
||||||
outputs,
|
outputs,
|
||||||
...
|
...
|
||||||
}:
|
}: let
|
||||||
let
|
|
||||||
getHostname = x: lib.last (lib.splitString "@" x);
|
getHostname = x: lib.last (lib.splitString "@" x);
|
||||||
# remoteColorschemes = lib.mapAttrs' (n: v: {
|
# remoteColorschemes = lib.mapAttrs' (n: v: {
|
||||||
# name = getHostname n;
|
# name = getHostname n;
|
||||||
@ -19,18 +18,17 @@ let
|
|||||||
# Make sure it's using the same hyprland package as we are
|
# Make sure it's using the same hyprland package as we are
|
||||||
hyprland = config.wayland.windowManager.hyprland.package;
|
hyprland = config.wayland.windowManager.hyprland.package;
|
||||||
}).overrideAttrs
|
}).overrideAttrs
|
||||||
(old: {
|
(old: {
|
||||||
# Yeet the initialization notification (I hate it)
|
# Yeet the initialization notification (I hate it)
|
||||||
postPatch =
|
postPatch =
|
||||||
(old.postPatch or "")
|
(old.postPatch or "")
|
||||||
+ ''
|
+ ''
|
||||||
${lib.getExe pkgs.gnused} -i '/Initialized successfully/d' main.cpp
|
${lib.getExe pkgs.gnused} -i '/Initialized successfully/d' main.cpp
|
||||||
'';
|
'';
|
||||||
});
|
});
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
plugins = [ hyprbars ];
|
plugins = [hyprbars];
|
||||||
settings = {
|
settings = {
|
||||||
"plugin:hyprbars" = {
|
"plugin:hyprbars" = {
|
||||||
bar_height = 25;
|
bar_height = 25;
|
||||||
@ -40,25 +38,23 @@ in
|
|||||||
# bar_text_size = config.fontProfiles.regular.size;
|
# bar_text_size = config.fontProfiles.regular.size;
|
||||||
bar_part_of_window = true;
|
bar_part_of_window = true;
|
||||||
bar_precedence_over_border = true;
|
bar_precedence_over_border = true;
|
||||||
hyprbars-button =
|
hyprbars-button = let
|
||||||
let
|
closeAction = "hyprctl dispatch killactive";
|
||||||
closeAction = "hyprctl dispatch killactive";
|
|
||||||
|
|
||||||
isOnSpecial = ''hyprctl activewindow -j | jq -re 'select(.workspace.name == "special")' >/dev/null'';
|
isOnSpecial = ''hyprctl activewindow -j | jq -re 'select(.workspace.name == "special")' >/dev/null'';
|
||||||
moveToSpecial = "hyprctl dispatch movetoworkspacesilent special";
|
moveToSpecial = "hyprctl dispatch movetoworkspacesilent special";
|
||||||
moveToActive = "hyprctl dispatch movetoworkspacesilent name:$(hyprctl -j activeworkspace | jq -re '.name')";
|
moveToActive = "hyprctl dispatch movetoworkspacesilent name:$(hyprctl -j activeworkspace | jq -re '.name')";
|
||||||
minimizeAction = "${isOnSpecial} && ${moveToActive} || ${moveToSpecial}";
|
minimizeAction = "${isOnSpecial} && ${moveToActive} || ${moveToSpecial}";
|
||||||
|
|
||||||
maximizeAction = "hyprctl dispatch fullscreen 1";
|
maximizeAction = "hyprctl dispatch fullscreen 1";
|
||||||
in
|
in [
|
||||||
[
|
# Red close button
|
||||||
# Red close button
|
# "${rgb config.colorscheme.colors.red},12,,${closeAction}"
|
||||||
# "${rgb config.colorscheme.colors.red},12,,${closeAction}"
|
# # Yellow "minimize" (send to special workspace) button
|
||||||
# # Yellow "minimize" (send to special workspace) button
|
# "${rgb config.colorscheme.colors.yellow},12,,${minimizeAction}"
|
||||||
# "${rgb config.colorscheme.colors.yellow},12,,${minimizeAction}"
|
# # Green "maximize" (fullscreen) button
|
||||||
# # Green "maximize" (fullscreen) button
|
# "${rgb config.colorscheme.colors.green},12,,${maximizeAction}"
|
||||||
# "${rgb config.colorscheme.colors.green},12,,${maximizeAction}"
|
];
|
||||||
];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# windowrulev2 =
|
# windowrulev2 =
|
||||||
|
@ -5,13 +5,12 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
inputs,
|
inputs,
|
||||||
...
|
...
|
||||||
}:
|
}: let
|
||||||
let
|
inherit
|
||||||
inherit (inputs.nix-colors.colorschemes.${builtins.toString config.colorscheme.name})
|
(inputs.nix-colors.colorschemes.${builtins.toString config.colorscheme.name})
|
||||||
palette
|
palette
|
||||||
;
|
;
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
programs.hyprlock.enable = true;
|
programs.hyprlock.enable = true;
|
||||||
programs.hyprlock.settings = {
|
programs.hyprlock.settings = {
|
||||||
general = {
|
general = {
|
||||||
|
@ -5,14 +5,13 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
inputs,
|
inputs,
|
||||||
...
|
...
|
||||||
}:
|
}: let
|
||||||
let
|
inherit
|
||||||
inherit (inputs.nix-colors.colorschemes.${builtins.toString config.colorscheme.name})
|
(inputs.nix-colors.colorschemes.${builtins.toString config.colorscheme.name})
|
||||||
palette
|
palette
|
||||||
;
|
;
|
||||||
in
|
in {
|
||||||
{
|
home.packages = with pkgs; [libnotify];
|
||||||
home.packages = with pkgs; [ libnotify ];
|
|
||||||
|
|
||||||
services.mako = {
|
services.mako = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -3,8 +3,7 @@
|
|||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}:
|
}: let
|
||||||
let
|
|
||||||
swaylock = "${config.programs.swaylock.package}/bin/swaylock";
|
swaylock = "${config.programs.swaylock.package}/bin/swaylock";
|
||||||
pgrep = "${pkgs.procps}/bin/pgrep";
|
pgrep = "${pkgs.procps}/bin/pgrep";
|
||||||
pactl = "${pkgs.pulseaudio}/bin/pactl";
|
pactl = "${pkgs.pulseaudio}/bin/pactl";
|
||||||
@ -15,24 +14,21 @@ let
|
|||||||
lockTime = 4 * 60; # TODO: configurable desktop (10 min)/laptop (4 min)
|
lockTime = 4 * 60; # TODO: configurable desktop (10 min)/laptop (4 min)
|
||||||
|
|
||||||
# Makes two timeouts: one for when the screen is not locked (lockTime+timeout) and one for when it is.
|
# Makes two timeouts: one for when the screen is not locked (lockTime+timeout) and one for when it is.
|
||||||
afterLockTimeout =
|
afterLockTimeout = {
|
||||||
|
timeout,
|
||||||
|
command,
|
||||||
|
resumeCommand ? null,
|
||||||
|
}: [
|
||||||
{
|
{
|
||||||
timeout,
|
timeout = lockTime + timeout;
|
||||||
command,
|
inherit command resumeCommand;
|
||||||
resumeCommand ? null,
|
}
|
||||||
}:
|
{
|
||||||
[
|
command = "${isLocked} && ${command}";
|
||||||
{
|
inherit resumeCommand timeout;
|
||||||
timeout = lockTime + timeout;
|
}
|
||||||
inherit command resumeCommand;
|
];
|
||||||
}
|
in {
|
||||||
{
|
|
||||||
command = "${isLocked} && ${command}";
|
|
||||||
inherit resumeCommand timeout;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
in
|
|
||||||
{
|
|
||||||
services.swayidle = {
|
services.swayidle = {
|
||||||
enable = true;
|
enable = true;
|
||||||
systemdTarget = "graphical-session.target";
|
systemdTarget = "graphical-session.target";
|
||||||
@ -45,18 +41,18 @@ in
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
++
|
++
|
||||||
# Turn off displays (hyprland)
|
# Turn off displays (hyprland)
|
||||||
(lib.optionals config.wayland.windowManager.hyprland.enable (afterLockTimeout {
|
(lib.optionals config.wayland.windowManager.hyprland.enable (afterLockTimeout {
|
||||||
timeout = 300;
|
timeout = 300;
|
||||||
command = "${hyprctl} dispatch dpms off";
|
command = "${hyprctl} dispatch dpms off";
|
||||||
resumeCommand = "${hyprctl} dispatch dpms on";
|
resumeCommand = "${hyprctl} dispatch dpms on";
|
||||||
}))
|
}))
|
||||||
++
|
++
|
||||||
# Turn off displays (sway)
|
# Turn off displays (sway)
|
||||||
(lib.optionals config.wayland.windowManager.sway.enable (afterLockTimeout {
|
(lib.optionals config.wayland.windowManager.sway.enable (afterLockTimeout {
|
||||||
timeout = 300;
|
timeout = 300;
|
||||||
command = "${swaymsg} 'output * dpms off'";
|
command = "${swaymsg} 'output * dpms off'";
|
||||||
resumeCommand = "${swaymsg} 'output * dpms on'";
|
resumeCommand = "${swaymsg} 'output * dpms on'";
|
||||||
}));
|
}));
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -2,11 +2,9 @@
|
|||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}: let
|
||||||
let
|
|
||||||
inherit (config.colorscheme) colors;
|
inherit (config.colorscheme) colors;
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
programs.swaylock = {
|
programs.swaylock = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
@ -5,11 +5,9 @@
|
|||||||
lib,
|
lib,
|
||||||
inputs,
|
inputs,
|
||||||
...
|
...
|
||||||
}:
|
}: let
|
||||||
let
|
|
||||||
palette = (inputs.nix-colors.colorschemes.${builtins.toString config.colorscheme.name}).palette;
|
palette = (inputs.nix-colors.colorschemes.${builtins.toString config.colorscheme.name}).palette;
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
programs.waybar = {
|
programs.waybar = {
|
||||||
enable = true;
|
enable = true;
|
||||||
systemd.enable = true;
|
systemd.enable = true;
|
||||||
|
@ -3,9 +3,8 @@
|
|||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
home.packages = [pkgs.waypipe];
|
||||||
home.packages = [ pkgs.waypipe ];
|
|
||||||
systemd.user.services = {
|
systemd.user.services = {
|
||||||
waypipe-client = {
|
waypipe-client = {
|
||||||
Unit.Description = "Runs waypipe on startup to support SSH forwarding";
|
Unit.Description = "Runs waypipe on startup to support SSH forwarding";
|
||||||
@ -14,7 +13,7 @@
|
|||||||
ExecStart = "${lib.getExe (config.lib.nixGL.wrap pkgs.waypipe)} --socket %h/.waypipe/client.sock client";
|
ExecStart = "${lib.getExe (config.lib.nixGL.wrap pkgs.waypipe)} --socket %h/.waypipe/client.sock client";
|
||||||
ExecStopPost = "${lib.getExe' pkgs.coreutils "rm"} -f %h/.waypipe/client.sock";
|
ExecStopPost = "${lib.getExe' pkgs.coreutils "rm"} -f %h/.waypipe/client.sock";
|
||||||
};
|
};
|
||||||
Install.WantedBy = [ "graphical-session.target" ];
|
Install.WantedBy = ["graphical-session.target"];
|
||||||
};
|
};
|
||||||
waypipe-server = {
|
waypipe-server = {
|
||||||
Unit.Description = "Runs waypipe on startup to support SSH forwarding";
|
Unit.Description = "Runs waypipe on startup to support SSH forwarding";
|
||||||
@ -24,7 +23,7 @@
|
|||||||
ExecStart = "${lib.getExe (config.lib.nixGL.wrap pkgs.waypipe)} --socket %h/.waypipe/server.sock --title-prefix '[%H] ' --login-shell --display wayland-waypipe server -- ${lib.getExe' pkgs.coreutils "sleep"} infinity";
|
ExecStart = "${lib.getExe (config.lib.nixGL.wrap pkgs.waypipe)} --socket %h/.waypipe/server.sock --title-prefix '[%H] ' --login-shell --display wayland-waypipe server -- ${lib.getExe' pkgs.coreutils "sleep"} infinity";
|
||||||
ExecStopPost = "${lib.getExe' pkgs.coreutils "rm"} -f %h/.waypipe/server.sock %t/wayland-waypipe";
|
ExecStopPost = "${lib.getExe' pkgs.coreutils "rm"} -f %h/.waypipe/server.sock %t/wayland-waypipe";
|
||||||
};
|
};
|
||||||
Install.WantedBy = [ "default.target" ];
|
Install.WantedBy = ["default.target"];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -5,14 +5,13 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
inputs,
|
inputs,
|
||||||
...
|
...
|
||||||
}:
|
}: let
|
||||||
let
|
inherit
|
||||||
inherit (inputs.nix-colors.colorschemes.${builtins.toString config.colorscheme.name})
|
(inputs.nix-colors.colorschemes.${builtins.toString config.colorscheme.name})
|
||||||
palette
|
palette
|
||||||
;
|
;
|
||||||
in
|
in {
|
||||||
{
|
home.packages = with pkgs; [wlogout];
|
||||||
home.packages = with pkgs; [ wlogout ];
|
|
||||||
|
|
||||||
# xdg.configFile."wlogout/style.css".text = ''
|
# xdg.configFile."wlogout/style.css".text = ''
|
||||||
# * {
|
# * {
|
||||||
|
@ -5,14 +5,13 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
inputs,
|
inputs,
|
||||||
...
|
...
|
||||||
}:
|
}: let
|
||||||
let
|
inherit
|
||||||
inherit (inputs.nix-colors.colorschemes.${builtins.toString config.colorscheme.name})
|
(inputs.nix-colors.colorschemes.${builtins.toString config.colorscheme.name})
|
||||||
palette
|
palette
|
||||||
;
|
;
|
||||||
in
|
in {
|
||||||
{
|
home.packages = with pkgs; [wofi];
|
||||||
home.packages = with pkgs; [ wofi ];
|
|
||||||
|
|
||||||
xdg.configFile."wofi/config".source = ./config;
|
xdg.configFile."wofi/config".source = ./config;
|
||||||
xdg.configFile."wofi/style.css".text = ''
|
xdg.configFile."wofi/style.css".text = ''
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
{ config, ... }:
|
{config, ...}: let
|
||||||
let
|
|
||||||
inherit (config.colorscheme) colors;
|
inherit (config.colorscheme) colors;
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
programs.zathura = {
|
programs.zathura = {
|
||||||
enable = true;
|
enable = true;
|
||||||
options = {
|
options = {
|
||||||
|
@ -3,9 +3,8 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
imports = [../rofi];
|
||||||
imports = [ ../rofi ];
|
|
||||||
|
|
||||||
services.dunst.enable = true;
|
services.dunst.enable = true;
|
||||||
|
|
||||||
@ -32,11 +31,13 @@
|
|||||||
package = pkgs.i3-gaps;
|
package = pkgs.i3-gaps;
|
||||||
};
|
};
|
||||||
|
|
||||||
xsession.importedVariables = [ ];
|
xsession.importedVariables = [];
|
||||||
|
|
||||||
# Overwrite default home-manager config file
|
# Overwrite default home-manager config file
|
||||||
xdg.configFile."i3/config".source = lib.mkForce (
|
xdg.configFile."i3/config".source = lib.mkForce (
|
||||||
if config.hostName == "kardorf" then ./i3/config-kardorf else ./i3/config
|
if config.hostName == "kardorf"
|
||||||
|
then ./i3/config-kardorf
|
||||||
|
else ./i3/config
|
||||||
);
|
);
|
||||||
|
|
||||||
home.file = {
|
home.file = {
|
||||||
@ -48,5 +49,5 @@
|
|||||||
".config/i3status-rust/config.toml".source = ./i3status-rust/config.toml;
|
".config/i3status-rust/config.toml".source = ./i3status-rust/config.toml;
|
||||||
};
|
};
|
||||||
|
|
||||||
home.sessionPath = [ "/home/julian/.config/i3/scripts" ];
|
home.sessionPath = ["/home/julian/.config/i3/scripts"];
|
||||||
}
|
}
|
||||||
|
@ -3,9 +3,7 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
|
|
||||||
{
|
|
||||||
programs.kitty = {
|
programs.kitty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
shellIntegration.enableFishIntegration = true;
|
shellIntegration.enableFishIntegration = true;
|
||||||
|
@ -3,11 +3,8 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
inputs,
|
inputs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
|
imports = [inputs.nixvim.homeManagerModules.nixvim];
|
||||||
{
|
|
||||||
|
|
||||||
imports = [ inputs.nixvim.homeManagerModules.nixvim ];
|
|
||||||
|
|
||||||
home.sessionVariables = {
|
home.sessionVariables = {
|
||||||
EDITOR = "nvim";
|
EDITOR = "nvim";
|
||||||
@ -39,7 +36,6 @@
|
|||||||
opts = {
|
opts = {
|
||||||
number = false;
|
number = false;
|
||||||
relativenumber = false;
|
relativenumber = false;
|
||||||
|
|
||||||
};
|
};
|
||||||
clipboard.register = "unnamedplus"; # Use system clipboard
|
clipboard.register = "unnamedplus"; # Use system clipboard
|
||||||
|
|
||||||
@ -93,9 +89,9 @@
|
|||||||
conform-nvim = {
|
conform-nvim = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings.formatters_by_ft = with pkgs; {
|
settings.formatters_by_ft = with pkgs; {
|
||||||
lua = [ "stylua" ];
|
lua = ["stylua"];
|
||||||
python = [ "black" ];
|
python = ["black"];
|
||||||
nix = [ "nixfmt" ];
|
nix = ["nixfmt"];
|
||||||
};
|
};
|
||||||
# extraOptions = {
|
# extraOptions = {
|
||||||
# default_format_opts.lsp_format = "fallback";
|
# default_format_opts.lsp_format = "fallback";
|
||||||
@ -107,9 +103,9 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
autoEnableSources = true;
|
autoEnableSources = true;
|
||||||
settings.sources = [
|
settings.sources = [
|
||||||
{ name = "nvim_lsp"; }
|
{name = "nvim_lsp";}
|
||||||
{ name = "path"; }
|
{name = "path";}
|
||||||
{ name = "buffer"; }
|
{name = "buffer";}
|
||||||
];
|
];
|
||||||
settings.mapping = {
|
settings.mapping = {
|
||||||
"<Tab>" = "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})";
|
"<Tab>" = "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})";
|
||||||
@ -157,8 +153,6 @@
|
|||||||
lua_ls.enable = true;
|
lua_ls.enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -2,9 +2,7 @@
|
|||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
|
|
||||||
{
|
|
||||||
home.sessionVariables = {
|
home.sessionVariables = {
|
||||||
FLAKE = "/home/julian/.dotfiles";
|
FLAKE = "/home/julian/.dotfiles";
|
||||||
};
|
};
|
||||||
@ -14,5 +12,5 @@
|
|||||||
"hs" = "nh home switch";
|
"hs" = "nh home switch";
|
||||||
};
|
};
|
||||||
|
|
||||||
home.packages = with pkgs; [ nh ];
|
home.packages = with pkgs; [nh];
|
||||||
}
|
}
|
||||||
|
@ -2,13 +2,11 @@
|
|||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
|
|
||||||
{
|
|
||||||
# this would need you to config rofi using home-manager
|
# this would need you to config rofi using home-manager
|
||||||
# programs.rofi = { enable = true; };
|
# programs.rofi = { enable = true; };
|
||||||
|
|
||||||
home.packages = with pkgs; [ rofi ];
|
home.packages = with pkgs; [rofi];
|
||||||
|
|
||||||
home.file = {
|
home.file = {
|
||||||
".config/rofi/config.rasi".source = ./config.rasi;
|
".config/rofi/config.rasi".source = ./config.rasi;
|
||||||
|
@ -1,9 +1,4 @@
|
|||||||
{
|
{pkgs, ...}: {
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
bat
|
bat
|
||||||
du-dust # Like du tree but better
|
du-dust # Like du tree but better
|
||||||
|
@ -2,9 +2,7 @@
|
|||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
|
|
||||||
{
|
|
||||||
services.blueman-applet.enable = true;
|
services.blueman-applet.enable = true;
|
||||||
services.nextcloud-client.enable = true;
|
services.nextcloud-client.enable = true;
|
||||||
services.nextcloud-client.startInBackground = true;
|
services.nextcloud-client.startInBackground = true;
|
||||||
@ -17,7 +15,7 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
extensions = [
|
extensions = [
|
||||||
# Tampermonkey
|
# Tampermonkey
|
||||||
{ id = "dhdgffkkebhmkfjojejmpbldmpobfkfo"; }
|
{id = "dhdgffkkebhmkfjojejmpbldmpobfkfo";}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,10 +1,4 @@
|
|||||||
{
|
{pkgs, ...}: {
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
watchexec # Run command when any file in current dir changes
|
watchexec # Run command when any file in current dir changes
|
||||||
android-tools # adb
|
android-tools # adb
|
||||||
@ -29,7 +23,8 @@
|
|||||||
julia-bin
|
julia-bin
|
||||||
(texlive.combine {
|
(texlive.combine {
|
||||||
# for rendering latex in inkscape
|
# for rendering latex in inkscape
|
||||||
inherit (texlive)
|
inherit
|
||||||
|
(texlive)
|
||||||
scheme-medium
|
scheme-medium
|
||||||
standalone
|
standalone
|
||||||
amsmath
|
amsmath
|
||||||
|
@ -7,8 +7,7 @@
|
|||||||
misc.assume_yes = true;
|
misc.assume_yes = true;
|
||||||
misc.no_retry = true;
|
misc.no_retry = true;
|
||||||
|
|
||||||
pre_commands."Update flake" =
|
pre_commands."Update flake" = "git -C /home/julian/.dotfiles checkout origin/flake-updates -- flake.lock";
|
||||||
"git -C /home/julian/.dotfiles checkout origin/flake-updates -- flake.lock";
|
|
||||||
|
|
||||||
linux.nix_arguments = "--flake /home/julian/.dotfiles";
|
linux.nix_arguments = "--flake /home/julian/.dotfiles";
|
||||||
linux.home_manager_arguments = [
|
linux.home_manager_arguments = [
|
||||||
|
@ -3,9 +3,7 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
|
|
||||||
{
|
|
||||||
programs.wezterm = {
|
programs.wezterm = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
|
@ -2,8 +2,7 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
inputs,
|
inputs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
programs.zoxide.enable = true;
|
programs.zoxide.enable = true;
|
||||||
programs.zoxide.enableFishIntegration = true;
|
programs.zoxide.enableFishIntegration = true;
|
||||||
|
|
||||||
@ -36,29 +35,29 @@
|
|||||||
manager.prepend_keymap = [
|
manager.prepend_keymap = [
|
||||||
# Override defaults
|
# Override defaults
|
||||||
{
|
{
|
||||||
on = [ "e" ];
|
on = ["e"];
|
||||||
run = ''shell --orphan --confirm "pcmanfm &"'';
|
run = ''shell --orphan --confirm "pcmanfm &"'';
|
||||||
desc = "Open gui file manager";
|
desc = "Open gui file manager";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "<C-o>" ];
|
on = ["<C-o>"];
|
||||||
run = ''shell "$SHELL" --block --confirm'';
|
run = ''shell "$SHELL" --block --confirm'';
|
||||||
desc = "Open shell here";
|
desc = "Open shell here";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "<C-n>" ];
|
on = ["<C-n>"];
|
||||||
run = ''shell 'dragon -x -i -T "$1"' --confirm'';
|
run = ''shell 'dragon -x -i -T "$1"' --confirm'';
|
||||||
desc = "Dragndrop via dragon";
|
desc = "Dragndrop via dragon";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
on = [ "<Enter>" ];
|
on = ["<Enter>"];
|
||||||
run = "plugin --sync smart-enter";
|
run = "plugin --sync smart-enter";
|
||||||
desc = "Enter the child directory, or open the file";
|
desc = "Enter the child directory, or open the file";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
input.prepend_keymap = [
|
input.prepend_keymap = [
|
||||||
{
|
{
|
||||||
on = [ "<Esc>" ];
|
on = ["<Esc>"];
|
||||||
run = "close";
|
run = "close";
|
||||||
desc = "Cancel input";
|
desc = "Cancel input";
|
||||||
}
|
}
|
||||||
|
@ -2,13 +2,12 @@
|
|||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
home.file = {
|
home.file = {
|
||||||
".config/starship.toml".source = ./starship.toml;
|
".config/starship.toml".source = ./starship.toml;
|
||||||
};
|
};
|
||||||
|
|
||||||
home.packages = with pkgs; [ starship ];
|
home.packages = with pkgs; [starship];
|
||||||
|
|
||||||
programs.starship = {
|
programs.starship = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@ -28,14 +27,14 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
plugins = [
|
plugins = [
|
||||||
# list of plugins: https://github.com/unixorn/awesome-zsh-plugins
|
# list of plugins: https://github.com/unixorn/awesome-zsh-plugins
|
||||||
{ name = "agkozak/zsh-z"; }
|
{name = "agkozak/zsh-z";}
|
||||||
{
|
{
|
||||||
name = "zsh-users/zsh-completions";
|
name = "zsh-users/zsh-completions";
|
||||||
}
|
}
|
||||||
|
|
||||||
# make it behave like fish
|
# make it behave like fish
|
||||||
{ name = "zsh-users/zsh-autosuggestions"; }
|
{name = "zsh-users/zsh-autosuggestions";}
|
||||||
{ name = "zsh-users/zsh-history-substring-search"; }
|
{name = "zsh-users/zsh-history-substring-search";}
|
||||||
{
|
{
|
||||||
name = "zsh-users/zsh-syntax-highlighting";
|
name = "zsh-users/zsh-syntax-highlighting";
|
||||||
} # must be last sourced plugin
|
} # must be last sourced plugin
|
||||||
|
@ -5,13 +5,14 @@
|
|||||||
config,
|
config,
|
||||||
outputs,
|
outputs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
imports =
|
||||||
imports = [
|
[
|
||||||
../features/fonts
|
../features/fonts
|
||||||
# ../features/cli
|
# ../features/cli
|
||||||
# ../features/helix
|
# ../features/helix
|
||||||
] ++ (builtins.attrValues outputs.homeManagerModules);
|
]
|
||||||
|
++ (builtins.attrValues outputs.homeManagerModules);
|
||||||
|
|
||||||
nix = {
|
nix = {
|
||||||
package = lib.mkDefault pkgs.nix;
|
package = lib.mkDefault pkgs.nix;
|
||||||
@ -39,7 +40,7 @@
|
|||||||
homeDirectory = lib.mkDefault "/home/${config.home.username}";
|
homeDirectory = lib.mkDefault "/home/${config.home.username}";
|
||||||
stateVersion = lib.mkDefault "23.11";
|
stateVersion = lib.mkDefault "23.11";
|
||||||
|
|
||||||
sessionPath = [ "$HOME/.local/bin" ];
|
sessionPath = ["$HOME/.local/bin"];
|
||||||
};
|
};
|
||||||
|
|
||||||
# TODO: colorscheme
|
# TODO: colorscheme
|
||||||
@ -51,5 +52,4 @@
|
|||||||
# home.file = {
|
# home.file = {
|
||||||
# ".colorscheme.json".text = builtins.toJSON config.colorscheme;
|
# ".colorscheme.json".text = builtins.toJSON config.colorscheme;
|
||||||
# };
|
# };
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -6,9 +6,11 @@
|
|||||||
# inherit pkgs;
|
# inherit pkgs;
|
||||||
# inherit lib;
|
# inherit lib;
|
||||||
# };
|
# };
|
||||||
|
{
|
||||||
{ lib, pkgs, ... }:
|
lib,
|
||||||
let
|
pkgs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
package-names = with pkgs; {
|
package-names = with pkgs; {
|
||||||
"x-scheme-handler/tg" = telegram-desktop;
|
"x-scheme-handler/tg" = telegram-desktop;
|
||||||
"x-scheme-handler/mailto" = thunderbird;
|
"x-scheme-handler/mailto" = thunderbird;
|
||||||
@ -40,6 +42,7 @@ let
|
|||||||
"inode/directory" = pcmanfm;
|
"inode/directory" = pcmanfm;
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
lib.mapAttrs (mimeType: package: [
|
lib.mapAttrs (mimeType: package: [
|
||||||
"${package}/share/applications/${package.pname}.desktop"
|
"${package}/share/applications/${package.pname}.desktop"
|
||||||
]) package-names
|
])
|
||||||
|
package-names
|
||||||
|
@ -1,9 +1,5 @@
|
|||||||
# Only apply this to home-manager standalone
|
# Only apply this to home-manager standalone
|
||||||
{
|
{outputs, ...}: {
|
||||||
outputs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
# Apply overlays
|
# Apply overlays
|
||||||
nixpkgs = {
|
nixpkgs = {
|
||||||
overlays = builtins.attrValues outputs.overlays;
|
overlays = builtins.attrValues outputs.overlays;
|
||||||
@ -43,6 +39,5 @@
|
|||||||
];
|
];
|
||||||
|
|
||||||
# nix.settings. # warn-dirty = false; # TODO: do I want this
|
# nix.settings. # warn-dirty = false; # TODO: do I want this
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -17,11 +17,9 @@
|
|||||||
./features/suites/cli
|
./features/suites/cli
|
||||||
./features/suites/desktop
|
./features/suites/desktop
|
||||||
./features/suites/development
|
./features/suites/development
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
hostName = "kardorf";
|
hostName = "kardorf";
|
||||||
is-nixos = true;
|
is-nixos = true;
|
||||||
terminal = "kitty";
|
terminal = "kitty";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,4 @@
|
|||||||
{
|
{pkgs, ...}: {
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [
|
imports = [
|
||||||
./global
|
./global
|
||||||
|
|
||||||
@ -34,8 +30,7 @@
|
|||||||
|
|
||||||
# Autostart link
|
# Autostart link
|
||||||
home.file = {
|
home.file = {
|
||||||
".config/autostart/sheet-organizer.desktop".source =
|
".config/autostart/sheet-organizer.desktop".source = "${pkgs.sheet-organizer}/share/applications/sheet-organizer.desktop";
|
||||||
"${pkgs.sheet-organizer}/share/applications/sheet-organizer.desktop";
|
|
||||||
".config/sheet-organizer/config.toml".text = ''
|
".config/sheet-organizer/config.toml".text = ''
|
||||||
working_directory = "/home/julian/Klavier"
|
working_directory = "/home/julian/Klavier"
|
||||||
'';
|
'';
|
||||||
|
@ -2,8 +2,7 @@
|
|||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
imports = [
|
imports = [
|
||||||
../global
|
../global
|
||||||
|
|
||||||
@ -21,9 +20,9 @@
|
|||||||
# terminal = "kitty";
|
# terminal = "kitty";
|
||||||
|
|
||||||
home.packages =
|
home.packages =
|
||||||
lib.lists.concatMap (packages-list-file: import packages-list-file { inherit pkgs; })
|
lib.lists.concatMap (packages-list-file: import packages-list-file {inherit pkgs;})
|
||||||
[
|
[
|
||||||
./fonts.nix
|
./fonts.nix
|
||||||
./packages.nix
|
./packages.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
{ pkgs, ... }:
|
{pkgs, ...}:
|
||||||
|
with pkgs; [
|
||||||
with pkgs;
|
|
||||||
[
|
|
||||||
nerd-fonts.fira-code
|
nerd-fonts.fira-code
|
||||||
font-awesome
|
font-awesome
|
||||||
dejavu_fonts
|
dejavu_fonts
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
{ pkgs, ... }:
|
{pkgs, ...}:
|
||||||
|
with pkgs; [
|
||||||
with pkgs;
|
|
||||||
[
|
|
||||||
# Rust setup
|
# Rust setup
|
||||||
rustc
|
rustc
|
||||||
rustfmt
|
rustfmt
|
||||||
|
@ -46,5 +46,4 @@
|
|||||||
|
|
||||||
# Enable touchpad support
|
# Enable touchpad support
|
||||||
services.libinput.enable = true;
|
services.libinput.enable = true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -2,9 +2,7 @@
|
|||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
|
|
||||||
{
|
|
||||||
boot.initrd.availableKernelModules = [
|
boot.initrd.availableKernelModules = [
|
||||||
"vmd"
|
"vmd"
|
||||||
"xhci_pci"
|
"xhci_pci"
|
||||||
@ -14,11 +12,11 @@
|
|||||||
"usbhid"
|
"usbhid"
|
||||||
"sd_mod"
|
"sd_mod"
|
||||||
];
|
];
|
||||||
boot.initrd.kernelModules = [ "dm-snapshot" ];
|
boot.initrd.kernelModules = ["dm-snapshot"];
|
||||||
boot.kernelModules = [ "kvm-intel" ];
|
boot.kernelModules = ["kvm-intel"];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [];
|
||||||
boot.blacklistedKernelModules = [ "pcspkr" ]; # Disables "beep"
|
boot.blacklistedKernelModules = ["pcspkr"]; # Disables "beep"
|
||||||
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
|
boot.binfmt.emulatedSystems = ["aarch64-linux"];
|
||||||
|
|
||||||
boot.initrd.luks.devices = {
|
boot.initrd.luks.devices = {
|
||||||
root = {
|
root = {
|
||||||
@ -62,7 +60,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
swapDevices = [
|
swapDevices = [
|
||||||
{ device = "/dev/disk/by-uuid/26140b4a-0579-406d-a484-35aa31b32e80"; }
|
{device = "/dev/disk/by-uuid/26140b4a-0579-406d-a484-35aa31b32e80";}
|
||||||
];
|
];
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
# sudo nixos-rebuild switch --flake .#builder --target-host root@192.168.3.118
|
# sudo nixos-rebuild switch --flake .#builder --target-host root@192.168.3.118
|
||||||
# or
|
# or
|
||||||
# deploy .#builder
|
# deploy .#builder
|
||||||
{ config, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
|
|
||||||
@ -31,7 +33,7 @@
|
|||||||
boot.loader.grub.device = "/dev/sda";
|
boot.loader.grub.device = "/dev/sda";
|
||||||
|
|
||||||
# Emulated systems used as alternative to cross-compiling
|
# Emulated systems used as alternative to cross-compiling
|
||||||
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
|
boot.binfmt.emulatedSystems = ["aarch64-linux"];
|
||||||
|
|
||||||
networking.hostName = "builder";
|
networking.hostName = "builder";
|
||||||
|
|
||||||
@ -61,16 +63,16 @@
|
|||||||
"https://nix-community.cachix.org"
|
"https://nix-community.cachix.org"
|
||||||
"https://cache.nixos.org/"
|
"https://cache.nixos.org/"
|
||||||
];
|
];
|
||||||
trusted-public-keys = [ "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" ];
|
trusted-public-keys = ["nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="];
|
||||||
|
|
||||||
trusted-users = [ "nix" ];
|
trusted-users = ["nix"];
|
||||||
max-jobs = "auto";
|
max-jobs = "auto";
|
||||||
cores = 0;
|
cores = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
# optimize store by hardlinking store files
|
# optimize store by hardlinking store files
|
||||||
nix.optimise.automatic = true;
|
nix.optimise.automatic = true;
|
||||||
nix.optimise.dates = [ "03:15" ];
|
nix.optimise.dates = ["03:15"];
|
||||||
|
|
||||||
# nix.gc.automatic = true;
|
# nix.gc.automatic = true;
|
||||||
# nix.gc.dates = "daily";
|
# nix.gc.dates = "daily";
|
||||||
@ -209,8 +211,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
virtualHosts."binarycache.julian-mutter.de" = {
|
virtualHosts."binarycache.julian-mutter.de" = {
|
||||||
locations."/".proxyPass =
|
locations."/".proxyPass = "http://${config.services.nix-serve.bindAddress}:${toString config.services.nix-serve.port}";
|
||||||
"http://${config.services.nix-serve.bindAddress}:${toString config.services.nix-serve.port}";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
clientMaxBodySize = "2G";
|
clientMaxBodySize = "2G";
|
||||||
@ -225,7 +226,7 @@
|
|||||||
url = "https://gitlab.julian-mutter.de";
|
url = "https://gitlab.julian-mutter.de";
|
||||||
name = "builder";
|
name = "builder";
|
||||||
tokenFile = config.sops.secrets."gitea_token".path;
|
tokenFile = config.sops.secrets."gitea_token".path;
|
||||||
labels = [ ]; # use default labels
|
labels = []; # use default labels
|
||||||
};
|
};
|
||||||
|
|
||||||
virtualisation.docker.enable = true;
|
virtualisation.docker.enable = true;
|
||||||
@ -257,7 +258,7 @@
|
|||||||
settings = {
|
settings = {
|
||||||
listen = "[::]:8080";
|
listen = "[::]:8080";
|
||||||
|
|
||||||
jwt = { };
|
jwt = {};
|
||||||
|
|
||||||
# Data chunking
|
# Data chunking
|
||||||
#
|
#
|
||||||
|
@ -7,10 +7,8 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
modulesPath,
|
modulesPath,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
|
imports = [(modulesPath + "/profiles/qemu-guest.nix")];
|
||||||
{
|
|
||||||
imports = [ (modulesPath + "/profiles/qemu-guest.nix") ];
|
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [
|
boot.initrd.availableKernelModules = [
|
||||||
"ata_piix"
|
"ata_piix"
|
||||||
@ -21,8 +19,8 @@
|
|||||||
"sr_mod"
|
"sr_mod"
|
||||||
];
|
];
|
||||||
# boot.initrd.kernelModules = [ "amdgpu" ]; # GPU support
|
# boot.initrd.kernelModules = [ "amdgpu" ]; # GPU support
|
||||||
boot.kernelModules = [ ];
|
boot.kernelModules = [];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [];
|
||||||
|
|
||||||
fileSystems."/" = {
|
fileSystems."/" = {
|
||||||
device = "/dev/disk/by-uuid/f088fe8e-bf3d-4a89-98bd-ead9852d381f";
|
device = "/dev/disk/by-uuid/f088fe8e-bf3d-4a89-98bd-ead9852d381f";
|
||||||
|
@ -1,11 +1,9 @@
|
|||||||
# Common config for all hosts
|
# Common config for all hosts
|
||||||
|
|
||||||
{
|
{
|
||||||
inputs,
|
inputs,
|
||||||
outputs,
|
outputs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
imports =
|
imports =
|
||||||
[
|
[
|
||||||
./fish.nix # fish for admin
|
./fish.nix # fish for admin
|
||||||
@ -34,5 +32,4 @@
|
|||||||
home-manager.extraSpecialArgs = {
|
home-manager.extraSpecialArgs = {
|
||||||
inherit inputs outputs;
|
inherit inputs outputs;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -2,9 +2,7 @@
|
|||||||
lib,
|
lib,
|
||||||
outputs,
|
outputs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
|
|
||||||
# Apply overlays
|
# Apply overlays
|
||||||
nixpkgs = {
|
nixpkgs = {
|
||||||
# TODO: apply this to hm and nixos without duplicate code
|
# TODO: apply this to hm and nixos without duplicate code
|
||||||
@ -61,5 +59,4 @@
|
|||||||
# Add each flake input as a registry and nix_path
|
# Add each flake input as a registry and nix_path
|
||||||
# registry = lib.mapAttrs (_: flake: { inherit flake; }) flakeInputs;
|
# registry = lib.mapAttrs (_: flake: { inherit flake; }) flakeInputs;
|
||||||
# nixPath = lib.mapAttrsToList (n: _: "${n}=flake:${n}") flakeInputs;
|
# nixPath = lib.mapAttrsToList (n: _: "${n}=flake:${n}") flakeInputs;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
{ pkgs, ... }:
|
{pkgs, ...}: {
|
||||||
|
|
||||||
{
|
|
||||||
# Packages needed as root
|
# Packages needed as root
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
vim
|
vim
|
||||||
|
@ -2,14 +2,12 @@
|
|||||||
inputs,
|
inputs,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}:
|
}: let
|
||||||
let
|
|
||||||
isEd25519 = k: k.type == "ed25519";
|
isEd25519 = k: k.type == "ed25519";
|
||||||
getKeyPath = k: k.path;
|
getKeyPath = k: k.path;
|
||||||
keys = builtins.filter isEd25519 config.services.openssh.hostKeys;
|
keys = builtins.filter isEd25519 config.services.openssh.hostKeys;
|
||||||
in
|
in {
|
||||||
{
|
imports = [inputs.sops-nix.nixosModules.sops];
|
||||||
imports = [ inputs.sops-nix.nixosModules.sops ];
|
|
||||||
|
|
||||||
sops.age = {
|
sops.age = {
|
||||||
sshKeyPaths = map getKeyPath keys;
|
sshKeyPaths = map getKeyPath keys;
|
||||||
@ -18,7 +16,6 @@ in
|
|||||||
keyFile = "/home/julian/.config/sops/age/keys.txt";
|
keyFile = "/home/julian/.config/sops/age/keys.txt";
|
||||||
# Generate key if none of the above worked. With this, building will still work, just without secrets
|
# Generate key if none of the above worked. With this, building will still work, just without secrets
|
||||||
generateKey = true;
|
generateKey = true;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
sops.defaultSopsFile = ../secrets.yaml;
|
sops.defaultSopsFile = ../secrets.yaml;
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
{ pkgs, ... }:
|
{pkgs, ...}: {
|
||||||
{
|
|
||||||
# Make programs like nextcloud client access saved passwords
|
# Make programs like nextcloud client access saved passwords
|
||||||
programs.seahorse.enable = true;
|
programs.seahorse.enable = true;
|
||||||
services.gnome.gnome-keyring.enable = true;
|
services.gnome.gnome-keyring.enable = true;
|
||||||
@ -9,9 +8,9 @@
|
|||||||
systemd = {
|
systemd = {
|
||||||
user.services.polkit-gnome-authentication-agent-1 = {
|
user.services.polkit-gnome-authentication-agent-1 = {
|
||||||
description = "polkit-gnome-authentication-agent-1";
|
description = "polkit-gnome-authentication-agent-1";
|
||||||
wantedBy = [ "graphical-session.target" ];
|
wantedBy = ["graphical-session.target"];
|
||||||
wants = [ "graphical-session.target" ];
|
wants = ["graphical-session.target"];
|
||||||
after = [ "graphical-session.target" ];
|
after = ["graphical-session.target"];
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "simple";
|
Type = "simple";
|
||||||
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
|
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
|
||||||
|
@ -1,10 +1,6 @@
|
|||||||
{
|
{pkgs, ...}: {
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
services.flatpak.enable = true;
|
services.flatpak.enable = true;
|
||||||
xdg.portal.enable = true;
|
xdg.portal.enable = true;
|
||||||
xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
xdg.portal.extraPortals = [pkgs.xdg-desktop-portal-gtk];
|
||||||
xdg.portal.config.common.default = "*"; # Use first portal implementation found
|
xdg.portal.config.common.default = "*"; # Use first portal implementation found
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
{ pkgs, ... }:
|
{pkgs, ...}: {
|
||||||
{
|
|
||||||
|
|
||||||
programs.gamemode = {
|
programs.gamemode = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
@ -20,5 +18,4 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -3,10 +3,7 @@
|
|||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
services.xserver.displayManager.gdm = {
|
services.xserver.displayManager.gdm = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
@ -3,26 +3,22 @@
|
|||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}:
|
}: let
|
||||||
let
|
|
||||||
homeCfgs = config.home-manager.users;
|
homeCfgs = config.home-manager.users;
|
||||||
homeSharePaths = lib.mapAttrsToList (_: v: "${v.home.path}/share") homeCfgs;
|
homeSharePaths = lib.mapAttrsToList (_: v: "${v.home.path}/share") homeCfgs;
|
||||||
vars = ''XDG_DATA_DIRS="$XDG_DATA_DIRS:${lib.concatStringsSep ":" homeSharePaths}" GTK_USE_PORTAL=0'';
|
vars = ''XDG_DATA_DIRS="$XDG_DATA_DIRS:${lib.concatStringsSep ":" homeSharePaths}" GTK_USE_PORTAL=0'';
|
||||||
|
|
||||||
julianCfg = homeCfgs.julian;
|
julianCfg = homeCfgs.julian;
|
||||||
|
|
||||||
sway-kiosk =
|
sway-kiosk = command: "${lib.getExe pkgs.sway} --unsupported-gpu --config ${pkgs.writeText "kiosk.config" ''
|
||||||
command:
|
output * bg #000000 solid_color
|
||||||
"${lib.getExe pkgs.sway} --unsupported-gpu --config ${pkgs.writeText "kiosk.config" ''
|
xwayland disable
|
||||||
output * bg #000000 solid_color
|
input "type:touchpad" {
|
||||||
xwayland disable
|
tap enabled
|
||||||
input "type:touchpad" {
|
}
|
||||||
tap enabled
|
exec '${vars} ${command}; ${pkgs.sway}/bin/swaymsg exit'
|
||||||
}
|
''}";
|
||||||
exec '${vars} ${command}; ${pkgs.sway}/bin/swaymsg exit'
|
in {
|
||||||
''}";
|
|
||||||
in
|
|
||||||
{
|
|
||||||
users.extraUsers.greeter = {
|
users.extraUsers.greeter = {
|
||||||
# For caching and such
|
# For caching and such
|
||||||
home = "/tmp/greeter-home";
|
home = "/tmp/greeter-home";
|
||||||
|
@ -4,13 +4,10 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
inputs,
|
inputs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
programs.hyprland.enable = true;
|
programs.hyprland.enable = true;
|
||||||
programs.hyprland.package = inputs.hyprland.packages.${pkgs.system}.hyprland; # does only work with nixos-unstable
|
programs.hyprland.package = inputs.hyprland.packages.${pkgs.system}.hyprland; # does only work with nixos-unstable
|
||||||
programs.hyprland.xwayland.enable = true;
|
programs.hyprland.xwayland.enable = true;
|
||||||
security.pam.services.hyprlock = { };
|
security.pam.services.hyprlock = {};
|
||||||
services.displayManager.defaultSession = "hyprland";
|
services.displayManager.defaultSession = "hyprland";
|
||||||
}
|
}
|
||||||
|
@ -3,8 +3,7 @@
|
|||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
services.xserver.windowManager.i3.enable = true;
|
services.xserver.windowManager.i3.enable = true;
|
||||||
services.xserver.windowManager.i3.package = pkgs.i3-gaps;
|
services.xserver.windowManager.i3.package = pkgs.i3-gaps;
|
||||||
services.displayManager.defaultSession = "none+i3";
|
services.displayManager.defaultSession = "none+i3";
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
{
|
{
|
||||||
|
|
||||||
security.krb5.enable = true;
|
security.krb5.enable = true;
|
||||||
security.krb5.settings = {
|
security.krb5.settings = {
|
||||||
# domain_realm = {
|
# domain_realm = {
|
||||||
@ -15,7 +14,7 @@
|
|||||||
};
|
};
|
||||||
realms = {
|
realms = {
|
||||||
"julian-mutter.de" = {
|
"julian-mutter.de" = {
|
||||||
kdc = [ "kerberos.julian-mutter.de" ];
|
kdc = ["kerberos.julian-mutter.de"];
|
||||||
admin_server = "kerberos-admin.julian-mutter.de";
|
admin_server = "kerberos-admin.julian-mutter.de";
|
||||||
default_domain = "julian-mutter.de";
|
default_domain = "julian-mutter.de";
|
||||||
};
|
};
|
||||||
|
@ -3,11 +3,9 @@
|
|||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}:
|
}: let
|
||||||
let
|
|
||||||
hosts = lib.attrNames outputs.nixosConfigurations;
|
hosts = lib.attrNames outputs.nixosConfigurations;
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
services.openssh = {
|
services.openssh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
@ -48,5 +46,4 @@ in
|
|||||||
# ]);
|
# ]);
|
||||||
# });
|
# });
|
||||||
# };
|
# };
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,4 @@
|
|||||||
{
|
{pkgs, ...}: {
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
shared-mime-info # extended mimetype support
|
shared-mime-info # extended mimetype support
|
||||||
lxde.lxmenu-data # open with "Installed Applications"
|
lxde.lxmenu-data # open with "Installed Applications"
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
{ config, ... }:
|
{config, ...}: let
|
||||||
let
|
|
||||||
dockerEnabled = config.virtualisation.docker.enable;
|
dockerEnabled = config.virtualisation.docker.enable;
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
virtualisation.podman = {
|
virtualisation.podman = {
|
||||||
enable = true;
|
enable = true;
|
||||||
dockerCompat = !dockerEnabled;
|
dockerCompat = !dockerEnabled;
|
||||||
|
@ -3,10 +3,7 @@
|
|||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
# Set location used by redshift
|
# Set location used by redshift
|
||||||
location.provider = "manual";
|
location.provider = "manual";
|
||||||
location.latitude = 47.92;
|
location.latitude = 47.92;
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
"big-parallel"
|
"big-parallel"
|
||||||
"kvm"
|
"kvm"
|
||||||
];
|
];
|
||||||
mandatoryFeatures = [ ];
|
mandatoryFeatures = [];
|
||||||
}
|
}
|
||||||
# {
|
# {
|
||||||
# hostName = "localhost";
|
# hostName = "localhost";
|
||||||
|
@ -3,10 +3,7 @@
|
|||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
programs.thunar.enable = true;
|
programs.thunar.enable = true;
|
||||||
programs.xfconf.enable = true; # Persist saved preferences
|
programs.xfconf.enable = true; # Persist saved preferences
|
||||||
programs.thunar.plugins = with pkgs.xfce; [
|
programs.thunar.plugins = with pkgs.xfce; [
|
||||||
|
@ -3,13 +3,10 @@
|
|||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
virtualisation.virtualbox.host.enable = true;
|
virtualisation.virtualbox.host.enable = true;
|
||||||
# virtualisation.virtualbox.host.enableExtensionPack = true;
|
# virtualisation.virtualbox.host.enableExtensionPack = true;
|
||||||
# virtualisation.virtualbox.guest.enable = true;
|
# virtualisation.virtualbox.guest.enable = true;
|
||||||
# virtualisation.virtualbox.guest.x11 = true;
|
# virtualisation.virtualbox.guest.x11 = true;
|
||||||
users.extraGroups.vboxusers.members = [ "julian" ];
|
users.extraGroups.vboxusers.members = ["julian"];
|
||||||
}
|
}
|
||||||
|
@ -3,11 +3,9 @@
|
|||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}:
|
}: let
|
||||||
let
|
|
||||||
ifTheyExist = groups: builtins.filter (group: builtins.hasAttr group config.users.groups) groups;
|
ifTheyExist = groups: builtins.filter (group: builtins.hasAttr group config.users.groups) groups;
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
users.mutableUsers = false;
|
users.mutableUsers = false;
|
||||||
users.users.julian = {
|
users.users.julian = {
|
||||||
description = "Julian";
|
description = "Julian";
|
||||||
@ -31,7 +29,7 @@ in
|
|||||||
builtins.readFile ../../../../homes/julian/ssh.pub
|
builtins.readFile ../../../../homes/julian/ssh.pub
|
||||||
);
|
);
|
||||||
hashedPasswordFile = config.sops.secrets.julian-password.path;
|
hashedPasswordFile = config.sops.secrets.julian-password.path;
|
||||||
packages = [ pkgs.home-manager ];
|
packages = [pkgs.home-manager];
|
||||||
};
|
};
|
||||||
users.groups.julian = {
|
users.groups.julian = {
|
||||||
gid = 1000;
|
gid = 1000;
|
||||||
@ -44,6 +42,5 @@ in
|
|||||||
|
|
||||||
home-manager.users.julian = import ../../../../homes/julian/${config.networking.hostName}.nix;
|
home-manager.users.julian = import ../../../../homes/julian/${config.networking.hostName}.nix;
|
||||||
|
|
||||||
security.pam.services.swaylock = { }; # Make swaylock unlocking work
|
security.pam.services.swaylock = {}; # Make swaylock unlocking work
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,4 @@
|
|||||||
{
|
{pkgs, ...}: {
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [
|
imports = [
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
|
|
||||||
@ -24,12 +20,12 @@
|
|||||||
networking.hostName = "kardorf";
|
networking.hostName = "kardorf";
|
||||||
system.stateVersion = "22.11";
|
system.stateVersion = "22.11";
|
||||||
|
|
||||||
services.xserver.videoDrivers = [ "nvidia" ];
|
services.xserver.videoDrivers = ["nvidia"];
|
||||||
|
|
||||||
programs.kdeconnect.enable = true;
|
programs.kdeconnect.enable = true;
|
||||||
|
|
||||||
# Enable CUPS to print documents.
|
# Enable CUPS to print documents.
|
||||||
services.printing.enable = true;
|
services.printing.enable = true;
|
||||||
services.printing.browsing = true;
|
services.printing.browsing = true;
|
||||||
services.printing.drivers = with pkgs; [ gutenprint ];
|
services.printing.drivers = with pkgs; [gutenprint];
|
||||||
}
|
}
|
||||||
|
@ -5,9 +5,7 @@
|
|||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
|
|
||||||
{
|
|
||||||
boot.initrd.availableKernelModules = [
|
boot.initrd.availableKernelModules = [
|
||||||
"ehci_pci"
|
"ehci_pci"
|
||||||
"ahci"
|
"ahci"
|
||||||
@ -17,9 +15,9 @@
|
|||||||
"sd_mod"
|
"sd_mod"
|
||||||
"sr_mod"
|
"sr_mod"
|
||||||
];
|
];
|
||||||
boot.initrd.kernelModules = [ ];
|
boot.initrd.kernelModules = [];
|
||||||
boot.kernelModules = [ ];
|
boot.kernelModules = [];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [];
|
||||||
boot.loader.efi.efiSysMountPoint = "/boot/efi";
|
boot.loader.efi.efiSysMountPoint = "/boot/efi";
|
||||||
|
|
||||||
fileSystems."/" = {
|
fileSystems."/" = {
|
||||||
|
@ -1,15 +1,13 @@
|
|||||||
# Edit this configuration file to define what should be installed on
|
# Edit this configuration file to define what should be installed on
|
||||||
# your system. Help is available in the configuration.nix(5) man page
|
# your system. Help is available in the configuration.nix(5) man page
|
||||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||||
|
|
||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
inputs,
|
inputs,
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
imports = [
|
imports = [
|
||||||
inputs.nixos-hardware.nixosModules.raspberry-pi-4
|
inputs.nixos-hardware.nixosModules.raspberry-pi-4
|
||||||
|
|
||||||
@ -47,9 +45,9 @@
|
|||||||
sopsFile = ./vnc-passwd;
|
sopsFile = ./vnc-passwd;
|
||||||
format = "binary";
|
format = "binary";
|
||||||
};
|
};
|
||||||
sops.secrets."wifi/pianonix" = { };
|
sops.secrets."wifi/pianonix" = {};
|
||||||
sops.secrets."syncthing/pianonix/key" = { };
|
sops.secrets."syncthing/pianonix/key" = {};
|
||||||
sops.secrets."syncthing/pianonix/cert" = { };
|
sops.secrets."syncthing/pianonix/cert" = {};
|
||||||
# sops.secrets."syncthing/public-keys/aspi-nix" = { };
|
# sops.secrets."syncthing/public-keys/aspi-nix" = { };
|
||||||
# sops.secrets."syncthing/public-keys/pianonix" = { };
|
# sops.secrets."syncthing/public-keys/pianonix" = { };
|
||||||
|
|
||||||
@ -69,8 +67,8 @@
|
|||||||
|
|
||||||
systemd.services.x11vnc = {
|
systemd.services.x11vnc = {
|
||||||
description = "Run x11vnc server";
|
description = "Run x11vnc server";
|
||||||
after = [ "display-manager.service" ];
|
after = ["display-manager.service"];
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = ["multi-user.target"];
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecStart = "${pkgs.x11vnc}/bin/x11vnc -rfbauth ${
|
ExecStart = "${pkgs.x11vnc}/bin/x11vnc -rfbauth ${
|
||||||
config.sops.secrets."vnc-passwd".path
|
config.sops.secrets."vnc-passwd".path
|
||||||
|
@ -7,22 +7,20 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
modulesPath,
|
modulesPath,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
|
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
|
||||||
|
|
||||||
{
|
boot.initrd.availableKernelModules = ["xhci_pci"];
|
||||||
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
boot.initrd.kernelModules = [];
|
||||||
|
boot.kernelModules = [];
|
||||||
boot.initrd.availableKernelModules = [ "xhci_pci" ];
|
boot.extraModulePackages = [];
|
||||||
boot.initrd.kernelModules = [ ];
|
|
||||||
boot.kernelModules = [ ];
|
|
||||||
boot.extraModulePackages = [ ];
|
|
||||||
|
|
||||||
fileSystems."/" = {
|
fileSystems."/" = {
|
||||||
device = "/dev/disk/by-uuid/44444444-4444-4444-8888-888888888888";
|
device = "/dev/disk/by-uuid/44444444-4444-4444-8888-888888888888";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
swapDevices = [ ];
|
swapDevices = [];
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
|
@ -1,11 +1,6 @@
|
|||||||
{
|
{lib, ...}: let
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
inherit (lib) types mkOption;
|
inherit (lib) types mkOption;
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
options.colorscheme = {
|
options.colorscheme = {
|
||||||
name = mkOption {
|
name = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
|
@ -2,8 +2,7 @@
|
|||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}:
|
}: let
|
||||||
let
|
|
||||||
mkFontOption = kind: {
|
mkFontOption = kind: {
|
||||||
name = lib.mkOption {
|
name = lib.mkOption {
|
||||||
type = lib.types.str;
|
type = lib.types.str;
|
||||||
@ -25,8 +24,7 @@ let
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
cfg = config.fontProfiles;
|
cfg = config.fontProfiles;
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
options.fontProfiles = {
|
options.fontProfiles = {
|
||||||
enable = lib.mkEnableOption "Whether to enable font profiles";
|
enable = lib.mkEnableOption "Whether to enable font profiles";
|
||||||
monospace = mkFontOption "monospace";
|
monospace = mkFontOption "monospace";
|
||||||
|
@ -1,11 +1,6 @@
|
|||||||
{
|
{lib, ...}: let
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
inherit (lib) types mkOption;
|
inherit (lib) types mkOption;
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
options.hostName = mkOption {
|
options.hostName = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
};
|
};
|
||||||
|
@ -2,11 +2,9 @@
|
|||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}:
|
}: let
|
||||||
let
|
|
||||||
inherit (lib) mkOption types;
|
inherit (lib) mkOption types;
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
options.monitors = mkOption {
|
options.monitors = mkOption {
|
||||||
type = types.listOf (
|
type = types.listOf (
|
||||||
types.submodule {
|
types.submodule {
|
||||||
@ -46,7 +44,7 @@ in
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
default = [ ];
|
default = [];
|
||||||
};
|
};
|
||||||
config = {
|
config = {
|
||||||
assertions = [
|
assertions = [
|
||||||
|
@ -1,11 +1,6 @@
|
|||||||
{
|
{lib, ...}: let
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
inherit (lib) types mkOption;
|
inherit (lib) types mkOption;
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
options.is-nixos = mkOption {
|
options.is-nixos = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
};
|
};
|
||||||
|
@ -3,8 +3,7 @@
|
|||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
options.terminal = lib.mkOption {
|
options.terminal = lib.mkOption {
|
||||||
type = lib.types.str;
|
type = lib.types.str;
|
||||||
example = "alacritty";
|
example = "alacritty";
|
||||||
|
@ -2,15 +2,12 @@
|
|||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}:
|
}: let
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.modules.syncthing;
|
cfg = config.modules.syncthing;
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
options.modules.syncthing = {
|
options.modules.syncthing = {
|
||||||
enable = lib.mkOption { default = false; };
|
enable = lib.mkOption {default = false;};
|
||||||
overrideSettings = lib.mkOption { default = false; };
|
overrideSettings = lib.mkOption {default = false;};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
|
@ -1,20 +1,19 @@
|
|||||||
{
|
{inputs, ...}: {
|
||||||
inputs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
# For every flake input, aliases 'pkgs.inputs.${flake}' to
|
# For every flake input, aliases 'pkgs.inputs.${flake}' to
|
||||||
# 'inputs.${flake}.packages.${pkgs.system}' or
|
# 'inputs.${flake}.packages.${pkgs.system}' or
|
||||||
# 'inputs.${flake}.legacyPackages.${pkgs.system}'
|
# 'inputs.${flake}.legacyPackages.${pkgs.system}'
|
||||||
flake-inputs = final: _: {
|
flake-inputs = final: _: {
|
||||||
inputs = builtins.mapAttrs (
|
inputs =
|
||||||
_: flake:
|
builtins.mapAttrs (
|
||||||
let
|
_: flake: let
|
||||||
legacyPackages = (flake.legacyPackages or { }).${final.system} or { };
|
legacyPackages = (flake.legacyPackages or {}).${final.system} or {};
|
||||||
packages = (flake.packages or { }).${final.system} or { };
|
packages = (flake.packages or {}).${final.system} or {};
|
||||||
in
|
in
|
||||||
if legacyPackages != { } then legacyPackages else packages
|
if legacyPackages != {}
|
||||||
) inputs;
|
then legacyPackages
|
||||||
|
else packages
|
||||||
|
)
|
||||||
|
inputs;
|
||||||
};
|
};
|
||||||
|
|
||||||
input-flake-packages = final: prev: {
|
input-flake-packages = final: prev: {
|
||||||
@ -23,7 +22,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
# Adds my custom packages, available as pkgs.frajul.xyz
|
# Adds my custom packages, available as pkgs.frajul.xyz
|
||||||
my-pkgs = final: prev: { frajul = import ../pkgs { pkgs = final; }; };
|
my-pkgs = final: prev: {frajul = import ../pkgs {pkgs = final;};};
|
||||||
|
|
||||||
nixpkgs-stable-unstable = final: prev: {
|
nixpkgs-stable-unstable = final: prev: {
|
||||||
unstable = import inputs.nixpkgs {
|
unstable = import inputs.nixpkgs {
|
||||||
@ -39,10 +38,9 @@
|
|||||||
# Makes gparted actually open
|
# Makes gparted actually open
|
||||||
gparted-xhost = final: prev: {
|
gparted-xhost = final: prev: {
|
||||||
gparted-xhost = prev.gparted.overrideAttrs (oldAttrs: {
|
gparted-xhost = prev.gparted.overrideAttrs (oldAttrs: {
|
||||||
configureFlags = oldAttrs.configureFlags ++ [ "--enable-xhost-root" ];
|
configureFlags = oldAttrs.configureFlags ++ ["--enable-xhost-root"];
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
nix-matlab = inputs.nix-matlab.overlay;
|
nix-matlab = inputs.nix-matlab.overlay;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -2,11 +2,10 @@
|
|||||||
writeShellApplication,
|
writeShellApplication,
|
||||||
kmod,
|
kmod,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
writeShellApplication {
|
writeShellApplication {
|
||||||
name = "acer-battery-health-mode";
|
name = "acer-battery-health-mode";
|
||||||
|
|
||||||
runtimeInputs = [ kmod ]; # contains insmod
|
runtimeInputs = [kmod]; # contains insmod
|
||||||
|
|
||||||
text = ''
|
text = ''
|
||||||
#/usr/bin/env sh
|
#/usr/bin/env sh
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
yq,
|
yq,
|
||||||
writeShellApplication,
|
writeShellApplication,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
writeShellApplication {
|
writeShellApplication {
|
||||||
name = "conda-direnv";
|
name = "conda-direnv";
|
||||||
|
|
||||||
|
@ -1,19 +1,15 @@
|
|||||||
{
|
{pkgs ? import <nixpkgs> {}, ...}: {
|
||||||
pkgs ? import <nixpkgs> { },
|
conda-direnv = pkgs.callPackage ./conda-direnv {};
|
||||||
...
|
deploy-to-pianopi = pkgs.callPackage ./deploy-to-pianopi {};
|
||||||
}:
|
edit-config = pkgs.callPackage ./edit-config {};
|
||||||
{
|
hyprshot-gui = pkgs.callPackage ./hyprshot-gui {};
|
||||||
conda-direnv = pkgs.callPackage ./conda-direnv { };
|
install = pkgs.callPackage ./install {};
|
||||||
deploy-to-pianopi = pkgs.callPackage ./deploy-to-pianopi { };
|
lntocp = pkgs.callPackage ./lntocp {};
|
||||||
edit-config = pkgs.callPackage ./edit-config { };
|
open-messaging = pkgs.callPackage ./open-messaging {};
|
||||||
hyprshot-gui = pkgs.callPackage ./hyprshot-gui { };
|
pulseaudio-popup = pkgs.callPackage ./pulseaudio-popup {};
|
||||||
install = pkgs.callPackage ./install { };
|
sos = pkgs.callPackage ./sos {};
|
||||||
lntocp = pkgs.callPackage ./lntocp { };
|
xwacomcalibrate = pkgs.callPackage ./xwacomcalibrate {};
|
||||||
open-messaging = pkgs.callPackage ./open-messaging { };
|
acer-battery-health-mode = pkgs.callPackage ./acer-battery-health-mode {};
|
||||||
pulseaudio-popup = pkgs.callPackage ./pulseaudio-popup { };
|
pob2 = pkgs.callPackage ./pob2 {};
|
||||||
sos = pkgs.callPackage ./sos { };
|
wl-ocr = pkgs.callPackage ./wl-ocr {};
|
||||||
xwacomcalibrate = pkgs.callPackage ./xwacomcalibrate { };
|
|
||||||
acer-battery-health-mode = pkgs.callPackage ./acer-battery-health-mode { };
|
|
||||||
pob2 = pkgs.callPackage ./pob2 { };
|
|
||||||
wl-ocr = pkgs.callPackage ./wl-ocr { };
|
|
||||||
}
|
}
|
||||||
|
@ -2,11 +2,10 @@
|
|||||||
rsync,
|
rsync,
|
||||||
writeShellApplication,
|
writeShellApplication,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
writeShellApplication {
|
writeShellApplication {
|
||||||
name = "deploy-to-pianopi";
|
name = "deploy-to-pianopi";
|
||||||
|
|
||||||
runtimeInputs = [ rsync ];
|
runtimeInputs = [rsync];
|
||||||
|
|
||||||
text = ''
|
text = ''
|
||||||
set -e
|
set -e
|
||||||
|
@ -7,7 +7,6 @@
|
|||||||
hyprshot,
|
hyprshot,
|
||||||
zenity,
|
zenity,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "hyprshot-gui";
|
pname = "hyprshot-gui";
|
||||||
version = "2023-10-20";
|
version = "2023-10-20";
|
||||||
@ -19,7 +18,7 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "sha256-XUy6+mFbNL+3zDfS4tWva4DiJeLnRM9S8ECRayTcPfI=";
|
sha256 = "sha256-XUy6+mFbNL+3zDfS4tWva4DiJeLnRM9S8ECRayTcPfI=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ makeWrapper ];
|
nativeBuildInputs = [makeWrapper];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
bash
|
bash
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
{ writeShellScriptBin, gum, ... }:
|
{
|
||||||
|
writeShellScriptBin,
|
||||||
|
gum,
|
||||||
|
...
|
||||||
|
}:
|
||||||
# https://github.com/IogaMaster/dotfiles/blob/main/packages/install/default.nix
|
# https://github.com/IogaMaster/dotfiles/blob/main/packages/install/default.nix
|
||||||
writeShellScriptBin "install" ''
|
writeShellScriptBin "install" ''
|
||||||
${gum}/bin/gum style --border normal --margin "1" --padding "1 2" --border-foreground 212 "✨ IogaMaster's dotfiles installer ✨"
|
${gum}/bin/gum style --border normal --margin "1" --padding "1 2" --border-foreground 212 "✨ IogaMaster's dotfiles installer ✨"
|
||||||
|
@ -1,11 +1,8 @@
|
|||||||
{
|
{writeShellApplication}:
|
||||||
writeShellApplication,
|
|
||||||
}:
|
|
||||||
|
|
||||||
writeShellApplication {
|
writeShellApplication {
|
||||||
name = "lntocp";
|
name = "lntocp";
|
||||||
|
|
||||||
runtimeInputs = [ ];
|
runtimeInputs = [];
|
||||||
|
|
||||||
text = ''
|
text = ''
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
telegram-desktop,
|
telegram-desktop,
|
||||||
thunderbird,
|
thunderbird,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
writeShellApplication {
|
writeShellApplication {
|
||||||
name = "open-messaging";
|
name = "open-messaging";
|
||||||
|
|
||||||
|
@ -5,8 +5,7 @@
|
|||||||
fetchFromGitHub,
|
fetchFromGitHub,
|
||||||
unzip,
|
unzip,
|
||||||
...
|
...
|
||||||
}:
|
}: let
|
||||||
let
|
|
||||||
data = stdenv.mkDerivation (finalAttrs: {
|
data = stdenv.mkDerivation (finalAttrs: {
|
||||||
pname = "path-of-building-data";
|
pname = "path-of-building-data";
|
||||||
version = "dev-version";
|
version = "dev-version";
|
||||||
@ -18,7 +17,7 @@ let
|
|||||||
hash = "sha256-hRS4k2V9Ze6dc7BMA0iZxjCOZgqPa3Cu7gRZiVLrFR4=";
|
hash = "sha256-hRS4k2V9Ze6dc7BMA0iZxjCOZgqPa3Cu7gRZiVLrFR4=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ unzip ];
|
nativeBuildInputs = [unzip];
|
||||||
|
|
||||||
buildCommand = ''
|
buildCommand = ''
|
||||||
# I have absolutely no idea how this file is generated
|
# I have absolutely no idea how this file is generated
|
||||||
@ -38,52 +37,52 @@ let
|
|||||||
'';
|
'';
|
||||||
});
|
});
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
pname = "path-of-building-2";
|
pname = "path-of-building-2";
|
||||||
version = "${data.version}-unstable-2023-04-09";
|
version = "${data.version}-unstable-2023-04-09";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "ernstp";
|
owner = "ernstp";
|
||||||
repo = "pobfrontend";
|
repo = "pobfrontend";
|
||||||
rev = "9faa19aa362f975737169824c1578d5011487c18";
|
rev = "9faa19aa362f975737169824c1578d5011487c18";
|
||||||
hash = "sha256-zhw2PZ6ZNMgZ2hG+a6AcYBkeg7kbBHNc2eSt4if17Wk=";
|
hash = "sha256-zhw2PZ6ZNMgZ2hG+a6AcYBkeg7kbBHNc2eSt4if17Wk=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = with pkgs; [
|
nativeBuildInputs = with pkgs; [
|
||||||
meson
|
meson
|
||||||
ninja
|
ninja
|
||||||
pkg-config
|
pkg-config
|
||||||
kdePackages.qttools
|
kdePackages.qttools
|
||||||
kdePackages.wrapQtAppsHook
|
kdePackages.wrapQtAppsHook
|
||||||
];
|
];
|
||||||
buildInputs = with pkgs; [
|
buildInputs = with pkgs; [
|
||||||
kdePackages.qtbase
|
kdePackages.qtbase
|
||||||
luajit
|
luajit
|
||||||
luajit.pkgs.lua-curl
|
luajit.pkgs.lua-curl
|
||||||
];
|
];
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
runHook preInstall
|
runHook preInstall
|
||||||
install -Dm555 pobfrontend $out/bin/pobfrontend
|
install -Dm555 pobfrontend $out/bin/pobfrontend
|
||||||
runHook postInstall
|
runHook postInstall
|
||||||
'';
|
'';
|
||||||
|
|
||||||
preFixup = ''
|
preFixup = ''
|
||||||
qtWrapperArgs+=(
|
qtWrapperArgs+=(
|
||||||
--set LUA_PATH "$LUA_PATH"
|
--set LUA_PATH "$LUA_PATH"
|
||||||
--set LUA_CPATH "$LUA_CPATH"
|
--set LUA_CPATH "$LUA_CPATH"
|
||||||
--chdir "${data}"
|
--chdir "${data}"
|
||||||
)
|
)
|
||||||
'';
|
'';
|
||||||
|
|
||||||
passthru.data = data;
|
passthru.data = data;
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "Offline build planner for Path of Exile";
|
description = "Offline build planner for Path of Exile";
|
||||||
homepage = "https://pathofbuilding.community/";
|
homepage = "https://pathofbuilding.community/";
|
||||||
license = lib.licenses.mit;
|
license = lib.licenses.mit;
|
||||||
maintainers = [ lib.maintainers.k900 ];
|
maintainers = [lib.maintainers.k900];
|
||||||
mainProgram = "pobfrontend";
|
mainProgram = "pobfrontend";
|
||||||
broken = stdenv.isDarwin; # doesn't find uic6 for some reason
|
broken = stdenv.isDarwin; # doesn't find uic6 for some reason
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
jgmenu,
|
jgmenu,
|
||||||
pulseaudio,
|
pulseaudio,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
writeShellApplication {
|
writeShellApplication {
|
||||||
name = "pulseaudio-popup";
|
name = "pulseaudio-popup";
|
||||||
|
|
||||||
@ -15,7 +14,7 @@ writeShellApplication {
|
|||||||
];
|
];
|
||||||
|
|
||||||
# Do not insert e.g. pipefail
|
# Do not insert e.g. pipefail
|
||||||
bashOptions = [ ];
|
bashOptions = [];
|
||||||
|
|
||||||
text = ''
|
text = ''
|
||||||
HDMI_SINK="alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp_3__sink"
|
HDMI_SINK="alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp_3__sink"
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
nix-output-monitor,
|
nix-output-monitor,
|
||||||
jq,
|
jq,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
writeShellApplication {
|
writeShellApplication {
|
||||||
name = "sos";
|
name = "sos";
|
||||||
|
|
||||||
|
@ -8,12 +8,11 @@
|
|||||||
tesseract5,
|
tesseract5,
|
||||||
wl-clipboard,
|
wl-clipboard,
|
||||||
langs ? "eng+hun+fra+jpn+jpn_vert+kor+kor_vert+pol+ron+spa",
|
langs ? "eng+hun+fra+jpn+jpn_vert+kor+kor_vert+pol+ron+spa",
|
||||||
}:
|
}: let
|
||||||
let
|
|
||||||
_ = lib.getExe;
|
_ = lib.getExe;
|
||||||
in
|
in
|
||||||
writeShellScriptBin "wl-ocr" ''
|
writeShellScriptBin "wl-ocr" ''
|
||||||
${_ grim} -g "$(${_ slurp})" -t ppm - | ${_ tesseract5} -l ${langs} - - | ${wl-clipboard}/bin/wl-copy
|
${_ grim} -g "$(${_ slurp})" -t ppm - | ${_ tesseract5} -l ${langs} - - | ${wl-clipboard}/bin/wl-copy
|
||||||
echo "$(${wl-clipboard}/bin/wl-paste)"
|
echo "$(${wl-clipboard}/bin/wl-paste)"
|
||||||
${_ libnotify} -- "$(${wl-clipboard}/bin/wl-paste)"
|
${_ libnotify} -- "$(${wl-clipboard}/bin/wl-paste)"
|
||||||
''
|
''
|
||||||
|
@ -5,7 +5,6 @@
|
|||||||
xdotool,
|
xdotool,
|
||||||
bc,
|
bc,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
writeShellApplication {
|
writeShellApplication {
|
||||||
name = "xwacomcalibrate";
|
name = "xwacomcalibrate";
|
||||||
|
|
||||||
|
@ -1,8 +1,4 @@
|
|||||||
{
|
{pkgs ? import <nixpkgs> {}, ...}: {
|
||||||
pkgs ? import <nixpkgs> { },
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
default = pkgs.mkShell {
|
default = pkgs.mkShell {
|
||||||
NIX_CONFIG = "extra-experimental-features = nix-command flakes ca-derivations";
|
NIX_CONFIG = "extra-experimental-features = nix-command flakes ca-derivations";
|
||||||
nativeBuildInputs = with pkgs; [
|
nativeBuildInputs = with pkgs; [
|
||||||
|
@ -1,14 +1,15 @@
|
|||||||
{
|
{
|
||||||
# Snowfall Lib provides a customized `lib` instance with access to your flake's library
|
# Snowfall Lib provides a customized `lib` instance with access to your flake's library
|
||||||
# as well as the libraries available from your flake's inputs.
|
# as well as the libraries available from your flake's inputs.
|
||||||
lib,
|
lib,
|
||||||
# You also have access to your flake's inputs.
|
# You also have access to your flake's inputs.
|
||||||
inputs,
|
inputs,
|
||||||
|
# All other arguments come from NixPkgs. You can use `pkgs` to pull shells or helpers
|
||||||
# All other arguments come from NixPkgs. You can use `pkgs` to pull shells or helpers
|
# programmatically or you may add the named attributes as arguments here.
|
||||||
# programmatically or you may add the named attributes as arguments here.
|
pkgs,
|
||||||
pkgs, stdenv, ... }:
|
stdenv,
|
||||||
|
...
|
||||||
|
}:
|
||||||
pkgs.mkShell {
|
pkgs.mkShell {
|
||||||
# Create your shell
|
# Create your shell
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user