format the repo files

This commit is contained in:
2026-04-26 10:27:50 +02:00
parent 92fd97c9a2
commit b319cd93e9
116 changed files with 4726 additions and 4247 deletions

View File

@@ -1,16 +1,29 @@
{ pkgs, lib, config, ... }:
with lib;
{
# NOTE: Dynamic imports based on option values are not supported in NixOS modules.
# To conditionally load a WM, either import all WM modules and use mkIf in each,
# or select the WM module directly in the host configuration.
imports = [];
pkgs,
lib,
config,
...
}:
with lib; {
# NOTE: Dynamic imports based on option values are not supported in NixOS modules.
# To conditionally load a WM, either import all WM modules and use mkIf in each,
# or select the WM module directly in the host configuration.
imports = [];
options = {
desktop = {
wm = mkOption { type = types.str; default = "sway"; };
taskbar = mkOption { type = types.str; default = "waybar"; };
launcher = mkOption { type = types.str; default = "bemenu"; };
};
options = {
desktop = {
wm = mkOption {
type = types.str;
default = "sway";
};
taskbar = mkOption {
type = types.str;
default = "waybar";
};
launcher = mkOption {
type = types.str;
default = "bemenu";
};
};
};
}

View File

@@ -10,8 +10,10 @@
# └─ ./gnome
# └─ home.nix *
#
{ config, lib, pkgs, ... }:
{
config,
lib,
pkgs,
...
}: {
}

View File

@@ -10,18 +10,20 @@
# └─ ./sway
# └─ home.nix *
#
{ config, lib, pkgs, ... }:
{
config,
lib,
pkgs,
...
}: {
programs = {
swaylock = {
enable = true;
settings = {
color = "000000";
image = "$HOME/.config/lockwall";
indicator-caps-lock = true;
show-keyboard-layout = true;
color = "000000";
image = "$HOME/.config/lockwall";
indicator-caps-lock = true;
show-keyboard-layout = true;
};
};
};
@@ -30,12 +32,24 @@
swayidle = {
enable = true;
events = [
{ event = "before-sleep"; command = "${pkgs.swaylock}/bin/swaylock"; }
{ event = "lock"; command = "${pkgs.swaylock}/bin/swaylock -fF"; }
{
event = "before-sleep";
command = "${pkgs.swaylock}/bin/swaylock";
}
{
event = "lock";
command = "${pkgs.swaylock}/bin/swaylock -fF";
}
];
timeouts = [
{ timeout = 300; command = "${pkgs.swaylock}/bin/swaylock -fF"; }
{ timeout = 600; command = "${pkgs.niri}/bin/niri msg action power-off-monitors"; }
{
timeout = 300;
command = "${pkgs.swaylock}/bin/swaylock -fF";
}
{
timeout = 600;
command = "${pkgs.niri}/bin/niri msg action power-off-monitors";
}
];
};
};
@@ -43,5 +57,4 @@
xdg.configFile = {
"niri/config.kdl".source = ./config.kdl;
};
}

View File

@@ -10,33 +10,37 @@
# └─ ./gnome
# └─ default.nix *
#
{ config, lib, user, pkgs, jovian-nixos, ... }:
{
imports = [
(jovian-nixos + "/modules")
];
config,
lib,
user,
pkgs,
jovian-nixos,
...
}: {
imports = [
(jovian-nixos + "/modules")
];
jovian = {
steam = {
enable = true;
user = "kabbone";
autoStart = true;
desktopSession = "plasma";
};
devices.steamdeck = {
enable = true;
};
decky-loader.enable = true;
jovian = {
steam = {
enable = true;
user = "kabbone";
autoStart = true;
desktopSession = "plasma";
};
hardware.graphics = {
enable = true;
enable32Bit = true;
devices.steamdeck = {
enable = true;
};
decky-loader.enable = true;
};
environment.systemPackages = with pkgs; [
steamdeck-firmware
];
hardware.graphics = {
enable = true;
enable32Bit = true;
};
environment.systemPackages = with pkgs; [
steamdeck-firmware
];
}

View File

@@ -10,9 +10,12 @@
# └─ ./steam
# └─ home.nix *
#
{ config, lib, pkgs, ... }:
{
config,
lib,
pkgs,
...
}: {
home = {
packages = with pkgs; [
steam

View File

@@ -10,18 +10,22 @@
# └─ ./hyprland
# └─ hyprland.nix *
#
{ config, lib, user, pkgs, desktop, ... }:
{
imports = [ ../waybar.nix ];
config,
lib,
user,
pkgs,
desktop,
...
}: {
imports = [../waybar.nix];
environment = {
loginShellInit = ''
if [ -z $DISPLAY ] && [ $UID != 0 ] && [ "$(tty)" = "/dev/tty1" ]; then
exec sway
fi
''; # Will automatically open sway when logged into tty1
''; # Will automatically open sway when logged into tty1
systemPackages = with pkgs; [
xdg-desktop-portal-wlr
sway
@@ -42,7 +46,7 @@
programs = {
sway.enable = true;
sway.extraSessionCommands = ''
sway.extraSessionCommands = ''
export MOZ_ENABLE_WAYLAND="1";
export MOZ_WEBRENDER="1";
export MOZ_USE_XINPUT2="2";
@@ -65,9 +69,10 @@
security.pam.services.swaylock = {};
xdg.portal = { # Required for flatpak with windowmanagers
xdg.portal = {
# Required for flatpak with windowmanagers
enable = true;
wlr.enable = true;
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
extraPortals = [pkgs.xdg-desktop-portal-gtk];
};
}

View File

@@ -10,229 +10,251 @@
# └─ ./sway
# └─ home.nix *
#
{ config, lib, pkgs, ... }:
{
config,
lib,
pkgs,
...
}: {
wayland.windowManager.sway = {
enable = true;
checkConfig = false;
config = rec {
menu = "${pkgs.rofi}/bin/rofi -show combi -show-icons";
left = "m";
down = "n";
up = "e";
right = "i";
modifier = "Mod4";
floating.modifier = "Mod4";
floating.titlebar = true;
input = {
"type:keyboard" = {
xkb_layout = "us,de";
xkb_variant = "altgr-intl,";
xkb_options = "grp:win_space_toggle";
};
"type:touchpad" = {
tap = "enabled";
natural_scroll = "disabled";
drag = "enabled";
dwt = "enabled";
middle_emulation = "enabled";
scroll_method = "two_finger";
tap_button_map = "lmr";
};
enable = true;
checkConfig = false;
config = rec {
menu = "${pkgs.rofi}/bin/rofi -show combi -show-icons";
left = "m";
down = "n";
up = "e";
right = "i";
modifier = "Mod4";
floating.modifier = "Mod4";
floating.titlebar = true;
input = {
"type:keyboard" = {
xkb_layout = "us,de";
xkb_variant = "altgr-intl,";
xkb_options = "grp:win_space_toggle";
};
output = {
"*" = {
bg = "$HOME/.config/wall fill";
};
#"HDMI-A-1" = {
# mode = "2560x1440";
# pos = "0,0";
# #scale = "1.1";
#};
"DP-2" = {
mode = "2560x1440";
pos = "0,250";
};
"DP-3" = {
mode = "1920x1200";
pos = "2560,0";
transform = "90";
};
#"eDP-1" = {
# mode = "1920x1080";
# #pos = "4480,0";
# pos = "2560,0";
# subpixel = "none";
# scale = "1.3";
#};
"type:touchpad" = {
tap = "enabled";
natural_scroll = "disabled";
drag = "enabled";
dwt = "enabled";
middle_emulation = "enabled";
scroll_method = "two_finger";
tap_button_map = "lmr";
};
};
terminal = "${pkgs.alacritty}/bin/alacritty";
fonts = {
names = [ "Cascadia Code" ];
size = 10.0;
output = {
"*" = {
bg = "$HOME/.config/wall fill";
};
colors.focused = {
background = "#212121";
border = "#999999";
childBorder = "#999999";
indicator = "#999999";
text = "#FFFFFF";
#"HDMI-A-1" = {
# mode = "2560x1440";
# pos = "0,0";
# #scale = "1.1";
#};
"DP-2" = {
mode = "2560x1440";
pos = "0,250";
};
startup = [
{ command = "exec ${pkgs.rot8}/bin/rot8 -Y -k"; }
{ command = "xrdb -load ~/.Xresources"; }
# { command = "gsettings set org.gnome.desktop.interface gtk-theme Dracula"; }
# { command = "gsettings set org.gnome.desktop.interface icon-theme Dracula"; }
# { command = "gsettings set org.gnome.desktop.interface cursor-theme Adwaita"; }
#{ command = "exec ${pkgs.networkmanagerapplet}/bin/nm-applet --indicator"; }
{ command = "${pkgs.thunderbird}/bin/thunderbird"; }
{ command = "${pkgs.firefox}/bin/firefox"; }
{ command = "${pkgs.element-desktop}/bin/element-desktop"; }
];
workspaceAutoBackAndForth = true;
gaps.inner = 8;
gaps.outer = 4;
gaps.smartGaps = true;
gaps.smartBorders = "on";
assigns = {
"workspace number 1" = [{ app_id = "thunderbird"; }];
"workspace number 2" = [{ app_id = "firefox"; }];
"workspace number 3" = [{ app_id = "Element"; }];
"DP-3" = {
mode = "1920x1200";
pos = "2560,0";
transform = "90";
};
#"eDP-1" = {
# mode = "1920x1080";
# #pos = "4480,0";
# pos = "2560,0";
# subpixel = "none";
# scale = "1.3";
#};
};
window.commands = [
{ command = "floating enable"; criteria = { app_id = ".yubioath-flutter-wrapped"; }; }
{ command = "floating enable"; criteria = { app_id = "pavucontrol"; }; }
{ command = "floating enable"; criteria = { app_id = "galculator"; }; }
{ command = "floating enable"; criteria = { app_id = "com.nitrokey."; }; }
{ command = "floating enable"; criteria = { app_id = "org.keepassxc.KeePassXC."; }; }
{ command = "floating enable"; criteria = { app_id = "virt-manager"; }; }
{ command = "floating enable"; criteria = { title = "^OpenSSH Authentication"; }; }
{ command = "floating enable"; criteria = { class = "pop-up"; }; }
];
bars = [
{ command = "${pkgs.waybar}/bin/waybar"; }
];
terminal = "${pkgs.alacritty}/bin/alacritty";
defaultWorkspace = "workspace number 2";
fonts = {
names = ["Cascadia Code"];
size = 10.0;
};
keybindings =
let
mod = config.wayland.windowManager.sway.config.modifier;
alt = "Mod1";
left = config.wayland.windowManager.sway.config.left;
down = config.wayland.windowManager.sway.config.down;
up = config.wayland.windowManager.sway.config.up;
right = config.wayland.windowManager.sway.config.right;
in
{
"${mod}+Escape" = "exec swaymsg exit"; # Exit Sway
"${mod}+Return" = "exec ${terminal}"; # Open terminal
"${mod}+d" = "exec ${menu}"; # Open menu
"${mod}+l" = "exec ${pkgs.swaylock}/bin/swaylock"; # Lock Screen
colors.focused = {
background = "#212121";
border = "#999999";
childBorder = "#999999";
indicator = "#999999";
text = "#FFFFFF";
};
"${mod}+r" = "reload"; # Reload environment
"${mod}+q" = "kill"; # Kill container
startup = [
{command = "exec ${pkgs.rot8}/bin/rot8 -Y -k";}
{command = "xrdb -load ~/.Xresources";}
# { command = "gsettings set org.gnome.desktop.interface gtk-theme Dracula"; }
# { command = "gsettings set org.gnome.desktop.interface icon-theme Dracula"; }
# { command = "gsettings set org.gnome.desktop.interface cursor-theme Adwaita"; }
#{ command = "exec ${pkgs.networkmanagerapplet}/bin/nm-applet --indicator"; }
{command = "${pkgs.thunderbird}/bin/thunderbird";}
{command = "${pkgs.firefox}/bin/firefox";}
{command = "${pkgs.element-desktop}/bin/element-desktop";}
];
"${mod}+Shift+f" = "exec ${pkgs.pcmanfm}/bin/pcmanfm"; # File Manager
workspaceAutoBackAndForth = true;
gaps.inner = 8;
gaps.outer = 4;
gaps.smartGaps = true;
gaps.smartBorders = "on";
"${alt}+${left}" = "workspace prev_on_output"; # Navigate to previous or next workspace on output if it exists
"${alt}+${right}" = "workspace next_on_output";
"${alt}+Shift+${left}" = "move container to workspace prev, workspace prev"; # Move container to next available workspace and focus
"${alt}+Shift+${right}" = "move container to workspace next, workspace next";
assigns = {
"workspace number 1" = [{app_id = "thunderbird";}];
"workspace number 2" = [{app_id = "firefox";}];
"workspace number 3" = [{app_id = "Element";}];
};
"XF86TouchpadToggle" = "input type:touchpad events toggle enabled disabled";
"XF86AudioPlay" = "exec playerctl play-pause";
"XF86AudioNext" = "exec playerctl next";
"XF86AudioPrev" = "exec playerctl previous";
"XF86AudioStop" = "exec playerctl stop";
# Sink volume raise optionally with --device
"XF86AudioRaiseVolume" = "exec swayosd-client --output-volume raise";
"XF86AudioLowerVolume" = "exec swayosd-client --output-volume lower";
# Sink volume toggle mute
"XF86AudioMute" = "exec swayosd-client --output-volume mute-toggle";
# Source volume toggle mute
"XF86AudioMicMute" = "exec swayosd-client --input-volume mute-toggle";
# Capslock (If you don't want to use the backend)
#bindsym --release Caps_Lock exec swayosd-client --caps-lock;
# Brightness raise
"XF86MonBrightnessUp" = "exec swayosd-client --brightness raise";
# Brightness lower
"XF86MonBrightnessDown" = "exec swayosd-client --brightness lower";
window.commands = [
{
command = "floating enable";
criteria = {app_id = ".yubioath-flutter-wrapped";};
}
{
command = "floating enable";
criteria = {app_id = "pavucontrol";};
}
{
command = "floating enable";
criteria = {app_id = "galculator";};
}
{
command = "floating enable";
criteria = {app_id = "com.nitrokey.";};
}
{
command = "floating enable";
criteria = {app_id = "org.keepassxc.KeePassXC.";};
}
{
command = "floating enable";
criteria = {app_id = "virt-manager";};
}
{
command = "floating enable";
criteria = {title = "^OpenSSH Authentication";};
}
{
command = "floating enable";
criteria = {class = "pop-up";};
}
];
bars = [
{command = "${pkgs.waybar}/bin/waybar";}
];
"${mod}+${left}" = "focus left";
"${mod}+${down}" = "focus down";
"${mod}+${up}" = "focus up";
"${mod}+${right}" = "focus right";
"${mod}+Shift+${left}" = "move left";
"${mod}+Shift+${down}" = "move down";
"${mod}+Shift+${up}" = "move up";
"${mod}+Shift+${right}" = "move right";
"${mod}+${alt}+${left}" = "resize grow width 10px";
"${mod}+${alt}+${down}" = "resize shrink height 10px";
"${mod}+${alt}+${up}" = "resize grow height 10px";
"${mod}+${alt}+${right}" = "resize shrink width 10px";
"${mod}+1" = "workspace number 1";
"${mod}+2" = "workspace number 2";
"${mod}+3" = "workspace number 3";
"${mod}+4" = "workspace number 4";
"${mod}+5" = "workspace number 5";
"${mod}+6" = "workspace number 6";
"${mod}+7" = "workspace number 7";
"${mod}+8" = "workspace number 8";
"${mod}+9" = "workspace number 9";
"${mod}+0" = "workspace number 10";
"${mod}+Shift+1" = "move container to workspace number 1";
"${mod}+Shift+2" = "move container to workspace number 2";
"${mod}+Shift+3" = "move container to workspace number 3";
"${mod}+Shift+4" = "move container to workspace number 4";
"${mod}+Shift+5" = "move container to workspace number 5";
"${mod}+Shift+6" = "move container to workspace number 6";
"${mod}+Shift+7" = "move container to workspace number 7";
"${mod}+Shift+8" = "move container to workspace number 8";
"${mod}+Shift+9" = "move container to workspace number 9";
"${mod}+Shift+0" = "move container to workspace number 10";
"${mod}+Tab" = "workspace next";
"${mod}+Alt+Tab" = "workspace prev";
defaultWorkspace = "workspace number 2";
"${mod}+k" = "splith";
"${mod}+v" = "splitv";
"${mod}+b" = "layout stacking";
"${mod}+w" = "layout tabbed";
"${mod}+p" = "layout toggle split";
"${mod}+f" = "fullscreen";
"${mod}+Shift+space" = "floating toggle";
"${mod}+h" = "focus mode_toggle";
"${mod}+a" = "focus parent";
"${mod}+Shift+minus" = "move scratchpad";
"${mod}+minus" = "scratchpad show";
};
};
keybindings = let
mod = config.wayland.windowManager.sway.config.modifier;
alt = "Mod1";
left = config.wayland.windowManager.sway.config.left;
down = config.wayland.windowManager.sway.config.down;
up = config.wayland.windowManager.sway.config.up;
right = config.wayland.windowManager.sway.config.right;
in {
"${mod}+Escape" = "exec swaymsg exit"; # Exit Sway
"${mod}+Return" = "exec ${terminal}"; # Open terminal
"${mod}+d" = "exec ${menu}"; # Open menu
"${mod}+l" = "exec ${pkgs.swaylock}/bin/swaylock"; # Lock Screen
"${mod}+r" = "reload"; # Reload environment
"${mod}+q" = "kill"; # Kill container
"${mod}+Shift+f" = "exec ${pkgs.pcmanfm}/bin/pcmanfm"; # File Manager
"${alt}+${left}" = "workspace prev_on_output"; # Navigate to previous or next workspace on output if it exists
"${alt}+${right}" = "workspace next_on_output";
"${alt}+Shift+${left}" = "move container to workspace prev, workspace prev"; # Move container to next available workspace and focus
"${alt}+Shift+${right}" = "move container to workspace next, workspace next";
"XF86TouchpadToggle" = "input type:touchpad events toggle enabled disabled";
"XF86AudioPlay" = "exec playerctl play-pause";
"XF86AudioNext" = "exec playerctl next";
"XF86AudioPrev" = "exec playerctl previous";
"XF86AudioStop" = "exec playerctl stop";
# Sink volume raise optionally with --device
"XF86AudioRaiseVolume" = "exec swayosd-client --output-volume raise";
"XF86AudioLowerVolume" = "exec swayosd-client --output-volume lower";
# Sink volume toggle mute
"XF86AudioMute" = "exec swayosd-client --output-volume mute-toggle";
# Source volume toggle mute
"XF86AudioMicMute" = "exec swayosd-client --input-volume mute-toggle";
# Capslock (If you don't want to use the backend)
#bindsym --release Caps_Lock exec swayosd-client --caps-lock;
# Brightness raise
"XF86MonBrightnessUp" = "exec swayosd-client --brightness raise";
# Brightness lower
"XF86MonBrightnessDown" = "exec swayosd-client --brightness lower";
"${mod}+${left}" = "focus left";
"${mod}+${down}" = "focus down";
"${mod}+${up}" = "focus up";
"${mod}+${right}" = "focus right";
"${mod}+Shift+${left}" = "move left";
"${mod}+Shift+${down}" = "move down";
"${mod}+Shift+${up}" = "move up";
"${mod}+Shift+${right}" = "move right";
"${mod}+${alt}+${left}" = "resize grow width 10px";
"${mod}+${alt}+${down}" = "resize shrink height 10px";
"${mod}+${alt}+${up}" = "resize grow height 10px";
"${mod}+${alt}+${right}" = "resize shrink width 10px";
"${mod}+1" = "workspace number 1";
"${mod}+2" = "workspace number 2";
"${mod}+3" = "workspace number 3";
"${mod}+4" = "workspace number 4";
"${mod}+5" = "workspace number 5";
"${mod}+6" = "workspace number 6";
"${mod}+7" = "workspace number 7";
"${mod}+8" = "workspace number 8";
"${mod}+9" = "workspace number 9";
"${mod}+0" = "workspace number 10";
"${mod}+Shift+1" = "move container to workspace number 1";
"${mod}+Shift+2" = "move container to workspace number 2";
"${mod}+Shift+3" = "move container to workspace number 3";
"${mod}+Shift+4" = "move container to workspace number 4";
"${mod}+Shift+5" = "move container to workspace number 5";
"${mod}+Shift+6" = "move container to workspace number 6";
"${mod}+Shift+7" = "move container to workspace number 7";
"${mod}+Shift+8" = "move container to workspace number 8";
"${mod}+Shift+9" = "move container to workspace number 9";
"${mod}+Shift+0" = "move container to workspace number 10";
"${mod}+Tab" = "workspace next";
"${mod}+Alt+Tab" = "workspace prev";
"${mod}+k" = "splith";
"${mod}+v" = "splitv";
"${mod}+b" = "layout stacking";
"${mod}+w" = "layout tabbed";
"${mod}+p" = "layout toggle split";
"${mod}+f" = "fullscreen";
"${mod}+Shift+space" = "floating toggle";
"${mod}+h" = "focus mode_toggle";
"${mod}+a" = "focus parent";
"${mod}+Shift+minus" = "move scratchpad";
"${mod}+minus" = "scratchpad show";
};
};
systemd.enable = true;
wrapperFeatures.gtk = true;
extraSessionCommands = ''
@@ -255,12 +277,12 @@
'';
extraConfig = ''
set $output-primary DP-2
set $output-secondary DP-3
set $output-primary DP-2
set $output-secondary DP-3
workspace 1 output $output-secondary
workspace 2 output $output-primary
workspace 3 output $output-secondary
workspace 1 output $output-secondary
workspace 2 output $output-primary
workspace 3 output $output-secondary
'';
};
@@ -268,28 +290,28 @@
swaylock = {
enable = true;
settings = {
color = "000000";
image = "$HOME/.config/lockwall";
indicator-caps-lock = true;
show-keyboard-layout = true;
color = "000000";
image = "$HOME/.config/lockwall";
indicator-caps-lock = true;
show-keyboard-layout = true;
};
};
rofi = {
enable = true;
extraConfig = {
modi = "window,drun,ssh";
kb-primary-paste = "Control+V,Shift+Insert";
kb-secondary-paste = "Control+v,Insert";
};
font = "Cascadia Code";
location = "top-left";
plugins = [
pkgs.rofi-calc
pkgs.rofi-bluetooth
pkgs.pinentry-rofi
];
terminal = "${pkgs.alacritty}/bin/alacritty";
theme = "arthur";
enable = true;
extraConfig = {
modi = "window,drun,ssh";
kb-primary-paste = "Control+V,Shift+Insert";
kb-secondary-paste = "Control+v,Insert";
};
font = "Cascadia Code";
location = "top-left";
plugins = [
pkgs.rofi-calc
pkgs.rofi-bluetooth
pkgs.pinentry-rofi
];
terminal = "${pkgs.alacritty}/bin/alacritty";
theme = "arthur";
};
};
@@ -297,34 +319,52 @@
swayidle = {
enable = true;
events = [
{ event = "before-sleep"; command = "${pkgs.swaylock}/bin/swaylock"; }
{ event = "lock"; command = "${pkgs.swaylock}/bin/swaylock -fF"; }
{ event = "after-resume"; command = "${pkgs.sway}/bin/swaymsg 'output * dpms on'"; }
{ event = "unlock"; command = "${pkgs.sway}/bin/swaymsg 'output * dpms on'"; }
{
event = "before-sleep";
command = "${pkgs.swaylock}/bin/swaylock";
}
{
event = "lock";
command = "${pkgs.swaylock}/bin/swaylock -fF";
}
{
event = "after-resume";
command = "${pkgs.sway}/bin/swaymsg 'output * dpms on'";
}
{
event = "unlock";
command = "${pkgs.sway}/bin/swaymsg 'output * dpms on'";
}
];
timeouts = [
{ timeout = 300; command = "${pkgs.swaylock}/bin/swaylock -fF"; }
{ timeout = 600; command = "${pkgs.sway}/bin/swaymsg 'output * dpms off'"; resumeCommand = "${pkgs.sway}/bin/swaymsg 'output * dpms on'"; }
{
timeout = 300;
command = "${pkgs.swaylock}/bin/swaylock -fF";
}
{
timeout = 600;
command = "${pkgs.sway}/bin/swaymsg 'output * dpms off'";
resumeCommand = "${pkgs.sway}/bin/swaymsg 'output * dpms on'";
}
];
};
swayosd.enable = true;
};
# qt = {
# enable = true;
# style.package = [
# pkgs.dracula-theme
# pkgs.dracula-icon-theme
# pkgs.catppuccin-kvantum
# pkgs.catppuccin-kde
# pkgs.catppuccin-gtk
# pkgs.qt6Packages.qtstyleplugin-kvantum
# ];
# style.name = "kvantum";
# platformTheme.name = "qtct";
# };
# xdg.configFile = {
# "Kvantum/Catppuccin".source = "${pkgs.catppuccin-kvantum}/share/Kvantum/Catppuccin-Frappe-Blue";
# "Kvantum/kvantum.kvconfig".text = "[General]\ntheme=Catppuccin-Frappe-Blue";
# };
# qt = {
# enable = true;
# style.package = [
# pkgs.dracula-theme
# pkgs.dracula-icon-theme
# pkgs.catppuccin-kvantum
# pkgs.catppuccin-kde
# pkgs.catppuccin-gtk
# pkgs.qt6Packages.qtstyleplugin-kvantum
# ];
# style.name = "kvantum";
# platformTheme.name = "qtct";
# };
# xdg.configFile = {
# "Kvantum/Catppuccin".source = "${pkgs.catppuccin-kvantum}/share/Kvantum/Catppuccin-Frappe-Blue";
# "Kvantum/kvantum.kvconfig".text = "[General]\ntheme=Catppuccin-Frappe-Blue";
# };
}

View File

@@ -10,7 +10,6 @@
# └─ ./virtualisation
# └─ default.nix *
#
[
./docker.nix
./qemu.nix

View File

@@ -1,19 +1,21 @@
#
# Docker
#
{ config, pkgs, user, ... }:
{
config,
pkgs,
user,
...
}: {
virtualisation = {
podman = {
enable = true;
autoPrune.enable = true;
dockerCompat = true;
enable = true;
autoPrune.enable = true;
dockerCompat = true;
};
};
users.groups.docker.members = [ "${user}" ];
users.groups.docker.members = ["${user}"];
#environment = {
# interactiveShellInit = ''
@@ -21,11 +23,10 @@
# ''; # Alias to easily start container
#};
# environment.systemPackages = with pkgs; [
# docker-compose
# ];
# environment.systemPackages = with pkgs; [
# docker-compose
# ];
}
# USAGE:
# list images (that can be run as container): docker images
# list containers (that are active): docker container ls
@@ -49,4 +50,5 @@
# -v </your/local/assets/>:/www/assets \
# --restart=always \
# b4bz/homer:latest
#
#

View File

@@ -1,12 +1,14 @@
#
# KVM module options amd
#
{ config, pkgs, user, ... }:
{ # Add libvirtd and kvm to userGroups
{
config,
pkgs,
user,
...
}: {
# Add libvirtd and kvm to userGroups
boot.extraModprobeConfig = ''
options kvm_amd nested=0 avic=1 npt=1
''; # Needed to run OSX-KVM
''; # Needed to run OSX-KVM
}

View File

@@ -1,13 +1,16 @@
#
# KVM module options intel
# KVM module options intel
#
{ config, pkgs, user, ... }:
{ # Add libvirtd and kvm to userGroups
{
config,
pkgs,
user,
...
}: {
# Add libvirtd and kvm to userGroups
boot.extraModprobeConfig = ''
options kvm_intel nested=1
options kvm_intel emulate_invalid_guest_state=0
options kvm ignore_nsrs=1
''; # Needed to run OSX-KVM
''; # Needed to run OSX-KVM
}

View File

@@ -1,22 +1,25 @@
#
# Qemu/KVM with virt-manager
# Qemu/KVM with virt-manager
#
{ config, pkgs, user, ... }:
{ # Add libvirtd and kvm to userGroups
users.groups.libvirtd.members = [ "root" "${user}" ];
{
config,
pkgs,
user,
...
}: {
# Add libvirtd and kvm to userGroups
users.groups.libvirtd.members = ["root" "${user}"];
virtualisation = {
libvirtd = {
enable = true; # Virtual drivers
enable = true; # Virtual drivers
onShutdown = "shutdown";
#qemuPackage = pkgs.qemu_kvm; # Default
qemu = {
runAsRoot = false;
};
};
spiceUSBRedirection.enable = true; # USB passthrough
spiceUSBRedirection.enable = true; # USB passthrough
};
programs.dconf.enable = true;
@@ -27,12 +30,13 @@
qemu
OVMF
OVMF-cloud-hypervisor
gvfs # Used for shared folders between linux and windows
gvfs # Used for shared folders between linux and windows
cloud-hypervisor
];
};
services = { # Enable file sharing between OS
services = {
# Enable file sharing between OS
gvfs.enable = true;
};
}

View File

@@ -1,15 +1,19 @@
#
# Bar
#
{ config, lib, user, pkgs, ...}:
{
config,
lib,
user,
pkgs,
...
}: {
environment.systemPackages = with pkgs; [
waybar
];
home-manager.users.${user} = { # Home-manager waybar config
home-manager.users.${user} = {
# Home-manager waybar config
programs.waybar = {
enable = true;
#systemd = {
@@ -25,25 +29,25 @@
font-size: 11px;
min-height: 0;
}
window#waybar {
background: rgba(43, 48, 59, 0.3);
border-bottom: 3px solid transparent;
color: white;
}
#workspaces button {
padding: 0 5px;
margin: 0 3px;
color: white;
border-bottom: 3px solid transparent;
}
#workspaces button.focused {
background: rgba(100, 114, 125, 0.2);
border-bottom: 2px solid gray;
}
#mode {
background: transparent;
border-bottom: 2px solid gray;
@@ -53,26 +57,26 @@
padding: 0 6px;
margin: 0 5px;
}
#custom-vkeyboard, #custom-appkill, #custom-rotate {
padding: 0px 50px;
margin: 0px 0px;
font-size: 20px;
}
#clock {
background-color: transparent;
color: white;
}
#battery {
color: white;
}
#battery.charging {
color: white;
}
@keyframes blink {
to {
background-color: rgba(1, 1, 1, 0);
@@ -87,29 +91,29 @@
animation-iteration-count: infinite;
animation-direction: alternate;
}
#cpu {
background: transparent;
border-bottom: 2px solid yellow;
color: white;
}
#memory {
background: transparent;
border-bottom: 2px solid green;
color: white;
}
#network {
background: transparent;
color: white
}
#network.disconnected {
background: transparent;
color: crimson;
}
#pulseaudio {
background: transparent;
color: white;
@@ -118,19 +122,19 @@
#pulseaudio.muted {
border-bottom: 2px solid red;
}
#tray {
background-color: transparent;
}
#custom-sl.good {
border-bottom: 3px solid green;
}
#custom-sl.other {
border-bottom: 3px solid #F4AF39;
}
#custom-appkill {
color: red;
background-color: black;
@@ -140,146 +144,148 @@
background-color: black;
}
'';
settings = [{
layer = "bottom";
position = "top";
height = 22;
tray = { spacing = 10; };
modules-center = [ "custom/rotate" "clock" "custom/appkill" ];
modules-left = [ "sway/mode" "sway/workspaces" "sway/window" ];
#modules-left = [ "wlr/workspaces" ];
modules-right = [ "idle_inhibitor" "pulseaudio" "network" "cpu" "memory" "backlight" "temperature" "battery" "tray" ];
#modules-right = [ "cpu" "memory" "pulseaudio" "clock" "tray" ];
settings = [
{
layer = "bottom";
position = "top";
height = 22;
tray = {spacing = 10;};
modules-center = ["custom/rotate" "clock" "custom/appkill"];
modules-left = ["sway/mode" "sway/workspaces" "sway/window"];
#modules-left = [ "wlr/workspaces" ];
modules-right = ["idle_inhibitor" "pulseaudio" "network" "cpu" "memory" "backlight" "temperature" "battery" "tray"];
#modules-right = [ "cpu" "memory" "pulseaudio" "clock" "tray" ];
"sway/workspaces" = {
format = "<span font='14'>{icon}</span>";
format-icons = {
"1"="";
"2"="";
"3"="";
"4"="";
"5"="";
"sway/workspaces" = {
format = "<span font='14'>{icon}</span>";
format-icons = {
"1" = "";
"2" = "";
"3" = "";
"4" = "";
"5" = "";
};
all-outputs = false;
persistent_workspaces = {
"1" = [];
"2" = [];
"3" = [];
"4" = [];
"5" = [];
};
};
all-outputs = false;
persistent_workspaces = {
"1" = [];
"2" = [];
"3" = [];
"4" = [];
"5" = [];
};
};
"wlr/workspaces" = {
format = "{icon}";
format-icons = {
"1"="";
"2"="";
"3"="";
"4"="";
"5"="";
};
all-outputs = true;
active-only = false;
on-click = "activate";
};
clock = {
format = "{:%b %d %H:%M}";
tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
format-alt = "{:%A, %B %d, %Y}";
};
idle_inhibitor = {
"wlr/workspaces" = {
format = "{icon}";
format-icons = {
activated = "";
deactivated = "";
"1" = "";
"2" = "";
"3" = "";
"4" = "";
"5" = "";
};
};
cpu = {
format = "{usage}% ";
tooltip = false;
interval = 2;
};
disk = {
format = "{percentage_used}% ";
path = "/";
interval = 30;
};
memory = {
format = "{}% ";
interval = 5;
};
temperature = {
all-outputs = true;
active-only = false;
on-click = "activate";
};
clock = {
format = "{:%b %d %H:%M}";
tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
format-alt = "{:%A, %B %d, %Y}";
};
idle_inhibitor = {
format = "{icon}";
format-icons = {
activated = "";
deactivated = "";
};
};
cpu = {
format = "{usage}% ";
tooltip = false;
interval = 2;
};
disk = {
format = "{percentage_used}% ";
path = "/";
interval = 30;
};
memory = {
format = "{}% ";
interval = 5;
};
temperature = {
states = {
"good" = 50;
"warning" = 70;
"critical" = 80;
"good" = 50;
"warning" = 70;
"critical" = 80;
};
"thermal-zone" = 2;
"hwmon-path" = "/sys/class/hwmon/hwmon3/temp1_input";
"format" = "{temperatureC}°C {icon}";
"format-icons" = ["" "" "" "" ""];
};
backlight = {
};
backlight = {
"format" = "{percent}% {icon}";
"format-icons" = ["" ""];
"on-scroll-up" = "light -A +5%";
"on-scroll-down" = "light -U -5%";
};
battery = {
interval = 60;
states = {
good = 95;
warning = 20;
critical = 5;
};
format = "{capacity}% {icon}";
format-charging = "{capacity}% ";
format-plugged = "{capacity}% ";
format-alt = "{time} {icon}";
format-icons = ["" "" "" "" ""];
};
network = {
format-wifi = " {ipaddr}";
format-ethernet = "{ifname}: {ipaddr}/{cidr} ";
format-linked = "{ifname} (No IP) ";
format-disconnected = "Not connected ";
format-alt = "{ifname}: {ipaddr}/{cidr}";
tooltip-format = "{essid} {signalStrength}%";
on-click-right = "${pkgs.alacritty}/bin/alacritty -e nmtui";
};
pulseaudio = {
scroll-step = 1;
format = "{volume}% {icon} {format_source}";
format-bluetooth = "{volume}% {icon} {format_source}";
format-bluetooth-muted = "{volume}% {icon} {format_source}";
format-muted = " {format_source}";
format-source = "{volume}% ";
#format-source = "<span font='14'></span>";
format-source-muted = "";
format-icons = {
default = [ "" "" "" ];
headphones = "";
handsfree = "";
headset = "";
battery = {
interval = 60;
states = {
good = 95;
warning = 20;
critical = 5;
};
format = "{capacity}% {icon}";
format-charging = "{capacity}% ";
format-plugged = "{capacity}% ";
format-alt = "{time} {icon}";
format-icons = ["" "" "" "" ""];
};
tooltip-format = "{desc}, {volume}%";
on-click-right = "${pkgs.pamixer}/bin/pamixer --default-source -t";
on-click = "${pkgs.pavucontrol}/bin/pavucontrol";
};
"custom/appkill" = {
network = {
format-wifi = " {ipaddr}";
format-ethernet = "{ifname}: {ipaddr}/{cidr} ";
format-linked = "{ifname} (No IP) ";
format-disconnected = "Not connected ";
format-alt = "{ifname}: {ipaddr}/{cidr}";
tooltip-format = "{essid} {signalStrength}%";
on-click-right = "${pkgs.alacritty}/bin/alacritty -e nmtui";
};
pulseaudio = {
scroll-step = 1;
format = "{volume}% {icon} {format_source}";
format-bluetooth = "{volume}% {icon} {format_source}";
format-bluetooth-muted = "{volume}% {icon} {format_source}";
format-muted = " {format_source}";
format-source = "{volume}% ";
#format-source = "<span font='14'></span>";
format-source-muted = "";
format-icons = {
default = ["" "" ""];
headphones = "";
handsfree = "";
headset = "";
};
tooltip-format = "{desc}, {volume}%";
on-click-right = "${pkgs.pamixer}/bin/pamixer --default-source -t";
on-click = "${pkgs.pavucontrol}/bin/pavucontrol";
};
"custom/appkill" = {
format = " ";
icon-size = 20;
#on-click = "${pkgs.hyprland}/bin/hyprctl dispatch killactive .";
on-click = "${pkgs.sway}/bin/swaymsg kill";
tooltip = false;
};
"custom/rotate" = {
};
"custom/rotate" = {
format = " ";
icon-size = 20;
on-click = "${pkgs.sway}/bin/swaymsg output eDP-1 transform 180 clockwise";
tooltip = false;
};
}];
};
}
];
};
};
}