Compare commits
4 Commits
bf8818fbb3
...
5bda371af0
| Author | SHA1 | Date | |
|---|---|---|---|
| 5bda371af0 | |||
| 943e2b61ad | |||
| 71b6966f2b | |||
| 68baae3092 |
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
|
||||
laptop.qcow2
|
||||
@ -7,4 +7,8 @@ git clone https://git.foglar.tech/foglar/dotfiles.git $HOME/dotfiles --depth 1
|
||||
sudo nixos-rebuild switch --flake ~/dotfiles#laptop
|
||||
```
|
||||
|
||||
```bash
|
||||
nix run github:nix-community/nixos-generators -- -c ./flake.nix --flake '#leanix' -f vm --disk-size 20480
|
||||
```
|
||||
|
||||
## Features
|
||||
|
||||
@ -54,8 +54,11 @@
|
||||
|
||||
shell = "bash"; # bash, zsh
|
||||
terminal = "kitty";
|
||||
browser = "librewolf";
|
||||
editor = "neovim";
|
||||
|
||||
theme = "catppuccin-mocha";
|
||||
# List all themes: $ nix build nixpkgs#base16-schemes && ls result/share/themes
|
||||
theme = "catppuccin-mocha"; #tokyo-night-dark, one-dark
|
||||
background = "aurora_borealis.png";
|
||||
};
|
||||
|
||||
@ -79,6 +82,7 @@
|
||||
in {
|
||||
nixosConfigurations = {
|
||||
laptop = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = {
|
||||
inherit inputs system pkgs pkgs-stable userSettings;
|
||||
};
|
||||
@ -91,6 +95,7 @@
|
||||
];
|
||||
};
|
||||
leanix = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = {
|
||||
inherit inputs system pkgs pkgs-stable userSettings;
|
||||
};
|
||||
|
||||
@ -36,8 +36,6 @@
|
||||
# Environment variables
|
||||
environment.sessionVariables = {
|
||||
FLAKE = "/home/${userSettings.username}/.dotfiles";
|
||||
|
||||
DEFAULT_BROWSER = "${pkgs.firefox}/bin/firefox";
|
||||
};
|
||||
|
||||
# System level configuration
|
||||
|
||||
@ -13,6 +13,7 @@
|
||||
home.packages =
|
||||
(with pkgs; [
|
||||
librewolf
|
||||
qutebrowser
|
||||
ferdium
|
||||
|
||||
stellarium
|
||||
|
||||
@ -27,7 +27,7 @@
|
||||
cliphist
|
||||
|
||||
(writeShellScriptBin "dontkillsteam" ''
|
||||
if [[ $(hyprctl activewindow -j | jq -r ".class") == "Steam" ]]; then
|
||||
if [[ $(hyprctl activewindow -j | ${pkgs.jq}/bin/jq -r ".class") == "Steam" ]]; then
|
||||
xdotool windowunmap $(xdotool getactivewindow)
|
||||
else
|
||||
hyprctl dispatch killactive ""
|
||||
@ -37,14 +37,14 @@
|
||||
(writeShellScriptBin "screenshot" ''
|
||||
restore_shader() {
|
||||
if [ -n "$shader" ]; then
|
||||
hyprshade on "$shader"
|
||||
${pkgs.hyprshade}/bin/hyprshade on "$shader"
|
||||
fi
|
||||
}
|
||||
|
||||
# Saves the current shader and turns it off
|
||||
save_shader() {
|
||||
shader=$(hyprshade current)
|
||||
hyprshade off
|
||||
${pkgs.hyprshade}/bin/hyprshade off
|
||||
trap restore_shader EXIT
|
||||
}
|
||||
|
||||
@ -71,7 +71,7 @@
|
||||
|
||||
(writeShellScriptBin "keyboardswitch" ''
|
||||
hyprctl switchxkblayout all next
|
||||
layMain=$(hyprctl -j devices | jq '.keyboards' | jq '.[] | select (.main == true)' | awk -F '"' '{if ($2=="active_keymap") print $4}')
|
||||
layMain=$(hyprctl -j devices | ${pkgs.jq}/bin/jq '.keyboards' | ${pkgs.jq}/bin/jq '.[] | select (.main == true)' | awk -F '"' '{if ($2=="active_keymap") print $4}')
|
||||
${libnotify}/bin/notify-send -a "t1" -r 91190 -t 800 "$layMain" -i ~/dotfiles/config/icons/keyboard.svg
|
||||
'')
|
||||
|
||||
|
||||
@ -120,16 +120,16 @@
|
||||
];
|
||||
|
||||
exec-once = [
|
||||
"discord --start-minimized"
|
||||
"vesktop --start-minimized"
|
||||
#"discord --start-minimized"
|
||||
"${pkgs.vesktop}/bin/vesktop --start-minimized"
|
||||
"${pkgs.ferdium}/bin/ferdium --minimized"
|
||||
"${pkgs.kdePackages.kdeconnect-kde}/bin/kdeconnect-indicator"
|
||||
|
||||
"systemctl --user start hyprpolkitagent"
|
||||
#"swww-daemon --format xrgb"
|
||||
#"swww ../../aurora_borealis.png"
|
||||
"hypridle"
|
||||
"waybar"
|
||||
"${pkgs.hypridle}/bin/hypridle"
|
||||
"${pkgs.waybar}/bin/waybar"
|
||||
"swayosd-server"
|
||||
|
||||
"blueman-applet"
|
||||
@ -149,7 +149,7 @@
|
||||
"$mod" = "SUPER";
|
||||
"$term" = "${pkgs.kitty}/bin/kitty";
|
||||
"$editor" = "${pkgs.vscode}/bin/code";
|
||||
"$file" = "nautilus";
|
||||
"$file" = "${pkgs.nautilus}/bin/nautilus";
|
||||
"$browser" = "${pkgs.librewolf}/bin/librewolf";
|
||||
|
||||
animations = {
|
||||
@ -226,21 +226,21 @@
|
||||
"$mod, W, togglefloating"
|
||||
"$mod, G, togglegroup"
|
||||
"Alt, Return, fullscreen"
|
||||
"$mod, Escape, exec, hyprlock"
|
||||
"$mod, Escape, exec, ${pkgs.hyprlock}/bin/hyprlock"
|
||||
#"$mod+Shift,F, exec, windowpin.sh"
|
||||
"$mod, Backspace, exec, wlogout -b 2"
|
||||
"$Ctrl+Alt, W, exec, killall waybar || waybar" # toggle waybar
|
||||
"$mod, Backspace, exec, ${pkgs.wlogout}/bin/wlogout -b 2"
|
||||
"$Ctrl+Alt, W, exec, killall waybar || ${pkgs.waybar}/bin/waybar" # toggle waybar
|
||||
|
||||
"$mod, T, exec, $term"
|
||||
"$mod, F, exec, $browser"
|
||||
"$mod, E, exec, $file"
|
||||
"$mod, C, exec, $editor"
|
||||
"Ctrl+Shift, Escape, exec, btop"
|
||||
"Ctrl+Shift, Escape, exec, ${pkgs.btop}/bin/btop"
|
||||
|
||||
# Rofi
|
||||
"$mod, A, exec, pkill -x rofi || rofi -show drun"
|
||||
"$mod, Tab, exec, pkill -x rofi || rofi -show window"
|
||||
"$mod+Shift, E, exec, pkill -x rofi || rofi -show emoji"
|
||||
"$mod, A, exec, pkill -x rofi || ${pkgs.rofi-wayland}/bin/rofi -show drun"
|
||||
"$mod, Tab, exec, pkill -x rofi || ${pkgs.rofi-wayland}/bin/rofi -show window"
|
||||
"$mod+Shift, E, exec, pkill -x rofi || ${pkgs.rofi-wayland}/bin/rofi -show emoji"
|
||||
|
||||
# Grouped Windows
|
||||
"$mod CTRL, H, changegroupactive, b"
|
||||
|
||||
@ -72,7 +72,7 @@
|
||||
programs.vscode.userSettings = {
|
||||
"[python]" = {
|
||||
"editor.defaultFormatter" = "ms-python.black-formatter";
|
||||
"python.defaultInterpreterPath" = "${pkgs.python3}";
|
||||
"python.defaultInterpreterPath" = "${pkgs.python3}/bin/python";
|
||||
};
|
||||
};
|
||||
|
||||
@ -172,6 +172,12 @@
|
||||
})
|
||||
|
||||
(lib.mkIf config.program.vscode.markdown.enable {
|
||||
programs.vscode.userSettings = {
|
||||
"[markdown]" = {
|
||||
"editor.defaultFormatter" = "DavidAnson.vscode-markdownlint";
|
||||
};
|
||||
};
|
||||
|
||||
programs.vscode.extensions = with pkgs-stable.vscode-extensions; [
|
||||
yzhang.markdown-all-in-one
|
||||
davidanson.vscode-markdownlint
|
||||
|
||||
@ -4,8 +4,7 @@
|
||||
config,
|
||||
userSettings,
|
||||
...
|
||||
}:
|
||||
{
|
||||
}: {
|
||||
options = {
|
||||
program.git.enable = lib.mkEnableOption "enable git";
|
||||
};
|
||||
|
||||
@ -5,6 +5,9 @@
|
||||
./packages/steam.nix
|
||||
./packages/tor.nix
|
||||
./packages/virtual-machines.nix
|
||||
./packages/yubikey.nix
|
||||
|
||||
./settings/default-applications.nix
|
||||
];
|
||||
|
||||
program = {
|
||||
@ -15,6 +18,7 @@
|
||||
tor.enable = lib.mkDefault true;
|
||||
virt-manager.enable = lib.mkDefault true;
|
||||
virtualbox.enable = lib.mkDefault true;
|
||||
yubikey.enable = lib.mkDefault false;
|
||||
};
|
||||
sys.desktop.steamdeck.enable = lib.mkDefault false;
|
||||
programs.kdeconnect.enable = lib.mkDefault true;
|
||||
|
||||
46
nixos/system/packages/yubikey.nix
Normal file
46
nixos/system/packages/yubikey.nix
Normal file
@ -0,0 +1,46 @@
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
options = {
|
||||
program.yubikey = {
|
||||
enable = lib.mkEnableOption "Enable YubiKey support";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.program.yubikey.enable {
|
||||
environment.systemPackages = with pkgs; [
|
||||
yubioath-flutter
|
||||
yubikey-manager
|
||||
pam_u2f
|
||||
];
|
||||
|
||||
services.pcscd = {
|
||||
enable = true;
|
||||
};
|
||||
#services.udev.packages = [pkgs.yubikey-personalization];
|
||||
#
|
||||
#services.yubikey-agent.enable = true;
|
||||
#
|
||||
#security.pam = {
|
||||
# sshAgentAuth.enable = true;
|
||||
# u2f = {
|
||||
# enable = true;
|
||||
# settings = {
|
||||
# cue = false;
|
||||
# authfile = "${config.home.homeDirectory}/.config/yubikeys/u2f_keys";
|
||||
# # debug = true;
|
||||
# };
|
||||
# };
|
||||
# services = {
|
||||
# login.u2fAuth = true;
|
||||
# sudo = {
|
||||
# u2fAuth = true;
|
||||
# sshAgentAuth = true;
|
||||
# };
|
||||
# };
|
||||
#};
|
||||
};
|
||||
}
|
||||
31
nixos/system/settings/default-applications.nix
Normal file
31
nixos/system/settings/default-applications.nix
Normal file
@ -0,0 +1,31 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
userSettings,
|
||||
...
|
||||
}: {
|
||||
options = {
|
||||
default-applications.enable = lib.mkEnableOption "Enable default applications";
|
||||
};
|
||||
|
||||
config = lib.mkIf config.default-applications.enable {
|
||||
environment.sessionVariables = {
|
||||
DEFAULT_BROWSER = "${pkgs."${userSettings.browser}"}/bin/${userSettings.browser}";
|
||||
TERMINAL = "${pkgs."${userSettings.terminal}"}/bin/${userSettings.terminal}";
|
||||
EDITOR = "${pkgs."${userSettings.editor}"}/bin/${userSettings.editor}";
|
||||
};
|
||||
|
||||
# Default applications configuration
|
||||
xdg.mime.enable = true;
|
||||
xdg.mime.defaultApplications = {
|
||||
"text/html" = "librewolf.desktop";
|
||||
"x-scheme-handler/http" = "librewolf.desktop";
|
||||
"x-scheme-handler/https" = "librewolf.desktop";
|
||||
"x-scheme-handler/about" = "librewolf.desktop";
|
||||
"x-scheme-handler/unknown" = "librewolf.desktop";
|
||||
"text/plain" = "nvim.desktop";
|
||||
"application/pdf" = "evince";
|
||||
};
|
||||
};
|
||||
}
|
||||
@ -14,8 +14,6 @@
|
||||
enable = true;
|
||||
image = ../../../config/backgrounds/${userSettings.background};
|
||||
base16Scheme = "${pkgs-stable.base16-schemes}/share/themes/${userSettings.theme}.yaml"; # List all possible themes: $ nix build nixpkgs#base16-schemes && ls result/share/themes
|
||||
#base16Scheme = "${pkgs.base16-schemes}/share/themes/onedark.yaml";
|
||||
#base16Scheme = "${pkgs.base16-schemes}/share/themes/tokyo-night-dark.yaml";
|
||||
polarity = "dark";
|
||||
autoEnable = true;
|
||||
|
||||
|
||||
@ -38,8 +38,6 @@
|
||||
# Environment variables
|
||||
environment.sessionVariables = {
|
||||
FLAKE = "/home/${userSettings.username}/dotfiles";
|
||||
|
||||
DEFAULT_BROWSER = "${pkgs.librewolf}/bin/librewolf";
|
||||
};
|
||||
|
||||
# System level configuration
|
||||
@ -76,24 +74,13 @@
|
||||
tor.enable = true;
|
||||
virt-manager.enable = true;
|
||||
virtualbox.enable = false;
|
||||
yubikey.enable = true;
|
||||
};
|
||||
|
||||
# Basic programs to enable
|
||||
programs.kdeconnect.enable = true;
|
||||
programs.wireshark.enable = true;
|
||||
|
||||
# Default applications configuration
|
||||
xdg.mime.enable = true;
|
||||
xdg.mime.defaultApplications = {
|
||||
"text/html" = "librewolf.desktop";
|
||||
"x-scheme-handler/http" = "librewolf.desktop";
|
||||
"x-scheme-handler/https" = "librewolf.desktop";
|
||||
"x-scheme-handler/about" = "librewolf.desktop";
|
||||
"x-scheme-handler/unknown" = "librewolf.desktop";
|
||||
"text/plain" = "nvim.desktop";
|
||||
"application/pdf" = "evince";
|
||||
};
|
||||
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user