Compare commits
92 Commits
7d17c52192
...
flake-upda
Author | SHA1 | Date | |
---|---|---|---|
b7f07f01b0 | |||
fdc617b966 | |||
eef2fef692 | |||
6075497f78 | |||
84dfe34034 | |||
b16b367e03 | |||
6a9d5e0f8b | |||
bdcf9fc56a | |||
ad86dd0e71 | |||
ff96161c99 | |||
a8bbd7ab4f | |||
b8c8e101f2 | |||
fbc7a9224d | |||
056e9fe52b | |||
f79099d10b | |||
938e927764 | |||
2f281b8c96 | |||
fc7367d99b | |||
48a9688e3b | |||
d81324c5a0 | |||
35f994b1bb | |||
87c502051a | |||
aa05a6a01f | |||
686c25aec4 | |||
c1078aec6c | |||
6fc53bf72c | |||
ab90ef3e89 | |||
a8c285539c | |||
098a847fab | |||
b122a7ed20 | |||
683991405d | |||
4fcffbab6d | |||
7b281b1237 | |||
fe6c2bf8b2 | |||
a4ad512a0c | |||
a369b4fefa | |||
91f7eea79f | |||
8010d771a1 | |||
7f4c41429e | |||
6d21fe4262 | |||
c081f95aaf | |||
452a34c7e8 | |||
15c4616b91 | |||
07274a0364 | |||
3bb8db1349 | |||
65a3dcdc08 | |||
9fe40bfd13 | |||
07943d4f95 | |||
815a79ff41 | |||
32ddceba8f | |||
55ba4125d6 | |||
b9274f546f | |||
fd246d7daf | |||
edae0d2bb0 | |||
1cb23dd0a4 | |||
ab1052193a | |||
6dadb2008c | |||
18f9cc3fa8 | |||
9295ad7010 | |||
e3cf2379ab | |||
f6c3f676b2 | |||
d57017382a | |||
1d7690eab4 | |||
67d68a9946 | |||
9af362b5c8 | |||
a0ae09452f | |||
711859e660 | |||
1c1e496425 | |||
97229a521f | |||
7d8190210b | |||
a1dfeff98b | |||
9e512c2863 | |||
136653b0fa | |||
75fb0f54ec | |||
a3282f3eb3 | |||
843dfb986d | |||
3eba0fe092 | |||
fdc8b03d9b | |||
d86321cfe6 | |||
881c930fdb | |||
dc3f9fe681 | |||
d73ff17327 | |||
67468ba6fa | |||
6d2a7f50df | |||
3cf8f19fcc | |||
d335f6c892 | |||
8d94428f77 | |||
903776dca6 | |||
b6dc568215 | |||
130c341816 | |||
8d0430ae52 | |||
68da077c72 |
@ -1,61 +0,0 @@
|
|||||||
[helpers]
|
|
||||||
|
|
||||||
[default]
|
|
||||||
depends = []
|
|
||||||
|
|
||||||
[manjaro.files]
|
|
||||||
manjaro = "~"
|
|
||||||
|
|
||||||
[mc.files]
|
|
||||||
mc = "~/.config/mc"
|
|
||||||
|
|
||||||
[vim.files]
|
|
||||||
# type symbolic prevents interpreting '{{' as template
|
|
||||||
"vim/.vimrc" = { target = "~/.vimrc", type = "symbolic" }
|
|
||||||
|
|
||||||
[nvim.files]
|
|
||||||
"vim/init.vim" = { target = "~/.config/nvim/init.vim", type = "symbolic" }
|
|
||||||
|
|
||||||
[i3.files]
|
|
||||||
"i3/i3" = "~/.config/i3"
|
|
||||||
"i3/i3blocks" = { target = "~/.config/i3blocks", type = "symbolic" }
|
|
||||||
"i3/rofi" = "~/.config/rofi"
|
|
||||||
"i3/i3-scrot.conf" = "~/.config/i3-scrot.conf"
|
|
||||||
"i3/i3status-rust" = "~/.config/i3status-rust"
|
|
||||||
"i3/.profile" = "~/.profile"
|
|
||||||
|
|
||||||
[i3.variables]
|
|
||||||
monitor-primary = "not-specified"
|
|
||||||
monitor-secondary = "not-specified"
|
|
||||||
screenlayout-script = "echo screenlayout-script not specified"
|
|
||||||
bar-font-size = 15
|
|
||||||
tray-output = "tray_output primary"
|
|
||||||
|
|
||||||
[emacs.files]
|
|
||||||
"emacs/doom" = "~/.config/doom"
|
|
||||||
# "emacs/spacemacs/.spacemacs" = "~/.spacemacs"
|
|
||||||
# "emacs/chemacs/.emacs-profiles.el" = "~/.emacs-profiles.el"
|
|
||||||
|
|
||||||
[alacritty.files]
|
|
||||||
alacritty = "~/.config/alacritty"
|
|
||||||
|
|
||||||
[starship.files]
|
|
||||||
starship = "~/.config/"
|
|
||||||
|
|
||||||
[zsh.files]
|
|
||||||
"zsh/.zshrc" = "~/.zshrc"
|
|
||||||
"zsh/custom-plugins" = "~/.oh-my-zsh/custom"
|
|
||||||
|
|
||||||
[polybar.files]
|
|
||||||
polybar = "~/.config/polybar"
|
|
||||||
|
|
||||||
[leftwm.files]
|
|
||||||
leftwm = "~/.config/leftwm"
|
|
||||||
|
|
||||||
[xmonad.files]
|
|
||||||
xmonad = "~/.xmonad"
|
|
||||||
|
|
||||||
[nix.files]
|
|
||||||
"direnvrc" = "~/.config/direnv/direnvrc"
|
|
||||||
"nix/configuration.nix" = "/etc/nixos/configuration.nix"
|
|
||||||
"nix/flake.nix" = "/etc/nixos/flake.nix"
|
|
@ -1,6 +0,0 @@
|
|||||||
[i3.variables]
|
|
||||||
monitor-primary = "DVI-D-0"
|
|
||||||
monitor-secondary = "DVI-D-1"
|
|
||||||
screenlayout-script = "~/.screenlayout/2desktop-dvi.sh"
|
|
||||||
bar-font-size = 15
|
|
||||||
tray-output = "tray_output DVI-D-1"
|
|
@ -1,4 +0,0 @@
|
|||||||
[i3.variables]
|
|
||||||
monitor-primary = "HDMI-1"
|
|
||||||
monitor-secondary = "eDP-1"
|
|
||||||
screenlayout-script = "~/.screenlayout/laptop-at-home.sh"
|
|
@ -1,5 +0,0 @@
|
|||||||
[i3.variables]
|
|
||||||
monitor-primary = "HDMI-1"
|
|
||||||
monitor-secondary = "eDP-1"
|
|
||||||
tray-output = "tray_output eDP-1"
|
|
||||||
screenlayout-script = "$scripts/display-layoutpicker"
|
|
@ -1,2 +0,0 @@
|
|||||||
includes = [".dotter/kardorf.toml"]
|
|
||||||
packages = ["i3", "emacs", "alacritty", "zsh", "starship", "nix"]
|
|
@ -1,2 +0,0 @@
|
|||||||
includes = [".dotter/laptop.toml"]
|
|
||||||
packages = []
|
|
@ -25,6 +25,7 @@ jobs:
|
|||||||
- name: Rebase from master branch
|
- name: Rebase from master branch
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
|
git fetch origin master
|
||||||
commits_ahead=$(git rev-list --count HEAD..origin/master)
|
commits_ahead=$(git rev-list --count HEAD..origin/master)
|
||||||
echo "Commits ahead: $commits_ahead"
|
echo "Commits ahead: $commits_ahead"
|
||||||
git log --oneline -5
|
git log --oneline -5
|
||||||
|
@ -3,6 +3,8 @@ keys:
|
|||||||
- &aspi-ssh age1q8lc5340gz5xw2f57nglrss68wv0j0hf36py2pdtrl6ky3yrq9qqk0njr4
|
- &aspi-ssh age1q8lc5340gz5xw2f57nglrss68wv0j0hf36py2pdtrl6ky3yrq9qqk0njr4
|
||||||
- &pianonix-ssh age1hsmfz8fjxu83sax9lr487h8xr6cyge0apdq4zpge4c8jpcjj2cksj825ct
|
- &pianonix-ssh age1hsmfz8fjxu83sax9lr487h8xr6cyge0apdq4zpge4c8jpcjj2cksj825ct
|
||||||
- &builder-ssh age1kw4kmdm45zprvdkrrpvgq966l7585vhusmum083qlwnr0xxgd3uqatcyja
|
- &builder-ssh age1kw4kmdm45zprvdkrrpvgq966l7585vhusmum083qlwnr0xxgd3uqatcyja
|
||||||
|
- &kardorf-ssh age15lxw97z03q40xrdscnxqqugh5ky5aqrerg2t2rphkcqm6rnllurq8v98q5
|
||||||
|
|
||||||
creation_rules:
|
creation_rules:
|
||||||
- path_regex: hosts/common/secrets.yaml$
|
- path_regex: hosts/common/secrets.yaml$
|
||||||
key_groups:
|
key_groups:
|
||||||
@ -10,6 +12,7 @@ creation_rules:
|
|||||||
- *primary
|
- *primary
|
||||||
- *aspi-ssh
|
- *aspi-ssh
|
||||||
- *pianonix-ssh
|
- *pianonix-ssh
|
||||||
|
- *kardorf-ssh
|
||||||
|
|
||||||
- path_regex: hosts/builder/secrets.yaml$
|
- path_regex: hosts/builder/secrets.yaml$
|
||||||
key_groups:
|
key_groups:
|
||||||
|
845
flake.lock
generated
25
flake.nix
@ -28,10 +28,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
# Various flakes
|
# Various flakes
|
||||||
alacritty-theme = {
|
|
||||||
url = "github:alacritty/alacritty-theme";
|
|
||||||
flake = false;
|
|
||||||
};
|
|
||||||
yazi-flavors = {
|
yazi-flavors = {
|
||||||
url = "github:yazi-rs/flavors";
|
url = "github:yazi-rs/flavors";
|
||||||
flake = false;
|
flake = false;
|
||||||
@ -56,15 +52,13 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs =
|
outputs = {
|
||||||
{
|
|
||||||
self,
|
self,
|
||||||
nixpkgs,
|
nixpkgs,
|
||||||
home-manager,
|
home-manager,
|
||||||
systems,
|
systems,
|
||||||
...
|
...
|
||||||
}@inputs:
|
} @ inputs: let
|
||||||
let
|
|
||||||
inherit (self) outputs;
|
inherit (self) outputs;
|
||||||
lib = nixpkgs.lib // home-manager.lib;
|
lib = nixpkgs.lib // home-manager.lib;
|
||||||
forEachSystem = f: lib.genAttrs (import systems) (system: f pkgsFor.${system});
|
forEachSystem = f: lib.genAttrs (import systems) (system: f pkgsFor.${system});
|
||||||
@ -79,8 +73,7 @@
|
|||||||
warn-dirty = false;
|
warn-dirty = false;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
inherit lib;
|
inherit lib;
|
||||||
|
|
||||||
nixosModules = import ./modules/nixos;
|
nixosModules = import ./modules/nixos;
|
||||||
@ -109,7 +102,13 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
kardorf = lib.nixosSystem {
|
kardorf = lib.nixosSystem {
|
||||||
modules = [ ./hosts/pianonix ];
|
modules = [./hosts/kardorf];
|
||||||
|
specialArgs = {
|
||||||
|
inherit inputs outputs;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
builder = lib.nixosSystem {
|
||||||
|
modules = [./hosts/builder];
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
inherit inputs outputs;
|
inherit inputs outputs;
|
||||||
};
|
};
|
||||||
@ -145,7 +144,7 @@
|
|||||||
./homes/julian/kardorf.nix
|
./homes/julian/kardorf.nix
|
||||||
./homes/julian/hm-standalone-config.nix
|
./homes/julian/hm-standalone-config.nix
|
||||||
];
|
];
|
||||||
pkgs = pkgsFor.aarch64-linux;
|
pkgs = pkgsFor.x86_64-linux;
|
||||||
extraSpecialArgs = {
|
extraSpecialArgs = {
|
||||||
inherit inputs outputs;
|
inherit inputs outputs;
|
||||||
};
|
};
|
||||||
@ -155,7 +154,7 @@
|
|||||||
./homes/julian/v3ms
|
./homes/julian/v3ms
|
||||||
./homes/julian/hm-standalone-config.nix
|
./homes/julian/hm-standalone-config.nix
|
||||||
];
|
];
|
||||||
pkgs = pkgsFor.aarch64-linux;
|
pkgs = pkgsFor.x86_64-linux;
|
||||||
extraSpecialArgs = {
|
extraSpecialArgs = {
|
||||||
inherit inputs outputs;
|
inherit inputs outputs;
|
||||||
};
|
};
|
||||||
|
@ -1,30 +1,56 @@
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./global
|
./global
|
||||||
|
|
||||||
./features/fish
|
./features/fish
|
||||||
./features/direnv
|
./features/direnv
|
||||||
./features/topgrade
|
./features/topgrade
|
||||||
./features/neovim
|
./features/neovim
|
||||||
./features/kitty
|
./features/ghostty
|
||||||
./features/wezterm
|
./features/wezterm
|
||||||
./features/alacritty
|
./features/alacritty
|
||||||
./features/yazi
|
./features/yazi
|
||||||
./features/emacs
|
./features/emacs
|
||||||
# ./features/i3
|
|
||||||
|
|
||||||
./features/hyprland
|
./features/hyprland
|
||||||
|
|
||||||
./features/nix-helper
|
|
||||||
./features/desktop
|
|
||||||
|
|
||||||
./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 = "alacritty";
|
||||||
|
|
||||||
|
# ------- ----------
|
||||||
|
# | eDP-1 | | HDMI-A-1 |
|
||||||
|
# ------- ----------
|
||||||
|
monitors = [
|
||||||
|
{
|
||||||
|
name = "HDMI-A-1";
|
||||||
|
# width = 1680;
|
||||||
|
# height = 1050;
|
||||||
|
workspaces = [
|
||||||
|
"1"
|
||||||
|
"2"
|
||||||
|
"3"
|
||||||
|
"4"
|
||||||
|
"5"
|
||||||
|
];
|
||||||
|
primary = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "eDP-1";
|
||||||
|
# width = 1680;
|
||||||
|
# height = 1050;
|
||||||
|
workspaces = [
|
||||||
|
"6"
|
||||||
|
"7"
|
||||||
|
"8"
|
||||||
|
"9"
|
||||||
|
"10"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
import = [
|
|
||||||
"~/.config/alacritty/theme/themes/smoooooth.toml"
|
|
||||||
]
|
|
@ -1,17 +1,12 @@
|
|||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
|
||||||
inputs,
|
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
|
programs.alacritty = {
|
||||||
{
|
enable = true;
|
||||||
home.packages = with pkgs; [ alacritty ];
|
settings = {};
|
||||||
|
theme = "smoooooth";
|
||||||
home.file = {
|
|
||||||
".config/alacritty/theme".source = "${inputs.alacritty-theme}";
|
|
||||||
".config/alacritty/alacritty.toml".source = ./alacritty.toml;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
home.sessionVariables.TERMINAL = lib.mkIf (config.terminal == "alacritty") "alacritty";
|
home.sessionVariables.TERMINAL = lib.mkIf (config.terminal == "alacritty") "alacritty";
|
||||||
|
Before Width: | Height: | Size: 182 KiB |
Before Width: | Height: | Size: 177 KiB |
Before Width: | Height: | Size: 823 KiB |
Before Width: | Height: | Size: 759 KiB |
Before Width: | Height: | Size: 1.6 MiB |
Before Width: | Height: | Size: 1024 KiB |
Before Width: | Height: | Size: 2.8 MiB |
Before Width: | Height: | Size: 1.3 MiB |
Before Width: | Height: | Size: 1.6 MiB |
Before Width: | Height: | Size: 499 KiB |
Before Width: | Height: | Size: 607 KiB |
Before Width: | Height: | Size: 1.2 MiB |
Before Width: | Height: | Size: 719 KiB |
Before Width: | Height: | Size: 464 KiB |
Before Width: | Height: | Size: 831 KiB |
Before Width: | Height: | Size: 159 KiB |
Before Width: | Height: | Size: 354 KiB |
Before Width: | Height: | Size: 861 KiB |
Before Width: | Height: | Size: 98 KiB |
Before Width: | Height: | Size: 1.0 MiB |
Before Width: | Height: | Size: 267 KiB |
Before Width: | Height: | Size: 239 KiB |
Before Width: | Height: | Size: 299 KiB |
Before Width: | Height: | Size: 10 MiB |
Before Width: | Height: | Size: 2.7 MiB |
Before Width: | Height: | Size: 1.6 MiB |
Before Width: | Height: | Size: 4.0 MiB |
Before Width: | Height: | Size: 261 KiB |
Before Width: | Height: | Size: 269 KiB |
Before Width: | Height: | Size: 1.2 MiB |
Before Width: | Height: | Size: 216 KiB |
Before Width: | Height: | Size: 342 KiB |
Before Width: | Height: | Size: 412 KiB |
Before Width: | Height: | Size: 595 KiB |
@ -4,18 +4,13 @@
|
|||||||
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
|
||||||
|
|
||||||
@ -30,7 +25,8 @@ in
|
|||||||
|
|
||||||
## Module dependencies
|
## Module dependencies
|
||||||
(aspellWithDicts (
|
(aspellWithDicts (
|
||||||
ds: with ds; [
|
ds:
|
||||||
|
with ds; [
|
||||||
en
|
en
|
||||||
en-computers
|
en-computers
|
||||||
en-science
|
en-science
|
||||||
@ -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
|
||||||
|
@ -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";
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
16
homes/julian/features/ghostty/default.nix
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
programs.ghostty = {
|
||||||
|
enable = true;
|
||||||
|
enableFishIntegration = true;
|
||||||
|
settings = {
|
||||||
|
theme = "catppuccin-mocha";
|
||||||
|
font-size = 12;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
home.sessionVariables.TERMINAL = lib.mkIf (config.terminal == "ghostty") "ghostty";
|
||||||
|
}
|
@ -3,11 +3,9 @@
|
|||||||
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
|
||||||
|
|
||||||
@ -26,9 +24,10 @@ in
|
|||||||
};
|
};
|
||||||
cursorTheme = {
|
cursorTheme = {
|
||||||
package = pkgs.apple-cursor;
|
package = pkgs.apple-cursor;
|
||||||
name = "macOS-BigSur";
|
name = "macOS";
|
||||||
size = 24;
|
size = 24;
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
xdg.portal.extraPortals = [pkgs.xdg-desktop-portal-gtk];
|
||||||
}
|
}
|
@ -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
|
||||||
@ -42,15 +40,29 @@ in
|
|||||||
programs.imv.enable = true; # TODO: what is that
|
programs.imv.enable = true; # TODO: what is that
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
# hyprpicker # TODO
|
hyprpicker
|
||||||
# hyprcursor # TODO
|
|
||||||
brightnessctl
|
brightnessctl
|
||||||
# grimblast
|
|
||||||
frajul.hyprshot-gui
|
frajul.hyprshot-gui
|
||||||
frajul.wl-ocr
|
frajul.wl-ocr
|
||||||
|
|
||||||
wf-recorder
|
wf-recorder
|
||||||
wl-clipboard
|
wl-clipboard
|
||||||
|
|
||||||
|
(pkgs.writeShellScriptBin "toggle-screen-mirroring" (
|
||||||
|
builtins.readFile ./toggle-screen-mirroring.sh
|
||||||
|
))
|
||||||
|
|
||||||
|
(pkgs.writeShellScriptBin "correct-workspace-locations" (
|
||||||
|
lib.concatStringsSep "\n" (
|
||||||
|
builtins.concatLists (
|
||||||
|
map (
|
||||||
|
monitor:
|
||||||
|
map (ws: "hyprctl dispatch moveworkspacetomonitor ${ws} ${monitor.name}") monitor.workspaces
|
||||||
|
)
|
||||||
|
config.monitors
|
||||||
|
)
|
||||||
|
)
|
||||||
|
))
|
||||||
];
|
];
|
||||||
|
|
||||||
services.cliphist = {
|
services.cliphist = {
|
||||||
@ -143,8 +155,11 @@ in
|
|||||||
settings = {
|
settings = {
|
||||||
"$mod" = "SUPER";
|
"$mod" = "SUPER";
|
||||||
|
|
||||||
|
# Environment variables programs like emacs have access to
|
||||||
|
env = "TERMINAL,${config.terminal}";
|
||||||
|
|
||||||
# Monitors
|
# Monitors
|
||||||
monitor = ",preferred,auto,auto";
|
monitor = ",preferred,auto,1";
|
||||||
|
|
||||||
# Autostart
|
# Autostart
|
||||||
exec-once = ["firefox"];
|
exec-once = ["firefox"];
|
||||||
@ -198,6 +213,7 @@ in
|
|||||||
|
|
||||||
exec = [
|
exec = [
|
||||||
"hyprctl setcursor ${config.gtk.cursorTheme.name} ${toString config.gtk.cursorTheme.size}"
|
"hyprctl setcursor ${config.gtk.cursorTheme.name} ${toString config.gtk.cursorTheme.size}"
|
||||||
|
"correct-workspace-locations"
|
||||||
];
|
];
|
||||||
|
|
||||||
misc = {
|
misc = {
|
||||||
@ -233,23 +249,17 @@ in
|
|||||||
];
|
];
|
||||||
|
|
||||||
# Workspace rules
|
# Workspace rules
|
||||||
workspace = [
|
workspace =
|
||||||
"1, monitor:HDMI-A-1"
|
[
|
||||||
"2, monitor:HDMI-A-1"
|
|
||||||
"3, monitor:HDMI-A-1"
|
|
||||||
"4, monitor:HDMI-A-1"
|
|
||||||
"5, monitor:HDMI-A-1"
|
|
||||||
"6, monitor:eDP-1"
|
|
||||||
"7, monitor:eDP-1"
|
|
||||||
"8, monitor:eDP-1"
|
|
||||||
"9, monitor:eDP-1"
|
|
||||||
"10, monitor:eDP-1"
|
|
||||||
|
|
||||||
# smart gaps (none when only one window in workspace)
|
# smart gaps (none when only one window in workspace)
|
||||||
"w[t1], gapsin:0, gapsout:0, border:1"
|
"w[t1], gapsin:0, gapsout:0, border:1"
|
||||||
"w[tg1], gapsin:0, gapsout:0, border:1"
|
"w[tg1], gapsin:0, gapsout:0, border:1"
|
||||||
"f[1], gapsin:0, gapsout:0, border:1"
|
"f[1], gapsin:0, gapsout:0, border:1"
|
||||||
];
|
]
|
||||||
|
# builds like "1, e-DP1" "2, HDMI-1" etc.
|
||||||
|
++ builtins.concatLists (
|
||||||
|
map (monitor: map (ws: "${ws}, monitor:${monitor.name}") monitor.workspaces) config.monitors
|
||||||
|
);
|
||||||
|
|
||||||
# Mouse binds
|
# Mouse binds
|
||||||
bindm = [
|
bindm = [
|
||||||
@ -271,7 +281,7 @@ in
|
|||||||
# opening applications
|
# opening applications
|
||||||
"$mod, D, exec, wofi --show drun,run"
|
"$mod, D, exec, wofi --show drun,run"
|
||||||
"$mod, E, exec, pcmanfm"
|
"$mod, E, exec, pcmanfm"
|
||||||
"$mod, Return, exec, kitty"
|
"$mod, Return, exec, ${config.terminal}"
|
||||||
"$mod, B, exec, firefox"
|
"$mod, B, exec, firefox"
|
||||||
"$mod, C, exec, qalculate-gtk"
|
"$mod, C, exec, qalculate-gtk"
|
||||||
|
|
||||||
@ -279,7 +289,9 @@ in
|
|||||||
"$mod SHIFT, E, exec, wlogout -p layer-shell"
|
"$mod SHIFT, E, exec, wlogout -p layer-shell"
|
||||||
"$mod, Escape, exec, wlogout -p layer-shell"
|
"$mod, Escape, exec, wlogout -p layer-shell"
|
||||||
"$mod SHIFT, R, exec, hyprctl reload"
|
"$mod SHIFT, R, exec, hyprctl reload"
|
||||||
|
"$mod, Print, exec, hyprshot-gui"
|
||||||
", Print, exec, hyprshot-gui"
|
", Print, exec, hyprshot-gui"
|
||||||
|
"$mod, P, exec, toggle-screen-mirroring; correct-workspace-locations"
|
||||||
|
|
||||||
# "$mod SHIFT, E, exec, pkill Hyprland"
|
# "$mod SHIFT, E, exec, pkill Hyprland"
|
||||||
# "$mod, G, togglegroup,"
|
# "$mod, G, togglegroup,"
|
||||||
|
@ -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;
|
||||||
@ -27,8 +26,7 @@ let
|
|||||||
${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 = {
|
||||||
@ -40,8 +38,7 @@ 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'';
|
||||||
@ -50,8 +47,7 @@ in
|
|||||||
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
|
||||||
|
@ -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,25 +5,26 @@
|
|||||||
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;
|
||||||
defaultTimeout = 5000; # milliseconds, can be overwritten by notification sender
|
settings = {
|
||||||
# backgroundColor = "#${palette.base00}"; TODO fix
|
defaultTimeout = "5000"; # milliseconds, can be overwritten by notification sender
|
||||||
# textColor = "#${palette.base05}";
|
backgroundColor = "#${palette.base00}";
|
||||||
# borderColor = "#${palette.base0D}";
|
textColor = "#${palette.base05}";
|
||||||
# progressColor = "over #${palette.base02}";
|
borderColor = "#${palette.base0D}";
|
||||||
# extraConfig = ''
|
progressColor = "over #${palette.base02}";
|
||||||
# [urgency=high]
|
extraConfig = ''
|
||||||
# border-color=#${palette.base09}
|
[urgency=high]
|
||||||
|
border-color=#${palette.base09}
|
||||||
# '';
|
# '';
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
@ -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,13 +14,11 @@ 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,
|
timeout,
|
||||||
command,
|
command,
|
||||||
resumeCommand ? null,
|
resumeCommand ? null,
|
||||||
}:
|
}: [
|
||||||
[
|
|
||||||
{
|
{
|
||||||
timeout = lockTime + timeout;
|
timeout = lockTime + timeout;
|
||||||
inherit command resumeCommand;
|
inherit command resumeCommand;
|
||||||
@ -31,8 +28,7 @@ let
|
|||||||
inherit resumeCommand timeout;
|
inherit resumeCommand timeout;
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
services.swayidle = {
|
services.swayidle = {
|
||||||
enable = true;
|
enable = true;
|
||||||
systemdTarget = "graphical-session.target";
|
systemdTarget = "graphical-session.target";
|
||||||
|
@ -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 = {
|
||||||
|
67
homes/julian/features/hyprland/toggle-screen-mirroring.sh
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
#! /usr/bin/env sh
|
||||||
|
|
||||||
|
# A hyprland script for a laptop-external-monitor setup, toggling between which is in use
|
||||||
|
|
||||||
|
# Launch at startup to make hyprland disable the internal monitor if an external monitor is detected and enabled
|
||||||
|
# Additionally it's called with a keybind to switch between a laptop monitor and an external display
|
||||||
|
# Ideally the conditional monitor behaviour was instead done directly in hyprland.conf, but I'm not sure whether that's possible
|
||||||
|
#
|
||||||
|
# Relevant info:
|
||||||
|
# - hyprctl monitors: identifies currently enabled monitors
|
||||||
|
# - hyprctl monitors all: identifies ALL connected monitors - including those not in use
|
||||||
|
#
|
||||||
|
# Suggested use:
|
||||||
|
# Add this line somewhere after the regular monitor configuration in hyprland.conf:
|
||||||
|
# exec = /path/to/hyprland-monitors-toggle.sh
|
||||||
|
# Add a keybind to run this script on demand:
|
||||||
|
# bind =,SomeKeyHere, exec, /path/to/hyprland-monitors-toggle.sh
|
||||||
|
|
||||||
|
#move_all_workspaces_to_monitor() {
|
||||||
|
# TARGET_MONITOR="$1"
|
||||||
|
|
||||||
|
# hyprctl workspaces | grep ^workspace | cut --delimiter ' ' --fields 3 | xargs -I '{}' hyprctl dispatch moveworkspacetomonitor '{}' "$TARGET_MONITOR"
|
||||||
|
|
||||||
|
# # Previous approach
|
||||||
|
# #hyprctl swapactiveworkspaces $EXTERNAL_MONITOR $INTERNAL_MONITOR
|
||||||
|
#}
|
||||||
|
|
||||||
|
# TODO: Detect these instead of hardcoding them
|
||||||
|
INTERNAL_MONITOR="eDP-1"
|
||||||
|
EXTERNAL_MONITOR="HDMI-A-1"
|
||||||
|
|
||||||
|
# NUM_MONITORS=$(hyprctl monitors all | grep --count Monitor)
|
||||||
|
# NUM_MONITORS_ACTIVE=$(hyprctl monitors | grep --count Monitor)
|
||||||
|
|
||||||
|
# Make sure all
|
||||||
|
# if [ "$NUM_MONITORS_ACTIVE" -eq 1 ]; then
|
||||||
|
# move_all_workspaces_to_monitor $INTERNAL_MONITOR
|
||||||
|
# exit
|
||||||
|
# fi
|
||||||
|
|
||||||
|
MIRROR_SETTING=$(hyprctl monitors all -j | jq -r '.[] | select(.name == "HDMI-A-1") | .mirrorOf')
|
||||||
|
|
||||||
|
# # For dynamically toggling which monitor is active later via a keybind
|
||||||
|
# if [ "$NUM_MONITORS" -gt 1 ]; then # Handling multiple monitors
|
||||||
|
# if hyprctl monitors | cut --delimiter ' ' --fields 2 | grep --quiet ^$EXTERNAL_MONITOR; then
|
||||||
|
# hyprctl keyword monitor $INTERNAL_MONITOR,preferred,0x0,1
|
||||||
|
# move_all_workspaces_to_monitor $INTERNAL_MONITOR
|
||||||
|
# hyprctl keyword monitor "$EXTERNAL_MONITOR, disable"
|
||||||
|
# else
|
||||||
|
# hyprctl keyword monitor $EXTERNAL_MONITOR,preferred,0x0,1
|
||||||
|
# move_all_workspaces_to_monitor $EXTERNAL_MONITOR
|
||||||
|
# hyprctl keyword monitor "$INTERNAL_MONITOR, disable"
|
||||||
|
# fi
|
||||||
|
# else # If the external monitor is disconnected without running this script first, it might become the case that no monitor is on - therefore turn on the laptop monitor!
|
||||||
|
# hyprctl keyword monitor $INTERNAL_MONITOR,preferred,0x0,1
|
||||||
|
# move_all_workspaces_to_monitor $INTERNAL_MONITOR
|
||||||
|
# fi
|
||||||
|
|
||||||
|
echo setting:
|
||||||
|
echo $MIRROR_SETTING
|
||||||
|
if [ "$MIRROR_SETTING" = "none" ]; then
|
||||||
|
echo "mirroring..."
|
||||||
|
hyprctl keyword monitor "$EXTERNAL_MONITOR, preferred, auto, 1, mirror, $INTERNAL_MONITOR"
|
||||||
|
else
|
||||||
|
hyprctl keyword monitor "$EXTERNAL_MONITOR, disable" # shortly disable monitor so waybar recognizes the new monitor again # TODO: find better solution
|
||||||
|
hyprctl keyword monitor "$EXTERNAL_MONITOR, preferred, auto, 1"
|
||||||
|
fi
|
@ -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,8 +3,7 @@
|
|||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
home.packages = [pkgs.waypipe];
|
home.packages = [pkgs.waypipe];
|
||||||
systemd.user.services = {
|
systemd.user.services = {
|
||||||
waypipe-client = {
|
waypipe-client = {
|
||||||
|
@ -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 {
|
||||||
{
|
|
||||||
home.packages = with pkgs; [wlogout];
|
home.packages = with pkgs; [wlogout];
|
||||||
|
|
||||||
# xdg.configFile."wlogout/style.css".text = ''
|
# xdg.configFile."wlogout/style.css".text = ''
|
||||||
|
@ -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 {
|
||||||
{
|
|
||||||
home.packages = with pkgs; [wofi];
|
home.packages = with pkgs; [wofi];
|
||||||
|
|
||||||
xdg.configFile."wofi/config".source = ./config;
|
xdg.configFile."wofi/config".source = ./config;
|
||||||
|
@ -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,8 +3,7 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
imports = [../rofi];
|
imports = [../rofi];
|
||||||
|
|
||||||
services.dunst.enable = true;
|
services.dunst.enable = true;
|
||||||
@ -36,7 +35,9 @@
|
|||||||
|
|
||||||
# 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 = {
|
||||||
|
@ -142,8 +142,8 @@ bindsym $mod+Shift+9 move container to workspace number $ws9; workspace $ws9
|
|||||||
bindsym $mod+Shift+0 move container to workspace number $ws10; workspace $ws10
|
bindsym $mod+Shift+0 move container to workspace number $ws10; workspace $ws10
|
||||||
|
|
||||||
# Monitor config
|
# Monitor config
|
||||||
set $monitor_left "DVI-D-0"
|
set $monitor_left "DVI-D-1"
|
||||||
set $monitor_right "DVI-D-1"
|
set $monitor_right "DVI-D-2"
|
||||||
|
|
||||||
workspace $ws1 output $monitor_left
|
workspace $ws1 output $monitor_left
|
||||||
workspace $ws2 output $monitor_left
|
workspace $ws2 output $monitor_left
|
||||||
|
@ -1,27 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
start_if_not_running()
|
|
||||||
{
|
|
||||||
program=$1
|
|
||||||
pidof -sq $program
|
|
||||||
if [ "$?" -eq "1" ]; then
|
|
||||||
start_program $1
|
|
||||||
else
|
|
||||||
echo "$program is already running"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
start_program()
|
|
||||||
{
|
|
||||||
program=$1
|
|
||||||
echo "Starting $program..."
|
|
||||||
$program & > /dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
i3-msg 'workspace 9; append_layout ~/.config/i3/workspace-messaging.json'
|
|
||||||
start_program nheko
|
|
||||||
sleep 0.1
|
|
||||||
start_program telegram-desktop
|
|
||||||
sleep 0.1
|
|
||||||
start_program thunderbird
|
|
||||||
sleep 0.1
|
|
@ -1,20 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
HDMI_SINK="alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp_3__sink"
|
|
||||||
LAPTOP_SINK="alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp__sink"
|
|
||||||
|
|
||||||
HDMI_ICON=$(pactl info | grep -q $HDMI_SINK && echo "checkbox")
|
|
||||||
LAPTOP_ICON=$(pactl info | grep -q $LAPTOP_SINK && echo "checkbox")
|
|
||||||
|
|
||||||
HDMI_VOLUME=$(pactl get-sink-volume $HDMI_SINK | head -n 1 | awk '{print $5}')
|
|
||||||
LAPTOP_VOLUME=$(pactl get-sink-volume $LAPTOP_SINK | head -n 1 | awk '{print $5}')
|
|
||||||
|
|
||||||
read -r -d '' CONF <<EOF
|
|
||||||
Open Pavucontrol,pavucontrol,pavucontrol
|
|
||||||
|
|
||||||
^sep()
|
|
||||||
HDMI - $HDMI_VOLUME,pactl set-default-sink $HDMI_SINK,$HDMI_ICON
|
|
||||||
Laptop - $LAPTOP_VOLUME,pactl set-default-sink $LAPTOP_SINK,$LAPTOP_ICON
|
|
||||||
EOF
|
|
||||||
|
|
||||||
echo "$CONF" | jgmenu --simple
|
|
@ -3,9 +3,7 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
|
|
||||||
{
|
|
||||||
programs.kitty = {
|
programs.kitty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
shellIntegration.enableFishIntegration = true;
|
shellIntegration.enableFishIntegration = true;
|
||||||
|
@ -3,10 +3,7 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
inputs,
|
inputs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
imports = [inputs.nixvim.homeManagerModules.nixvim];
|
imports = [inputs.nixvim.homeManagerModules.nixvim];
|
||||||
|
|
||||||
home.sessionVariables = {
|
home.sessionVariables = {
|
||||||
@ -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
|
||||||
|
|
||||||
@ -155,10 +151,9 @@
|
|||||||
pyright.enable = true;
|
pyright.enable = true;
|
||||||
dockerls.enable = true;
|
dockerls.enable = true;
|
||||||
lua_ls.enable = true;
|
lua_ls.enable = true;
|
||||||
|
clangd.enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,6 @@
|
|||||||
{
|
{pkgs, ...}: {
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
|
||||||
home.sessionVariables = {
|
home.sessionVariables = {
|
||||||
FLAKE = "/home/julian/.dotfiles";
|
NH_FLAKE = "/home/julian/.dotfiles";
|
||||||
};
|
};
|
||||||
|
|
||||||
home.shellAliases = {
|
home.shellAliases = {
|
||||||
|
@ -2,9 +2,7 @@
|
|||||||
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; };
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -1,10 +1,6 @@
|
|||||||
{
|
{pkgs, ...}: {
|
||||||
lib,
|
imports = [../../gtk];
|
||||||
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;
|
||||||
@ -38,7 +34,7 @@
|
|||||||
# geogebra
|
# geogebra
|
||||||
cheese
|
cheese
|
||||||
handbrake
|
handbrake
|
||||||
kitty # Terminal
|
# kitty # Terminal, already available as feature
|
||||||
libnotify
|
libnotify
|
||||||
libreoffice
|
libreoffice
|
||||||
mate.engrampa
|
mate.engrampa
|
||||||
|
@ -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,11 +23,16 @@
|
|||||||
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
|
||||||
preview
|
preview
|
||||||
|
# needed for org mode export
|
||||||
|
wrapfig
|
||||||
|
capt-of
|
||||||
|
biblatex
|
||||||
;
|
;
|
||||||
})
|
})
|
||||||
matlab # Using nix-matlab overlay defined in flake
|
matlab # Using nix-matlab overlay defined in flake
|
||||||
@ -63,6 +62,7 @@
|
|||||||
|
|
||||||
## My scripts
|
## My scripts
|
||||||
frajul.deploy-to-pianopi
|
frajul.deploy-to-pianopi
|
||||||
|
frajul.rtklib
|
||||||
|
|
||||||
(pkgs.writeShellScriptBin "matlab-rsp" ''
|
(pkgs.writeShellScriptBin "matlab-rsp" ''
|
||||||
matlab -desktop -sd "/home/julian/git/uwa-channel-model" -softwareopengl
|
matlab -desktop -sd "/home/julian/git/uwa-channel-model" -softwareopengl
|
||||||
|
@ -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;
|
||||||
|
|
||||||
@ -27,7 +26,7 @@
|
|||||||
programs.yazi.enable = true;
|
programs.yazi.enable = true;
|
||||||
programs.yazi.enableFishIntegration = true;
|
programs.yazi.enableFishIntegration = true;
|
||||||
programs.yazi.settings.manager = {
|
programs.yazi.settings.manager = {
|
||||||
sort_by = "modified";
|
sort_by = "mtime";
|
||||||
sort_reverse = true;
|
sort_reverse = true;
|
||||||
show_hidden = true;
|
show_hidden = true;
|
||||||
};
|
};
|
||||||
|
@ -2,8 +2,7 @@
|
|||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
|
||||||
home.file = {
|
home.file = {
|
||||||
".config/starship.toml".source = ./starship.toml;
|
".config/starship.toml".source = ./starship.toml;
|
||||||
};
|
};
|
||||||
|
@ -1,17 +1,16 @@
|
|||||||
{
|
{
|
||||||
inputs,
|
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
config,
|
config,
|
||||||
outputs,
|
outputs,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
{
|
imports =
|
||||||
imports = [
|
[
|
||||||
../features/fonts
|
../features/fonts
|
||||||
# ../features/cli
|
../features/nix-helper
|
||||||
# ../features/helix
|
]
|
||||||
] ++ (builtins.attrValues outputs.homeManagerModules);
|
++ (builtins.attrValues outputs.homeManagerModules);
|
||||||
|
|
||||||
nix = {
|
nix = {
|
||||||
package = lib.mkDefault pkgs.nix;
|
package = lib.mkDefault pkgs.nix;
|
||||||
@ -51,5 +50,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;
|
||||||
@ -42,4 +44,5 @@ let
|
|||||||
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
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -6,22 +6,51 @@
|
|||||||
./features/direnv
|
./features/direnv
|
||||||
./features/topgrade
|
./features/topgrade
|
||||||
./features/neovim
|
./features/neovim
|
||||||
./features/kitty
|
./features/ghostty
|
||||||
./features/wezterm
|
./features/wezterm
|
||||||
./features/yazi
|
./features/yazi
|
||||||
./features/emacs
|
./features/emacs
|
||||||
|
|
||||||
|
# ./features/hyprland
|
||||||
./features/i3
|
./features/i3
|
||||||
./features/nix-helper
|
|
||||||
./features/desktop
|
|
||||||
|
|
||||||
./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 = "ghostty";
|
||||||
|
|
||||||
|
# --------- ---------
|
||||||
|
# | DVI-D-1 | | DVI-D-2 |
|
||||||
|
# --------- ---------
|
||||||
|
monitors = [
|
||||||
|
{
|
||||||
|
name = "DVI-D-1";
|
||||||
|
width = 1680;
|
||||||
|
height = 1050;
|
||||||
|
workspaces = [
|
||||||
|
"1"
|
||||||
|
"2"
|
||||||
|
"3"
|
||||||
|
"4"
|
||||||
|
"5"
|
||||||
|
];
|
||||||
|
primary = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "DVI-D-2";
|
||||||
|
width = 1680;
|
||||||
|
height = 1050;
|
||||||
|
workspaces = [
|
||||||
|
"6"
|
||||||
|
"7"
|
||||||
|
"8"
|
||||||
|
"9"
|
||||||
|
"10"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,4 @@
|
|||||||
{
|
{pkgs, ...}: {
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [
|
imports = [
|
||||||
./global
|
./global
|
||||||
|
|
||||||
@ -11,8 +7,7 @@
|
|||||||
./features/neovim
|
./features/neovim
|
||||||
./features/wezterm
|
./features/wezterm
|
||||||
./features/yazi
|
./features/yazi
|
||||||
./features/nix-helper
|
./features/gtk
|
||||||
./features/desktop
|
|
||||||
];
|
];
|
||||||
|
|
||||||
hostName = "pianonix";
|
hostName = "pianonix";
|
||||||
@ -34,8 +29,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
|
||||||
|
|
||||||
@ -20,6 +19,8 @@
|
|||||||
is-nixos = false;
|
is-nixos = false;
|
||||||
# terminal = "kitty";
|
# terminal = "kitty";
|
||||||
|
|
||||||
|
home.sessionPath = ["/snap/bin"];
|
||||||
|
|
||||||
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;})
|
||||||
[
|
[
|
||||||
|
@ -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
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
../common/global
|
../common/global
|
||||||
../common/users/julian
|
../common/users/julian
|
||||||
|
../common/optional/binarycaches.nix
|
||||||
|
|
||||||
../common/optional/remote-builder.nix
|
../common/optional/remote-builder.nix
|
||||||
../common/optional/boot-efi.nix
|
../common/optional/boot-efi.nix
|
||||||
@ -46,5 +47,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"
|
||||||
|
@ -1,45 +1,15 @@
|
|||||||
# 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, ...}: {
|
||||||
|
|
||||||
{
|
|
||||||
imports = [
|
imports = [
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
|
|
||||||
../common/global
|
../common/global
|
||||||
];
|
];
|
||||||
|
|
||||||
# hardware.graphics = {
|
|
||||||
# enable = true;
|
|
||||||
# extraPackages = with pkgs; [
|
|
||||||
# rocmPackages.clr.icd
|
|
||||||
# linuxPackages.amdgpu-pro
|
|
||||||
# ];
|
|
||||||
# };
|
|
||||||
|
|
||||||
# boot.kernelParams = [
|
|
||||||
# "radeon.si_support=0"
|
|
||||||
# "radeon.cik_support=1"
|
|
||||||
# "amdgpu.si_support=0"
|
|
||||||
# "amdgpu.cik_support=1"
|
|
||||||
# ];
|
|
||||||
# boot.extraModulePackages = with config.boot.kernelPackages; [ amdgpu-pro ];
|
|
||||||
# boot.blacklistedKernelModules = [ "radeon" ];
|
|
||||||
|
|
||||||
boot.loader.grub.enable = true;
|
|
||||||
boot.loader.grub.device = "/dev/sda";
|
|
||||||
|
|
||||||
# Emulated systems used as alternative to cross-compiling
|
|
||||||
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
|
|
||||||
|
|
||||||
networking.hostName = "builder";
|
networking.hostName = "builder";
|
||||||
|
system.stateVersion = "23.11";
|
||||||
modules = {
|
|
||||||
keymap.enable = true;
|
|
||||||
locales.enable = true;
|
|
||||||
sops.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
users.users.nix = {
|
users.users.nix = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
@ -47,6 +17,7 @@
|
|||||||
extraGroups = [
|
extraGroups = [
|
||||||
"networkmanager"
|
"networkmanager"
|
||||||
"wheel"
|
"wheel"
|
||||||
|
"docker"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -60,8 +31,12 @@
|
|||||||
substituters = [
|
substituters = [
|
||||||
"https://nix-community.cachix.org"
|
"https://nix-community.cachix.org"
|
||||||
"https://cache.nixos.org/"
|
"https://cache.nixos.org/"
|
||||||
|
"https://hyprland.cachix.org"
|
||||||
|
];
|
||||||
|
trusted-public-keys = [
|
||||||
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||||
|
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
|
||||||
];
|
];
|
||||||
trusted-public-keys = [ "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" ];
|
|
||||||
|
|
||||||
trusted-users = ["nix"];
|
trusted-users = ["nix"];
|
||||||
max-jobs = "auto";
|
max-jobs = "auto";
|
||||||
@ -85,17 +60,6 @@
|
|||||||
max-free = ${toString (100 * 1024 * 1024 * 1024)}
|
max-free = ${toString (100 * 1024 * 1024 * 1024)}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
vim
|
|
||||||
htop
|
|
||||||
mc
|
|
||||||
|
|
||||||
# # AMD GPU tools
|
|
||||||
# pciutils
|
|
||||||
# nvtopPackages.amd
|
|
||||||
# linuxPackages.amdgpu-pro
|
|
||||||
];
|
|
||||||
|
|
||||||
nix.nrBuildUsers = 64;
|
nix.nrBuildUsers = 64;
|
||||||
|
|
||||||
# prevent memory to get filled
|
# prevent memory to get filled
|
||||||
@ -209,8 +173,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";
|
||||||
@ -239,7 +202,7 @@
|
|||||||
|
|
||||||
sops.secrets."gitea_token" = {
|
sops.secrets."gitea_token" = {
|
||||||
owner = config.users.users.nix.name;
|
owner = config.users.users.nix.name;
|
||||||
sopsFile = ../../../secrets/secrets-builder.yaml;
|
sopsFile = ./secrets.yaml;
|
||||||
};
|
};
|
||||||
|
|
||||||
# =========== Binary Cache ==========
|
# =========== Binary Cache ==========
|
||||||
@ -249,7 +212,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
# =========== Binary Cache with attic ==========
|
# =========== Binary Cache with attic ==========
|
||||||
sops.secrets."attic_token".sopsFile = ../../../secrets/secrets-builder.yaml;
|
sops.secrets."attic_token".sopsFile = ./secrets.yaml;
|
||||||
|
|
||||||
services.atticd = {
|
services.atticd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@ -284,7 +247,16 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# ======================== DO NOT CHANGE THIS ========================
|
services.gitlab-runner.enable = true;
|
||||||
system.stateVersion = "23.11";
|
# runner for everything else
|
||||||
# ======================== DO NOT CHANGE THIS ========================
|
#
|
||||||
|
sops.secrets."gitlab_runner_token".sopsFile = ./secrets.yaml;
|
||||||
|
services.gitlab-runner.services.default = {
|
||||||
|
# File should contain at least these two variables:
|
||||||
|
authenticationTokenConfigFile = config.sops.secrets."gitlab_runner_token".path;
|
||||||
|
dockerImage = "alpine:latest";
|
||||||
|
dockerVolumes = [
|
||||||
|
"/var/run/docker.sock:/var/run/docker.sock"
|
||||||
|
];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,17 +1,4 @@
|
|||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
{lib, ...}: {
|
||||||
# and may be overwritten by future invocations. Please make changes
|
|
||||||
# to /etc/nixos/configuration.nix instead.
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
modulesPath,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [ (modulesPath + "/profiles/qemu-guest.nix") ];
|
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [
|
boot.initrd.availableKernelModules = [
|
||||||
"ata_piix"
|
"ata_piix"
|
||||||
"uhci_hcd"
|
"uhci_hcd"
|
||||||
@ -37,4 +24,27 @@
|
|||||||
# networking.interfaces.ens18.useDHCP = lib.mkDefault true;
|
# networking.interfaces.ens18.useDHCP = lib.mkDefault true;
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
|
||||||
|
# hardware.graphics = {
|
||||||
|
# enable = true;
|
||||||
|
# extraPackages = with pkgs; [
|
||||||
|
# rocmPackages.clr.icd
|
||||||
|
# linuxPackages.amdgpu-pro
|
||||||
|
# ];
|
||||||
|
# };
|
||||||
|
|
||||||
|
# boot.kernelParams = [
|
||||||
|
# "radeon.si_support=0"
|
||||||
|
# "radeon.cik_support=1"
|
||||||
|
# "amdgpu.si_support=0"
|
||||||
|
# "amdgpu.cik_support=1"
|
||||||
|
# ];
|
||||||
|
# boot.extraModulePackages = with config.boot.kernelPackages; [ amdgpu-pro ];
|
||||||
|
# boot.blacklistedKernelModules = [ "radeon" ];
|
||||||
|
|
||||||
|
boot.loader.grub.enable = true;
|
||||||
|
boot.loader.grub.device = "/dev/sda";
|
||||||
|
|
||||||
|
# Emulated systems used as alternative to cross-compiling
|
||||||
|
boot.binfmt.emulatedSystems = ["aarch64-linux"];
|
||||||
}
|
}
|
||||||
|
16
hosts/common/global/auto-upgrade.nix
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
inputs,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
system.hydraAutoUpgrade = {
|
||||||
|
# Only enable if not dirty
|
||||||
|
enable = inputs.self ? rev;
|
||||||
|
dates = "*:0/10"; # Every 10 minutes
|
||||||
|
instance = "http://hydra.julian-mutter.de";
|
||||||
|
project = "dotfiles";
|
||||||
|
jobset = "main";
|
||||||
|
job = "hosts.${config.networking.hostName}";
|
||||||
|
oldFlakeRef = "self";
|
||||||
|
};
|
||||||
|
}
|
@ -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,14 +2,13 @@
|
|||||||
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
|
||||||
overlays = builtins.attrValues outputs.overlays;
|
overlays = builtins.attrValues outputs.overlays;
|
||||||
config = {
|
config = {
|
||||||
|
nvidia.acceptLicense = true;
|
||||||
allowUnfree = true;
|
allowUnfree = true;
|
||||||
allowUnfreePredicate = _: true; # TODO: what is this
|
allowUnfreePredicate = _: true; # TODO: what is this
|
||||||
warn-dirty = false;
|
warn-dirty = false;
|
||||||
@ -27,26 +26,6 @@
|
|||||||
];
|
];
|
||||||
# warn-dirty = false;
|
# warn-dirty = false;
|
||||||
|
|
||||||
# Setup binary caches
|
|
||||||
nix.settings = {
|
|
||||||
substituters = [
|
|
||||||
"https://nix-community.cachix.org"
|
|
||||||
"https://cache.nixos.org/"
|
|
||||||
"https://hyprland.cachix.org"
|
|
||||||
"http://binarycache.julian-mutter.de"
|
|
||||||
];
|
|
||||||
trusted-public-keys = [
|
|
||||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
|
||||||
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
|
|
||||||
"binarycache.julian-mutter.de:oJ67uRFwRhNPKL58CHzy3QQLv38Kx7OA1K+6xlEPu7E="
|
|
||||||
];
|
|
||||||
|
|
||||||
trusted-users = [
|
|
||||||
"root"
|
|
||||||
"@wheel"
|
|
||||||
]; # needed for devenv to add custom caches
|
|
||||||
};
|
|
||||||
|
|
||||||
nix.gc = {
|
nix.gc = {
|
||||||
automatic = true;
|
automatic = true;
|
||||||
dates = "weekly";
|
dates = "weekly";
|
||||||
@ -61,5 +40,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,13 +2,11 @@
|
|||||||
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 = {
|
||||||
@ -17,8 +15,7 @@ in
|
|||||||
# TODO: remove? only rely on ssh or pgp keys (e.g. ubikey like misterio is using!!!)
|
# TODO: remove? only rely on ssh or pgp keys (e.g. ubikey like misterio is using!!!)
|
||||||
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 = false; # TODO: building should not work without secrets!?
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
sops.defaultSopsFile = ../secrets.yaml;
|
sops.defaultSopsFile = ../secrets.yaml;
|
||||||
|
@ -1,9 +1,14 @@
|
|||||||
{ pkgs, ... }:
|
|
||||||
{
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
# Make programs like nextcloud client access saved passwords
|
# Make programs like nextcloud client access saved passwords
|
||||||
programs.seahorse.enable = true;
|
|
||||||
services.gnome.gnome-keyring.enable = true;
|
services.gnome.gnome-keyring.enable = true;
|
||||||
|
|
||||||
|
programs.seahorse.enable = true;
|
||||||
|
programs.ssh.askPassword = lib.mkForce "${pkgs.seahorse}/libexec/seahorse/ssh-askpass"; # Solve conflicting definition in seahorse and plasma6
|
||||||
|
|
||||||
# Make authentication work for e.g. gparted
|
# Make authentication work for e.g. gparted
|
||||||
security.polkit.enable = true;
|
security.polkit.enable = true;
|
||||||
systemd = {
|
systemd = {
|
||||||
|
25
hosts/common/optional/binarycaches.nix
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
outputs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
# Setup binary caches
|
||||||
|
nix.settings = {
|
||||||
|
substituters = [
|
||||||
|
"https://nix-community.cachix.org"
|
||||||
|
"https://cache.nixos.org/"
|
||||||
|
"https://hyprland.cachix.org"
|
||||||
|
"http://binarycache.julian-mutter.de"
|
||||||
|
];
|
||||||
|
trusted-public-keys = [
|
||||||
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||||
|
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
|
||||||
|
"binarycache.julian-mutter.de:oJ67uRFwRhNPKL58CHzy3QQLv38Kx7OA1K+6xlEPu7E="
|
||||||
|
];
|
||||||
|
|
||||||
|
trusted-users = [
|
||||||
|
"root"
|
||||||
|
"@wheel"
|
||||||
|
]; # needed for devenv to add custom caches
|
||||||
|
};
|
||||||
|
}
|