Compare commits
3 Commits
e709b46390
...
7e33c6464f
| Author | SHA1 | Date | |
|---|---|---|---|
| 7e33c6464f | |||
| 3fc6966bf5 | |||
| 80be473c14 |
@ -42,8 +42,9 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
blueman.enable = false;
|
blueman.enable = false;
|
||||||
};
|
};
|
||||||
nvidiaRTX.enable = false;
|
nvidia = {
|
||||||
nvidiaRTX.disable = false;
|
enable = false;
|
||||||
|
};
|
||||||
printing.enable = true;
|
printing.enable = true;
|
||||||
login = {
|
login = {
|
||||||
sddm.enable = false;
|
sddm.enable = false;
|
||||||
|
|||||||
@ -45,7 +45,10 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
blueman.enable = true;
|
blueman.enable = true;
|
||||||
};
|
};
|
||||||
nvidia.enable = true;
|
nvidia = {
|
||||||
|
enable = true;
|
||||||
|
mode = "offload";
|
||||||
|
};
|
||||||
printing.enable = true;
|
printing.enable = true;
|
||||||
login = {
|
login = {
|
||||||
sddm.enable = true;
|
sddm.enable = true;
|
||||||
|
|||||||
@ -3,6 +3,11 @@
|
|||||||
pkgs-stable,
|
pkgs-stable,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
|
# Keyboard image for keyboard switch layout
|
||||||
|
home.file = {
|
||||||
|
".local/share/icons/kogami/keyboard.svg".source = ../../../../config/icons/keyboard.svg;
|
||||||
|
};
|
||||||
|
|
||||||
home.packages =
|
home.packages =
|
||||||
(with pkgs; [
|
(with pkgs; [
|
||||||
hypridle
|
hypridle
|
||||||
@ -63,7 +68,7 @@
|
|||||||
(writeShellScriptBin "keyboardswitch" ''
|
(writeShellScriptBin "keyboardswitch" ''
|
||||||
hyprctl switchxkblayout all next
|
hyprctl switchxkblayout all next
|
||||||
layMain=$(hyprctl -j devices | ${pkgs.jq}/bin/jq '.keyboards' | ${pkgs.jq}/bin/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
|
${libnotify}/bin/notify-send -a "t1" -r 91190 -t 800 "$layMain" -i ~/.local/share/icons/kogami/keyboard.svg
|
||||||
'')
|
'')
|
||||||
|
|
||||||
(writeShellScriptBin "background-switch-random" ''
|
(writeShellScriptBin "background-switch-random" ''
|
||||||
|
|||||||
@ -28,6 +28,7 @@
|
|||||||
wlogout.enable = lib.mkDefault true;
|
wlogout.enable = lib.mkDefault true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# XDG Portals configuration
|
||||||
xdg.portal.enable = true;
|
xdg.portal.enable = true;
|
||||||
xdg.portal.config = {
|
xdg.portal.config = {
|
||||||
common = {
|
common = {
|
||||||
@ -36,11 +37,11 @@
|
|||||||
};
|
};
|
||||||
xdg.portal.extraPortals = [pkgs.xdg-desktop-portal-hyprland];
|
xdg.portal.extraPortals = [pkgs.xdg-desktop-portal-hyprland];
|
||||||
|
|
||||||
|
# Services for the Hyprland module
|
||||||
services.network-manager-applet.enable = true;
|
services.network-manager-applet.enable = true;
|
||||||
services.dunst.enable = true;
|
services.dunst.enable = true;
|
||||||
|
|
||||||
programs.hyprlock.enable = true;
|
# Home session variables
|
||||||
|
|
||||||
home.sessionVariables = {
|
home.sessionVariables = {
|
||||||
WLR_NO_HARDWARE_CURSORS = "1";
|
WLR_NO_HARDWARE_CURSORS = "1";
|
||||||
NIXOS_OZONE_WL = "1";
|
NIXOS_OZONE_WL = "1";
|
||||||
|
|||||||
BIN
nixos/home/desktop/hyprland/icons/lock_white.png
Normal file
BIN
nixos/home/desktop/hyprland/icons/lock_white.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 11 KiB |
BIN
nixos/home/desktop/hyprland/icons/logout_white.png
Normal file
BIN
nixos/home/desktop/hyprland/icons/logout_white.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.7 KiB |
BIN
nixos/home/desktop/hyprland/icons/reboot_white.png
Normal file
BIN
nixos/home/desktop/hyprland/icons/reboot_white.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
BIN
nixos/home/desktop/hyprland/icons/shutdown_white.png
Normal file
BIN
nixos/home/desktop/hyprland/icons/shutdown_white.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 7.7 KiB |
@ -2,6 +2,7 @@
|
|||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
userSettings,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
options = {
|
options = {
|
||||||
@ -9,6 +10,13 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf config.desktop.hyprland.wlogout.enable {
|
config = lib.mkIf config.desktop.hyprland.wlogout.enable {
|
||||||
|
home.file = {
|
||||||
|
".config/wlogout/icons/lock.png".source = ./icons/lock_white.png;
|
||||||
|
".config/wlogout/icons/logout.png".source = ./icons/logout_white.png;
|
||||||
|
".config/wlogout/icons/shutdown.png".source = ./icons/shutdown_white.png;
|
||||||
|
".config/wlogout/icons/reboot.png".source = ./icons/reboot_white.png;
|
||||||
|
};
|
||||||
|
|
||||||
programs.wlogout = {
|
programs.wlogout = {
|
||||||
enable = true;
|
enable = true;
|
||||||
layout = [
|
layout = [
|
||||||
@ -40,10 +48,13 @@
|
|||||||
"keybind" = "r";
|
"keybind" = "r";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
style =
|
style = let
|
||||||
let
|
|
||||||
fntSize = "40";
|
fntSize = "40";
|
||||||
BtnCol = config.lib.stylix.colors.base01;
|
BtnCol = config.lib.stylix.colors.base01;
|
||||||
|
Main-bg = config.lib.stylix.colors.base02;
|
||||||
|
Wb-act-bg = config.lib.stylix.colors.base05; # base05 is light blue color
|
||||||
|
Wb-hvr-bg = config.lib.stylix.colors.base07; # base07 is blue color
|
||||||
|
|
||||||
active_rad = "40";
|
active_rad = "40";
|
||||||
y_hvr = "5";
|
y_hvr = "5";
|
||||||
x_hvr = "5";
|
x_hvr = "5";
|
||||||
@ -51,16 +62,6 @@
|
|||||||
y_mgn = "5";
|
y_mgn = "5";
|
||||||
x_mgn = "5";
|
x_mgn = "5";
|
||||||
in ''
|
in ''
|
||||||
@define-color bar-bg rgba(0, 0, 0, 0);
|
|
||||||
|
|
||||||
@define-color main-bg #11111b;
|
|
||||||
@define-color main-fg #cdd6f4;
|
|
||||||
|
|
||||||
@define-color wb-act-bg #a6adc8;
|
|
||||||
@define-color wb-act-fg #313244;
|
|
||||||
|
|
||||||
@define-color wb-hvr-bg #f5c2e7;
|
|
||||||
@define-color wb-hvr-fg #313244;
|
|
||||||
* {
|
* {
|
||||||
background-image: none;
|
background-image: none;
|
||||||
font-size: ${fntSize}px;
|
font-size: ${fntSize}px;
|
||||||
@ -72,7 +73,7 @@
|
|||||||
|
|
||||||
button {
|
button {
|
||||||
color: #${BtnCol};
|
color: #${BtnCol};
|
||||||
background-color: @main-bg;
|
background-color: #${Main-bg};
|
||||||
outline-style: none;
|
outline-style: none;
|
||||||
border: none;
|
border: none;
|
||||||
border-width: 0px;
|
border-width: 0px;
|
||||||
@ -86,12 +87,12 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
button:focus {
|
button:focus {
|
||||||
background-color: @wb-act-bg;
|
background-color: #${Wb-act-bg};
|
||||||
background-size: 20%;
|
background-size: 20%;
|
||||||
}
|
}
|
||||||
|
|
||||||
button:hover {
|
button:hover {
|
||||||
background-color: @wb-hvr-bg;
|
background-color: #${Wb-hvr-bg};
|
||||||
background-size: 25%;
|
background-size: 25%;
|
||||||
border-radius: ${active_rad}px;
|
border-radius: ${active_rad}px;
|
||||||
animation: gradient_f 20s ease-in infinite;
|
animation: gradient_f 20s ease-in infinite;
|
||||||
@ -119,29 +120,29 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
#lock {
|
#lock {
|
||||||
|
background-image: image(url("/home/${userSettings.username}/.config/wlogout/icons/lock.png"), url("${pkgs.wlogout}/share/wlogout/icons/lock.png"));
|
||||||
border-radius: ${button_rad}px 0px 0px 0px;
|
border-radius: ${button_rad}px 0px 0px 0px;
|
||||||
margin : ${y_mgn}px 0px 0px ${x_mgn}px;
|
margin : ${y_mgn}px 0px 0px ${x_mgn}px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#logout {
|
#logout {
|
||||||
|
background-image: image(url("/home/${userSettings.username}/.config/wlogout/icons/logout.png"), url("${pkgs.wlogout}/share/wlogout/icons/logout.png"));
|
||||||
border-radius: 0px 0px 0px ${button_rad}px;
|
border-radius: 0px 0px 0px ${button_rad}px;
|
||||||
margin : 0px 0px ${y_mgn}px ${x_mgn}px;
|
margin : 0px 0px ${y_mgn}px ${x_mgn}px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#shutdown {
|
#shutdown {
|
||||||
|
background-image: image(url("/home/${userSettings.username}/.config/wlogout/icons/shutdown.png"), url("${pkgs.wlogout}/share/wlogout/icons/shutdown.png"));
|
||||||
border-radius: 0px ${button_rad}px 0px 0px;
|
border-radius: 0px ${button_rad}px 0px 0px;
|
||||||
margin : ${y_mgn}px ${x_mgn}px 0px 0px;
|
margin : ${y_mgn}px ${x_mgn}px 0px 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#reboot {
|
#reboot {
|
||||||
|
background-image: image(url("/home/${userSettings.username}/.config/wlogout/icons/reboot.png"), url("${pkgs.wlogout}/share/wlogout/icons/reboot.png"));
|
||||||
border-radius: 0px 0px ${button_rad}px 0px;
|
border-radius: 0px 0px ${button_rad}px 0px;
|
||||||
margin : 0px ${x_mgn}px ${y_mgn}px 0px;
|
margin : 0px ${x_mgn}px ${y_mgn}px 0px;
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
home.packages = [
|
|
||||||
pkgs.wlogout
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,22 +4,23 @@
|
|||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
options = {
|
options = {
|
||||||
sys.nvidia = lib.mkOption {
|
sys.nvidia.enable = lib.mkEnableOption "Enable NVIDIA graphics support";
|
||||||
type = lib.types.attrs;
|
|
||||||
default = {
|
sys.nvidia.mode = lib.mkOption {
|
||||||
enable = false;
|
type = lib.types.enum ["offload" "sync" "reverse" "disable" "none"];
|
||||||
disable = false;
|
default = "none";
|
||||||
};
|
|
||||||
description = ''
|
description = ''
|
||||||
NVIDIA graphics support.
|
NVIDIA graphics mode.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
sys.nvidiaRTX.enable = lib.mkEnableOption "Enable NVIDIA Prime graphics support";
|
sys.nvidia.optimus.offload = lib.mkEnableOption "Enable NVIDIA Prime graphics support";
|
||||||
sys.nvidiaRTX.disable = lib.mkEnableOption "Disable NVIDIA graphics completely";
|
sys.nvidia.optimus.sync = lib.mkEnableOption "Enable NVIDIA Prime sync";
|
||||||
|
sys.nvidia.optimus.reverse = lib.mkEnableOption "Enable NVIDIA Prime reverse sync";
|
||||||
|
sys.nvidia.disable = lib.mkEnableOption "Disable NVIDIA graphics completely";
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkMerge [
|
config = lib.mkMerge [
|
||||||
(lib.mkIf config.sys.nvidiaRTX.enable {
|
(lib.mkIf config.sys.nvidia.enable {
|
||||||
hardware = {
|
hardware = {
|
||||||
graphics.enable = true;
|
graphics.enable = true;
|
||||||
};
|
};
|
||||||
@ -54,17 +55,27 @@
|
|||||||
nvidiaSettings = true;
|
nvidiaSettings = true;
|
||||||
prime.amdgpuBusId = "pci@000:04:0";
|
prime.amdgpuBusId = "pci@000:04:0";
|
||||||
prime.nvidiaBusId = "pci@000:01:0";
|
prime.nvidiaBusId = "pci@000:01:0";
|
||||||
|
|
||||||
prime.offload = {
|
|
||||||
enable = true;
|
|
||||||
enableOffloadCmd = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
||||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
(lib.mkIf config.sys.nvidiaRTX.disable {
|
(lib.mkIf config.sys.nvidia.optimus.offload {
|
||||||
|
hardware.nvidia.prime.offload = {
|
||||||
|
enable = true;
|
||||||
|
enableOffloadCmd = true;
|
||||||
|
};
|
||||||
|
})
|
||||||
|
(lib.mkIf config.sys.nvidia.optimus.sync {
|
||||||
|
hardware.nvidia.prime.sync.enable = true;
|
||||||
|
})
|
||||||
|
(lib.mkIf config.sys.nvidia.optimus.reverse {
|
||||||
|
hardware.nvidia.prime = {
|
||||||
|
reverseSync.enable = true;
|
||||||
|
# Enable if using an external GPU
|
||||||
|
allowExternalGpu = false;
|
||||||
|
};
|
||||||
|
})
|
||||||
|
(lib.mkIf config.sys.nvidia.disable {
|
||||||
boot.extraModprobeConfig = ''
|
boot.extraModprobeConfig = ''
|
||||||
blacklist nouveau
|
blacklist nouveau
|
||||||
options nouveau modeset=0
|
options nouveau modeset=0
|
||||||
|
|||||||
@ -42,16 +42,29 @@
|
|||||||
enable = lib.mkDefault true;
|
enable = lib.mkDefault true;
|
||||||
blueman.enable = lib.mkDefault true;
|
blueman.enable = lib.mkDefault true;
|
||||||
};
|
};
|
||||||
nvidia.enable = lib.mkDefault false;
|
|
||||||
|
|
||||||
nvidiaRTX.enable =
|
nvidia = {
|
||||||
if config.sys.nvidia.enable == true
|
enable = lib.mkDefault false;
|
||||||
then lib.mkDefault true
|
mode = lib.mkDefault "none";
|
||||||
else lib.mkDefault false;
|
optimus = {
|
||||||
nvidiaRTX.disable =
|
offload =
|
||||||
if config.sys.nvidia.enable == true
|
if config.sys.nvidia.mode == "offload"
|
||||||
then lib.mkDefault false
|
then true
|
||||||
else lib.mkDefault true;
|
else false;
|
||||||
|
sync =
|
||||||
|
if config.sys.nvidia.mode == "sync"
|
||||||
|
then true
|
||||||
|
else false;
|
||||||
|
reverse =
|
||||||
|
if config.sys.nvidia.mode == "reverse"
|
||||||
|
then true
|
||||||
|
else false;
|
||||||
|
};
|
||||||
|
disable =
|
||||||
|
if config.sys.nvidia.mode == "disable"
|
||||||
|
then true
|
||||||
|
else false;
|
||||||
|
};
|
||||||
|
|
||||||
printing.enable = lib.mkDefault true;
|
printing.enable = lib.mkDefault true;
|
||||||
login = {
|
login = {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user