format code

current_state
Christian Ott 1 year ago
parent 44e64ef028
commit 73e71df821
  1. 78
      configuration.nix
  2. 66
      disko.nix
  3. 25
      flake.nix
  4. 10
      greeter.nix
  5. 25
      hardware-configuration.nix
  6. 27
      home.nix
  7. 100
      hyperland/default.nix
  8. 5
      modules/dunst.nix
  9. 130
      modules/ranger.nix
  10. 1306
      modules/waybar.nix

@ -2,18 +2,27 @@
# your system. Help is available in the configuration.nix(5) man page, on
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
{ config, lib, pkgs, ronema, xdph, ... }:
{
config,
lib,
pkgs,
ronema,
xdph,
...
}:
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
"${builtins.fetchTarball {
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
"${
builtins.fetchTarball {
url = "https://github.com/nix-community/disko/archive/refs/tags/v1.6.1.tar.gz";
sha256 = "1p9vsml07bm3riw703dv83ihlmgyc11qv882qa6bqzqdgn86y8z4";
}}/module.nix"
./disko.nix
];
}
}/module.nix"
./disko.nix
];
boot.kernelPackages = pkgs.linuxPackages_latest;
# Use the systemd-boot EFI boot loader.
@ -28,16 +37,16 @@
};
# Pick only one of the below networking options.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
networking.networkmanager.plugins = [ pkgs.networkmanager-openvpn ];
networking.networkmanager.dns = "dnsmasq";
environment.etc."NetworkManager/dnsmasq.d/00-cave.conf".text = ''
server=/.mibex.ch/172.31.13.27
server=/huus/192.168.15.2
server=192.168.15.2
server=192.168.50.1
server=1.1.1.1
server=/.mibex.ch/172.31.13.27
server=/huus/192.168.15.2
server=192.168.15.2
server=192.168.50.1
server=1.1.1.1
'';
# Set your time zone.
time.timeZone = "Europe/Zurich";
@ -55,16 +64,21 @@
# };
# https://nixos.wiki/wiki/Fonts fonts with icons
fonts.packages = with pkgs;
[
font-awesome
(nerdfonts.override {fonts = ["JetBrainsMono" "CascadiaCode" "FiraCode"];})
];
fonts.packages = with pkgs; [
font-awesome
(nerdfonts.override {
fonts = [
"JetBrainsMono"
"CascadiaCode"
"FiraCode"
];
})
];
fonts.fontconfig = {
defaultFonts = {
monospace = ["CaskaydiaCove Nerd Font Mono"];
sansSerif = ["CascadiaCode Nerd Font"];
serif = ["CascadiaCode Nerd Font"];
monospace = [ "CaskaydiaCove Nerd Font Mono" ];
sansSerif = [ "CascadiaCode Nerd Font" ];
serif = [ "CascadiaCode Nerd Font" ];
};
};
@ -126,7 +140,11 @@
# Define a user account. Don't forget to set a password with ‘passwd’.
users.users.chrigi = {
isNormalUser = true;
extraGroups = [ "wheel" "networkmanager" "docker"];
extraGroups = [
"wheel"
"networkmanager"
"docker"
];
initialPassword = "password";
packages = with pkgs; [
firefox
@ -176,14 +194,18 @@
};
programs._1password-gui = {
enable = true;
polkitPolicyOwners = ["chrigi"];
polkitPolicyOwners = [ "chrigi" ];
};
security.polkit.enable = true;
services.gnome.gnome-keyring.enable = true;
security.pam.services.greetd.enableGnomeKeyring = true;
nix.gc = { automatic = true; dates = "weekly"; options = "--delete-older-than 7d"; };
nix.gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 7d";
};
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
@ -229,8 +251,10 @@
nix = {
# package = pkgs.nix;
settings.experimental-features = ["nix-command" "flakes"];
settings.experimental-features = [
"nix-command"
"flakes"
];
};
}

@ -30,9 +30,17 @@
bypassWorkqueues = true;
keyFile = "/tmp/yk/yk_mini.key";
};
additionalKeyFiles = [ "/tmp/yk/yk_the_big_one.key" "/tmp/yk/yk_on_key.key" "/tmp/yk/yk_round.key" ];
additionalKeyFiles = [
"/tmp/yk/yk_the_big_one.key"
"/tmp/yk/yk_on_key.key"
"/tmp/yk/yk_round.key"
];
# https://github.com/sgillespie/nixos-yubikey-luks
extraFormatArgs = [ "--cipher=aes-xts-plain64" "--key-size=512" "--hash=sha512" ];
extraFormatArgs = [
"--cipher=aes-xts-plain64"
"--key-size=512"
"--hash=sha512"
];
initrdUnlock = false; # we have to add it manually because of the yubikeys
content = {
type = "btrfs";
@ -41,23 +49,48 @@
"/root" = {
mountpoint = "/";
# https://unix.stackexchange.com/questions/752741/what-is-the-mount-option-space-cache-v2
mountOptions = [ "compress=zstd" "noatime" "space_cache=v2" "commit=120"];
mountOptions = [
"compress=zstd"
"noatime"
"space_cache=v2"
"commit=120"
];
};
"/home" = {
mountpoint = "/home";
mountOptions = [ "compress=zstd" "noatime" "space_cache=v2" "commit=120"];
mountOptions = [
"compress=zstd"
"noatime"
"space_cache=v2"
"commit=120"
];
};
"/nix" = {
mountpoint = "/nix";
mountOptions = [ "compress=zstd" "noatime" "space_cache=v2" "commit=120"];
mountOptions = [
"compress=zstd"
"noatime"
"space_cache=v2"
"commit=120"
];
};
"/var" = {
mountpoint = "/var";
mountOptions = [ "compress=zstd" "noatime" "space_cache=v2" "commit=120"];
mountOptions = [
"compress=zstd"
"noatime"
"space_cache=v2"
"commit=120"
];
};
"/docker-btrfs" = {
mountpoint = "/var/lib/docker/btrfs";
mountOptions = [ "compress=zstd" "noatime" "space_cache=v2" "commit=120"];
mountOptions = [
"compress=zstd"
"noatime"
"space_cache=v2"
"commit=120"
];
};
};
};
@ -91,8 +124,16 @@
bypassWorkqueues = true;
keyFile = "/tmp/yk/yk_mini.key";
};
additionalKeyFiles = [ "/tmp/yk/yk_the_big_one.key" "/tmp/yk/yk_on_key.key" "/tmp/yk/yk_round.key" ];
extraFormatArgs = [ "--cipher=aes-xts-plain64" "--key-size=512" "--hash=sha512" ];
additionalKeyFiles = [
"/tmp/yk/yk_the_big_one.key"
"/tmp/yk/yk_on_key.key"
"/tmp/yk/yk_round.key"
];
extraFormatArgs = [
"--cipher=aes-xts-plain64"
"--key-size=512"
"--hash=sha512"
];
initrdUnlock = false; # we have to add it manually because of the yubikeys
content = {
type = "btrfs";
@ -100,7 +141,12 @@
subvolumes = {
"/backup" = {
mountpoint = "/backup";
mountOptions = [ "compress=zstd" "noatime" "space_cache=v2" "commit=120"];
mountOptions = [
"compress=zstd"
"noatime"
"space_cache=v2"
"commit=120"
];
};
};
};

@ -10,7 +10,7 @@
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager = {
url = github:nix-community/home-manager;
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
ronema = {
@ -19,7 +19,17 @@
};
};
outputs = { self, nixpkgs, nixos-hardware, home-manager, nix-colors, ronema, xdph, ... }@inputs:
outputs =
{
self,
nixpkgs,
nixos-hardware,
home-manager,
nix-colors,
ronema,
xdph,
...
}@inputs:
let
username = "chrigi";
lib = nixpkgs.lib;
@ -29,7 +39,8 @@
inherit system;
config.allowUnfree = true;
};
in {
in
{
nixosConfigurations.nix-fw16 = lib.nixosSystem {
specialArgs = {
inherit pkgs ronema xdph;
@ -38,14 +49,16 @@
./configuration.nix
./greeter.nix
nixos-hardware.nixosModules.framework-16-7040-amd
home-manager.nixosModules.home-manager {
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.${username} = import ./home.nix;
home-manager.extraSpecialArgs = {inherit username nix-colors; };
home-manager.extraSpecialArgs = {
inherit username nix-colors;
};
}
];
};
};
}

@ -1,4 +1,9 @@
{ config, pkgs, lib, ... }:
{
config,
pkgs,
lib,
...
}:
let
tuigreet = "${pkgs.greetd.tuigreet}/bin/tuigreet";
@ -16,7 +21,8 @@ let
terminal = true;
};
in {
in
{
services.greetd = {
enable = true;

@ -1,18 +1,29 @@
# Do not modify this file! It was generated by ‘nixos-generate-config’
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
config,
lib,
pkgs,
modulesPath,
...
}:
{
disabledModules = ["system/boot/luksroot.nix"];
disabledModules = [ "system/boot/luksroot.nix" ];
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
./my-luksroot.nix
];
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
./my-luksroot.nix
];
boot.initrd = {
kernelModules = ["vfat" "nls_cp437" "nls_iso8859-1" "usbhid"];
kernelModules = [
"vfat"
"nls_cp437"
"nls_iso8859-1"
"usbhid"
];
luks = {
yubikeySupport = true;

@ -1,4 +1,10 @@
{ config, pkgs, nix-colors, username, ... }:
{
config,
pkgs,
nix-colors,
username,
...
}:
{
imports = [
@ -14,7 +20,6 @@
home.username = "${username}";
home.homeDirectory = "/home/${username}";
# Packages that should be installed to the user profile.
home.packages = with pkgs; [
kitty
@ -42,11 +47,16 @@
nextcloud-client
font-awesome
(nerdfonts.override {fonts = ["JetBrainsMono" "CascadiaCode" "FiraCode"];})
(nerdfonts.override {
fonts = [
"JetBrainsMono"
"CascadiaCode"
"FiraCode"
];
})
];
programs.ssh = {
enable = true;
extraConfig = ''
@ -62,7 +72,13 @@
programs.bash = {
enable = true;
historyIgnore = [ "l" "ls" "ll" "cd" "exit" ];
historyIgnore = [
"l"
"ls"
"ll"
"cd"
"exit"
];
historyControl = [ "erasedups" ];
shellAliases = {
grep = "grep --color=auto";
@ -81,7 +97,6 @@
'';
};
programs.starship = {
enable = true;
enableBashIntegration = true;

@ -1,4 +1,9 @@
{ config, pkgs, username, ... }:
{
config,
pkgs,
username,
...
}:
let
volumeChange = pkgs.writeShellScript "volume-change" ''
# FROM: https://github.com/jsimonrichard/nix-config/blob/master/modules/my-config/desktop/hyprland/home-manager/desktop/hyprland/keybinds.nix
@ -51,7 +56,7 @@ in
};
};
programs.hyprlock = {
programs.hyprlock = {
enable = true;
settings = {
background = {
@ -62,7 +67,7 @@ in
blur_passes = 1;
blur_size = 7;
noise = 0.0117;
noise = 1.17e-2;
contrast = 0.8916;
brightness = 0.8172;
vibrancy = 0.1696;
@ -112,7 +117,7 @@ in
shadow_size = 10;
}
{
{
monitor = "";
text = "$USER";
color = "rgba(200, 200, 200, 1.0)";
@ -177,7 +182,7 @@ in
wayland.windowManager.hyprland.enable = true;
wayland.windowManager.hyprland.settings = {
monitor=[
monitor = [
"eDP-1,2560x1600@60.00Hz,0x0,1"
"DP-3,preferred,-3840x-560,1"
"DP-2,preferred,auto,1.5"
@ -204,7 +209,6 @@ in
"$mod, mouse:273, resizewindow"
];
bind =
[
"$mod, F, exec, firefox"
@ -222,52 +226,56 @@ in
++ (
# workspaces
# binds $mod + [shift +] {1..10} to [move to] workspace {1..10}
builtins.concatLists (builtins.genList (
x: let
ws = let
c = (x + 1) / 10;
in
builtins.concatLists (
builtins.genList (
x:
let
ws =
let
c = (x + 1) / 10;
in
builtins.toString (x + 1 - (c * 10));
in [
in
[
"$mod, ${ws}, workspace, ${toString (x + 1)}"
"$mod SHIFT, ${ws}, movetoworkspace, ${toString (x + 1)}"
]
)
10)
) 10
)
);
windowrulev2= [
# https://jbmorley.co.uk/posts/2024-02-13-1password-and-hyprland/
"float, title:(1Password)"
"size 70% 70%, title:(1Password)"
"center, title:(1Password)"
windowrulev2 = [
# https://jbmorley.co.uk/posts/2024-02-13-1password-and-hyprland/
"float, title:(1Password)"
"size 70% 70%, title:(1Password)"
"center, title:(1Password)"
"float,class:(.blueman-manager-wrapped)"
"size 25% 25%,class:(.blueman-manager-wrapped)"
"float,class:(.blueman-manager-wrapped)"
"size 25% 25%,class:(.blueman-manager-wrapped)"
"float,class:(org.kde.polkit-kde-authentication-agent-1)"
"opacity 0.80 0.70,class:^(org.kde.polkit-kde-authentication-agent-1)$"
"bordercolor rgba(ed8796FF), class:org.kde.polkit-kde-authentication-agent-1"
"dimaround, class:org.kde.polkit-kde-authentication-agent-1"
"stayfocused, class:org.kde.polkit-kde-authentication-agent-1"
];
# Bind flags
# l -> locked, will also work when an input inhibitor (e.g. a lockscreen) is active.
# r -> release, will trigger on release of a key.
# e -> repeat, will repeat when held.
# n -> non-consuming, key/mouse events will be passed to the active window in addition to triggering the dispatcher.
# m -> mouse, see below
# t -> transparent, cannot be shadowed by other binds.
# i -> ignore mods, will ignore modifiers.
binde = [
", XF86AudioRaiseVolume, exec, ${volumeChange} set-volume @DEFAULT_AUDIO_SINK@ 5%+ --limit 1.3"
"CTRL, XF86AudioRaiseVolume, exec, ${volumeChange} set-volume @DEFAULT_AUDIO_SOURCE@ 5%+ --limit 1"
];
bindle = [
", XF86AudioLowerVolume, exec, ${volumeChange} set-volume @DEFAULT_AUDIO_SINK@ 5%-"
"CTRL, XF86AudioLowerVolume, exec, ${volumeChange} set-volume @DEFAULT_AUDIO_SOURCE@ 5%-"
];
bindl = [
", XF86AudioMute, exec, ${volumeChange} set-mute @DEFAULT_AUDIO_SINK@ toggle"
];
"float,class:(org.kde.polkit-kde-authentication-agent-1)"
"opacity 0.80 0.70,class:^(org.kde.polkit-kde-authentication-agent-1)$"
"bordercolor rgba(ed8796FF), class:org.kde.polkit-kde-authentication-agent-1"
"dimaround, class:org.kde.polkit-kde-authentication-agent-1"
"stayfocused, class:org.kde.polkit-kde-authentication-agent-1"
];
# Bind flags
# l -> locked, will also work when an input inhibitor (e.g. a lockscreen) is active.
# r -> release, will trigger on release of a key.
# e -> repeat, will repeat when held.
# n -> non-consuming, key/mouse events will be passed to the active window in addition to triggering the dispatcher.
# m -> mouse, see below
# t -> transparent, cannot be shadowed by other binds.
# i -> ignore mods, will ignore modifiers.
binde = [
", XF86AudioRaiseVolume, exec, ${volumeChange} set-volume @DEFAULT_AUDIO_SINK@ 5%+ --limit 1.3"
"CTRL, XF86AudioRaiseVolume, exec, ${volumeChange} set-volume @DEFAULT_AUDIO_SOURCE@ 5%+ --limit 1"
];
bindle = [
", XF86AudioLowerVolume, exec, ${volumeChange} set-volume @DEFAULT_AUDIO_SINK@ 5%-"
"CTRL, XF86AudioLowerVolume, exec, ${volumeChange} set-volume @DEFAULT_AUDIO_SOURCE@ 5%-"
];
bindl = [
", XF86AudioMute, exec, ${volumeChange} set-mute @DEFAULT_AUDIO_SINK@ toggle"
];
};
}

@ -2,7 +2,8 @@
inputs,
config,
...
}:{
}:
{
services.dunst = {
enable = true;
settings = {
@ -54,7 +55,7 @@
title = "Dunst";
class = "Dunst";
corner_radius = 10;
icon_corner_radius= 5;
icon_corner_radius = 5;
notification_limit = 5;
mouse_left_click = "close_current";
mouse_middle_click = "do_action";

@ -1,70 +1,72 @@
{pkgs, ...}:
{ pkgs, ... }:
{
# stolen from: https://github.com/leoperegrino/.files/blob/d996b31a0b1843f05d0f27123196bfa6d0980caa/home-manager/modules/ranger.nix
programs.ranger = {
enable = true;
extraPackages = [
pkgs.ueberzugpp
];
extraConfig = "default_linemode devicons";
plugins = [{
name = "devicons";
src = builtins.fetchGit {
url = "https://github.com/alexanderjeurissen/ranger_devicons.git";
rev = "a8d626485ca83719e1d8d5e32289cd96a097c861";
};
}];
settings = {
preview_images_method = "ueberzug";
show_hidden = true;
use_preview_script = true;
preview_images = true;
preview_files = true;
open_all_images = true;
draw_borders = true;
hidden_filter = ''^\.|\.(bak|swp)$|^lost\+found$|^__pycache__$'';
nested_ranger_warning = true;
colorscheme = "jungle";
};
# mappings = {
# "gu" = "cd ~/.local/share";
# "gs" = "cd ~/.local/state";
# "gf" = "cd ~/.files";
# "gV" = "cd ~/.files/nvim/lua/user/";
# "gc" = "cd ~/.config";
# "gC" = "cd ~/.cache";
# "gb" = "cd ~/bin";
# "gD" = "cd ~/desktop";
# "gd" = "cd ~/documents";
# "gm" = "cd ~/music";
# "gp" = "cd ~/pictures";
# "gv" = "cd ~/videos";
# "gU" = "cd /usr/share/";
# "gr" = "cd /";
# "gt" = "cd /tmp";
# "g/r" = "shell sudo ranger .";
enable = true;
extraPackages = [
pkgs.ueberzugpp
];
extraConfig = "default_linemode devicons";
plugins = [
{
name = "devicons";
src = builtins.fetchGit {
url = "https://github.com/alexanderjeurissen/ranger_devicons.git";
rev = "a8d626485ca83719e1d8d5e32289cd96a097c861";
};
}
];
settings = {
preview_images_method = "ueberzug";
show_hidden = true;
use_preview_script = true;
preview_images = true;
preview_files = true;
open_all_images = true;
draw_borders = true;
hidden_filter = ''^\.|\.(bak|swp)$|^lost\+found$|^__pycache__$'';
nested_ranger_warning = true;
colorscheme = "jungle";
};
# mappings = {
# "gu" = "cd ~/.local/share";
# "gs" = "cd ~/.local/state";
# "gf" = "cd ~/.files";
# "gV" = "cd ~/.files/nvim/lua/user/";
# "gc" = "cd ~/.config";
# "gC" = "cd ~/.cache";
# "gb" = "cd ~/bin";
# "gD" = "cd ~/desktop";
# "gd" = "cd ~/documents";
# "gm" = "cd ~/music";
# "gp" = "cd ~/pictures";
# "gv" = "cd ~/videos";
# "gU" = "cd /usr/share/";
# "gr" = "cd /";
# "gt" = "cd /tmp";
# "g/r" = "shell sudo ranger .";
# "ev" = ''shell "''${EDITOR}" -- %s'';
# "eV" = ''console shell "''${EDITOR}" --%space'';
# "et" = ''shell "''${EDITOR}" -p -- %s'';
# "eT" = ''console shell "''${EDITOR}" -p -- %s%space'';
# "es" = ''shell "''${EDITOR}" -O -- %s'';
# "eS" = ''console shell "''${EDITOR}" -O -- %s%space'';
# "EV" = ''shell sudo "''${EDITOR}" -- %s'';
# "V" = ''shell setsid -f alacritty -e zsh -ic "''${EDITOR} -- %s"'';
# "B" = ''shell setsid -f alacritty -e zsh -ic "''${PAGER} -- %s"'';
# "<c-o>" = "console touch%space";
# "ev" = ''shell "''${EDITOR}" -- %s'';
# "eV" = ''console shell "''${EDITOR}" --%space'';
# "et" = ''shell "''${EDITOR}" -p -- %s'';
# "eT" = ''console shell "''${EDITOR}" -p -- %s%space'';
# "es" = ''shell "''${EDITOR}" -O -- %s'';
# "eS" = ''console shell "''${EDITOR}" -O -- %s%space'';
# "EV" = ''shell sudo "''${EDITOR}" -- %s'';
# "V" = ''shell setsid -f alacritty -e zsh -ic "''${EDITOR} -- %s"'';
# "B" = ''shell setsid -f alacritty -e zsh -ic "''${PAGER} -- %s"'';
# "<c-o>" = "console touch%space";
# "CC" = "get_cumulative_size";
# "md" = "console mkdir%space";
# "cW" = "bulkrename";
# "i" = ''shell "''${PAGER}" -- %f'';
# "v" = "mark_files all=True toggle=True";
# "n" = "tab_new";
# "b" = ''shell setsid -f "''${TERM}"'';
# "f" = "console scout -ftse%space";
# "<c-j>" = "scroll_preview 1";
# "<c-k>" = "scroll_preview -1";
# };
};
# "CC" = "get_cumulative_size";
# "md" = "console mkdir%space";
# "cW" = "bulkrename";
# "i" = ''shell "''${PAGER}" -- %f'';
# "v" = "mark_files all=True toggle=True";
# "n" = "tab_new";
# "b" = ''shell setsid -f "''${TERM}"'';
# "f" = "console scout -ftse%space";
# "<c-j>" = "scroll_preview 1";
# "<c-k>" = "scroll_preview -1";
# };
};
}

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save

Powered by TurnKey Linux.