cleanup
This commit is contained in:
@@ -1,42 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
boot = {
|
||||
kernelPackages = pkgs.linuxPackages_zen;
|
||||
kernelModules = ["v4l2loopback"];
|
||||
extraModulePackages = [config.boot.kernelPackages.v4l2loopback];
|
||||
kernel.sysctl = {
|
||||
"vm.max_map_count" = 2147483642;
|
||||
};
|
||||
loader = {
|
||||
efi.canTouchEfiVariables = true;
|
||||
limine = {
|
||||
enable = true;
|
||||
style = {
|
||||
wallpapers = [
|
||||
./../../wallpapers/attack-on-titan-mikasa-ackerman.jpg
|
||||
];
|
||||
wallpaperStyle = lib.mkForce "centered";
|
||||
backdrop = "${config.stylix.base16Scheme.base00}";
|
||||
interface = {
|
||||
branding = "GarandOS Bootloader";
|
||||
resolution = "1920x1080";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
# Appimage Support
|
||||
binfmt.registrations.appimage = {
|
||||
wrapInterpreterInShell = false;
|
||||
interpreter = "${pkgs.appimage-run}/bin/appimage-run";
|
||||
recognitionType = "magic";
|
||||
offset = 0;
|
||||
mask = ''\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff'';
|
||||
magicOrExtension = ''\x7fELF....AI\x02'';
|
||||
};
|
||||
plymouth.enable = true;
|
||||
};
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.calendar.enable = lib.mkEnableOption "Enable GNOME Calendar";
|
||||
|
||||
config = {
|
||||
services.gnome.evolution-data-server.enable = lib.mkIf config.calendar.enable true;
|
||||
environment.systemPackages = lib.mkIf config.calendar.enable (with pkgs; [
|
||||
gnome-calendar
|
||||
gnome-contacts
|
||||
]);
|
||||
};
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
{inputs, ...}: {
|
||||
imports = [
|
||||
./packages
|
||||
./boot.nix
|
||||
./calendar.nix
|
||||
./docker.nix
|
||||
./flatpak.nix
|
||||
./fonts.nix
|
||||
./garandos-tui.nix
|
||||
./hardware.nix
|
||||
./network.nix
|
||||
./nfs.nix
|
||||
./nh.nix
|
||||
./printing.nix
|
||||
./quickshell.nix
|
||||
./greetd.nix
|
||||
./security.nix
|
||||
./services.nix
|
||||
./steam.nix
|
||||
./stylix.nix
|
||||
./syncthing.nix
|
||||
./system.nix
|
||||
./tailscale.nix
|
||||
./thunar.nix
|
||||
./user.nix
|
||||
./virtualbox.nix
|
||||
./xdg.nix
|
||||
./xserver.nix
|
||||
./zram.nix
|
||||
inputs.stylix.nixosModules.stylix
|
||||
];
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.docker.enable = lib.mkEnableOption "Docker";
|
||||
|
||||
config.virtualisation.docker = lib.mkIf config.docker.enable {
|
||||
enable = true;
|
||||
package = pkgs.docker;
|
||||
daemon.settings.dns = ["9.9.9.11" "149.112.112.11"];
|
||||
};
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
mkFlatpakPackage = name: pkgId: {
|
||||
options.flatpak.packages.${name}.enable = lib.mkEnableOption "Flatpak: ${name}";
|
||||
|
||||
config.services.flatpak.packages =
|
||||
lib.mkIf config.flatpak.packages.${name}.enable [pkgId];
|
||||
};
|
||||
|
||||
flatpakPackages = {
|
||||
sober = "org.vinegarhq.Sober";
|
||||
warehouse = "io.github.flattool.Warehouse";
|
||||
flatseal = "com.github.tchx84.Flatseal";
|
||||
};
|
||||
in {
|
||||
options.flatpak.enable = lib.mkEnableOption "Flatpak";
|
||||
|
||||
config.services.flatpak = lib.mkIf config.flatpak.enable {
|
||||
enable = true;
|
||||
update.onActivation = true;
|
||||
packages = [];
|
||||
};
|
||||
|
||||
imports = builtins.attrValues (builtins.mapAttrs mkFlatpakPackage flatpakPackages);
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
fonts = {
|
||||
packages = with pkgs; [
|
||||
dejavu_fonts
|
||||
fira-code
|
||||
fira-code-symbols
|
||||
font-awesome
|
||||
hackgen-nf-font
|
||||
ibm-plex
|
||||
inter
|
||||
jetbrains-mono
|
||||
material-icons
|
||||
maple-mono.NF
|
||||
minecraftia
|
||||
nerd-fonts.im-writing
|
||||
nerd-fonts.blex-mono
|
||||
noto-fonts
|
||||
noto-fonts-color-emoji
|
||||
noto-fonts-cjk-sans
|
||||
noto-fonts-cjk-serif
|
||||
noto-fonts-monochrome-emoji
|
||||
powerline-fonts
|
||||
roboto
|
||||
roboto-mono
|
||||
#symbola
|
||||
terminus_font
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
host,
|
||||
username,
|
||||
...
|
||||
}: {
|
||||
programs.garandos-tui = {
|
||||
enable = true;
|
||||
systemModulesFilePath = "/home/${username}/garandos/hosts/${host}/system-modules.nix";
|
||||
homeModulesFilePath = "/home/${username}/garandos/hosts/${host}/home-modules.nix";
|
||||
};
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
username,
|
||||
...
|
||||
}: {
|
||||
services.greetd = {
|
||||
enable = true;
|
||||
#vt = 3;
|
||||
settings = {
|
||||
default_session = {
|
||||
user = username;
|
||||
command = "${pkgs.tuigreet}/bin/tuigreet --time --cmd Hyprland"; # start Hyprland with a TUI login manager
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
hardware = {
|
||||
sane = {
|
||||
enable = true;
|
||||
extraBackends = [pkgs.sane-airscan];
|
||||
disabledDefaultBackends = ["escl"];
|
||||
};
|
||||
logitech.wireless = {
|
||||
enable = false;
|
||||
enableGraphical = false;
|
||||
};
|
||||
graphics.enable = true;
|
||||
enableRedistributableFirmware = true;
|
||||
keyboard.qmk.enable = true;
|
||||
bluetooth = {
|
||||
enable = true;
|
||||
powerOnBoot = false;
|
||||
};
|
||||
};
|
||||
local.hardware-clock.enable = false;
|
||||
}
|
||||
@@ -1,49 +0,0 @@
|
||||
{
|
||||
host,
|
||||
options,
|
||||
...
|
||||
}: let
|
||||
inherit (import ../../hosts/${host}/variables.nix) hostId;
|
||||
in {
|
||||
# Defensive assertion for hostname validity (clearer message at eval time)
|
||||
assertions = [
|
||||
{
|
||||
assertion = builtins.match "^[[:alnum:]]([[:alnum:]_-]{0,61}[[:alnum:]])?$" host != null;
|
||||
message = "Invalid hostname '${host}'. Must be 1-63 chars, start/end alphanumeric; allowed middle chars: letters, digits, '-' or '_'.";
|
||||
}
|
||||
];
|
||||
|
||||
networking = {
|
||||
hostName = "${host}";
|
||||
hostId = hostId;
|
||||
networkmanager.enable = true;
|
||||
timeServers = options.networking.timeServers.default ++ ["pool.ntp.org"];
|
||||
firewall = {
|
||||
enable = true;
|
||||
allowedTCPPorts = [
|
||||
22
|
||||
80
|
||||
443
|
||||
59010
|
||||
59011
|
||||
8080
|
||||
];
|
||||
allowedTCPPortRanges = [
|
||||
{
|
||||
from = 1714;
|
||||
to = 1764;
|
||||
}
|
||||
];
|
||||
allowedUDPPorts = [
|
||||
59010
|
||||
59011
|
||||
];
|
||||
allowedUDPPortRanges = [
|
||||
{
|
||||
from = 1714;
|
||||
to = 1764;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
{host, ...}: let
|
||||
inherit (import ../../hosts/${host}/variables.nix) enableNFS;
|
||||
in {
|
||||
services = {
|
||||
rpcbind.enable = enableNFS;
|
||||
nfs.server.enable = enableNFS;
|
||||
};
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
{
|
||||
username,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
programs.nh = {
|
||||
enable = true;
|
||||
package = pkgs.nh;
|
||||
clean = {
|
||||
enable = true;
|
||||
extraArgs = "--keep-since 7d --keep 5";
|
||||
};
|
||||
flake = "/home/${username}/garandos";
|
||||
};
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
_: {
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
imports = [
|
||||
./fluxer
|
||||
./essentials.nix
|
||||
./packages.nix
|
||||
./programs.nix
|
||||
];
|
||||
}
|
||||
@@ -1,72 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
mpv
|
||||
pavucontrol
|
||||
playerctl
|
||||
cmatrix
|
||||
cowsay
|
||||
sl
|
||||
fortune
|
||||
# File management
|
||||
trash-cli
|
||||
file-roller
|
||||
unrar
|
||||
unzip
|
||||
p7zip
|
||||
# System monitoring & info
|
||||
inxi
|
||||
lm_sensors
|
||||
lshw
|
||||
pciutils
|
||||
usbutils
|
||||
mesa-demos
|
||||
nix-output-monitor
|
||||
nvd
|
||||
onefetch
|
||||
# Disk utilities
|
||||
duf
|
||||
dysk
|
||||
ncdu
|
||||
# Network & system utilities
|
||||
ripgrep
|
||||
wget
|
||||
socat
|
||||
ookla-speedtest
|
||||
brightnessctl
|
||||
killall
|
||||
dex
|
||||
# Desktop environment
|
||||
networkmanagerapplet
|
||||
tuigreet
|
||||
nwg-displays
|
||||
waypaper
|
||||
uwsm
|
||||
hyprpicker
|
||||
cliphist
|
||||
# Development utilities
|
||||
pkg-config
|
||||
appimage-run
|
||||
libnotify
|
||||
v4l-utils
|
||||
tasktimer
|
||||
# Language dicts for Iotas
|
||||
hunspell
|
||||
hunspellDicts.pl_PL
|
||||
hunspellDicts.en_US
|
||||
# Noctalia Shell Dependencies
|
||||
matugen
|
||||
app2unit
|
||||
gpu-screen-recorder
|
||||
# hyprland
|
||||
swww
|
||||
grim
|
||||
slurp
|
||||
wl-clipboard
|
||||
swappy
|
||||
ydotool
|
||||
hyprpolkitagent
|
||||
hyprland-qtutils # needed for banners and ANR messages
|
||||
# pyprland
|
||||
pyprland
|
||||
];
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{pkgs, ...}: let
|
||||
fluxer =
|
||||
pkgs.callPackage ./fluxer-package.nix {};
|
||||
in {
|
||||
environment.systemPackages = [fluxer];
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
appimageTools,
|
||||
fetchurl,
|
||||
}: let
|
||||
pname = "fluxer";
|
||||
version = "canary";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://api.fluxer.app/dl/desktop/stable/linux/x64/latest/appimage";
|
||||
sha256 = "sha256-GdoBK+Z/d2quEIY8INM4IQy5tzzIBBM+3CgJXQn0qAw=";
|
||||
};
|
||||
appimageContents = appimageTools.extract {inherit pname version src;};
|
||||
in
|
||||
appimageTools.wrapType2 {
|
||||
inherit pname version src;
|
||||
|
||||
extraInstallCommands = ''
|
||||
# mv $out/bin/${pname}-${version} $out/bin/${pname}
|
||||
install -m 444 -D ${appimageContents}/${pname}.desktop $out/share/applications/${pname}.desktop
|
||||
install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/512x512/apps/${pname}.png \
|
||||
$out/share/icons/hicolor/512x512/apps/${pname}.png
|
||||
substituteInPlace $out/share/applications/${pname}.desktop \
|
||||
--replace-fail 'Exec=AppRun' 'Exec=${pname}'
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Fluxer desktop app";
|
||||
homepage = "https://github.com/fluxerapp/fluxer";
|
||||
license = licenses.agpl3Only;
|
||||
platforms = ["x86_64-linux"];
|
||||
sourceProvenance = with lib.sourceTypes; [binaryNativeCode];
|
||||
maintainers = with lib.maintainers; [garand_plg];
|
||||
};
|
||||
}
|
||||
@@ -1,57 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
inputs,
|
||||
system,
|
||||
...
|
||||
}: let
|
||||
mkPackage = name: pkgsOrList: {
|
||||
options.packages.${name}.enable = lib.mkEnableOption name;
|
||||
config.environment.systemPackages =
|
||||
lib.mkIf config.packages.${name}.enable
|
||||
(lib.toList pkgsOrList);
|
||||
};
|
||||
|
||||
packages = with pkgs; {
|
||||
bitwarden = bitwarden-desktop;
|
||||
eddieAirVPN = eddie;
|
||||
gnomeCalculator = gnome-calculator;
|
||||
gedit = gedit;
|
||||
iotas = iotas;
|
||||
logseq = logseq;
|
||||
mattermost = mattermost-desktop;
|
||||
slack = slack;
|
||||
tutanota = tutanota-desktop;
|
||||
exercism = exercism;
|
||||
opencode = opencode;
|
||||
jan = jan;
|
||||
lazygit = lazygit;
|
||||
prismlauncher = inputs.prismlauncher-cracked.packages.${system}.default;
|
||||
spaceCadetPinball = space-cadet-pinball;
|
||||
ttySolitaire = tty-solitaire;
|
||||
gimp = gimp;
|
||||
affinity = inputs.affinity-nix.packages.${system}.v3;
|
||||
eyeOfGnome = eog;
|
||||
kdenlive = kdePackages.kdenlive;
|
||||
plex = [
|
||||
(plex-desktop.override {extraEnv = {QT_QPA_PLATFORM = "xcb";};})
|
||||
# plex-desktop
|
||||
plexamp
|
||||
];
|
||||
freetube = freetube;
|
||||
lazydocker = lazydocker;
|
||||
distrobox = [distrobox pkgs.boxbuddy];
|
||||
winboat = [winboat freerdp];
|
||||
signal = signal-desktop;
|
||||
pixieditor = pixieditor;
|
||||
bottles = bottles;
|
||||
heroic = heroic;
|
||||
adb = android-tools;
|
||||
teams = teams-for-linux;
|
||||
ferdium = ferdium;
|
||||
logisim-evolution = logisim-evolution;
|
||||
};
|
||||
in {
|
||||
imports = builtins.attrValues (builtins.mapAttrs mkPackage packages);
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
_: {
|
||||
programs = {
|
||||
nano.enable = true;
|
||||
hyprland = {
|
||||
enable = true;
|
||||
withUWSM = false;
|
||||
};
|
||||
dconf.enable = true;
|
||||
seahorse.enable = true;
|
||||
fuse.userAllowOther = true;
|
||||
mtr.enable = true;
|
||||
gnupg.agent = {
|
||||
enable = true;
|
||||
enableSSHSupport = true;
|
||||
};
|
||||
nix-ld = {
|
||||
enable = true;
|
||||
# libraries = with pkgs; [
|
||||
# biome
|
||||
# ];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
{host, ...}: let
|
||||
inherit (import ../../hosts/${host}/variables.nix) printEnable;
|
||||
in {
|
||||
services = {
|
||||
printing = {
|
||||
enable = printEnable;
|
||||
drivers = [
|
||||
# pkgs.hplipWithPlugin
|
||||
];
|
||||
};
|
||||
avahi = {
|
||||
enable = printEnable;
|
||||
nssmdns4 = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
ipp-usb.enable = printEnable;
|
||||
};
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
environment = {
|
||||
systemPackages = with pkgs; [
|
||||
quickshell
|
||||
|
||||
# Qt6 related kits(for slove Qt5Compat problem)
|
||||
qt6.qt5compat
|
||||
qt6.qtbase
|
||||
qt6.qtquick3d
|
||||
qt6.qtwayland
|
||||
qt6.qtdeclarative
|
||||
qt6.qtsvg
|
||||
|
||||
# alternate options
|
||||
# libsForQt5.qt5compat
|
||||
kdePackages.qt5compat
|
||||
libsForQt5.qt5.qtgraphicaleffects
|
||||
];
|
||||
# necessary environment variables
|
||||
variables = {
|
||||
QML_IMPORT_PATH = "${pkgs.qt6.qt5compat}/lib/qt-6/qml:${pkgs.qt6.qtbase}/lib/qt-6/qml";
|
||||
QML2_IMPORT_PATH = "${pkgs.qt6.qt5compat}/lib/qt-6/qml:${pkgs.qt6.qtbase}/lib/qt-6/qml";
|
||||
};
|
||||
# make sure the Qt application is working properly
|
||||
sessionVariables = {
|
||||
QT_QPA_PLATFORM = "wayland;xcb";
|
||||
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
_: {
|
||||
security = {
|
||||
rtkit.enable = true;
|
||||
polkit = {
|
||||
enable = true;
|
||||
extraConfig = ''
|
||||
polkit.addRule(function(action, subject) {
|
||||
if ( subject.isInGroup("users") && (
|
||||
action.id == "org.freedesktop.login1.reboot" ||
|
||||
action.id == "org.freedesktop.login1.reboot-multiple-sessions" ||
|
||||
action.id == "org.freedesktop.login1.power-off" ||
|
||||
action.id == "org.freedesktop.login1.power-off-multiple-sessions"
|
||||
))
|
||||
{ return polkit.Result.YES; }
|
||||
})
|
||||
'';
|
||||
};
|
||||
pam.services.swaylock = {
|
||||
text = ''auth include login '';
|
||||
};
|
||||
sudo = {
|
||||
enable = true;
|
||||
extraConfig = ''
|
||||
Defaults pwfeedback
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,67 +0,0 @@
|
||||
{
|
||||
profile,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
# Services to start
|
||||
services = {
|
||||
libinput.enable = true; # Input Handling
|
||||
fstrim.enable = true; # SSD Optimizer
|
||||
gvfs.enable = true; # For Mounting USB & More
|
||||
openssh = {
|
||||
enable = true; # Enable SSH
|
||||
settings = {
|
||||
PermitRootLogin = "no"; # Prevent root from SSH login
|
||||
PasswordAuthentication = true; # Users can SSH using kb and password
|
||||
KbdInteractiveAuthentication = true;
|
||||
};
|
||||
ports = [22];
|
||||
};
|
||||
tumbler.enable = true; # Image/video preview
|
||||
gnome.gnome-keyring.enable = true;
|
||||
smartd = {
|
||||
enable =
|
||||
if profile == "vm"
|
||||
then false
|
||||
else true;
|
||||
autodetect = true;
|
||||
};
|
||||
pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
jack.enable = true;
|
||||
extraConfig.pipewire."92-low-latency" = {
|
||||
"context.properties" = {
|
||||
"default.clock.rate" = 48000;
|
||||
"default.clock.quantum" = 256;
|
||||
"default.clock.min-quantum" = 256;
|
||||
"default.clock.max-quantum" = 256;
|
||||
};
|
||||
};
|
||||
extraConfig.pipewire-pulse."92-low-latency" = {
|
||||
context.modules = [
|
||||
{
|
||||
name = "libpipewire-module-protocol-pulse";
|
||||
args = {
|
||||
pulse.min.req = "256/48000";
|
||||
pulse.default.req = "256/48000";
|
||||
pulse.max.req = "256/48000";
|
||||
pulse.min.quantum = "256/48000";
|
||||
pulse.max.quantum = "256/48000";
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
upower = {
|
||||
enable = true;
|
||||
package = pkgs.upower;
|
||||
};
|
||||
power-profiles-daemon = {
|
||||
enable = true;
|
||||
package = pkgs.power-profiles-daemon;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,43 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options = {
|
||||
steam.enable = lib.mkEnableOption "Steam";
|
||||
gamescope.enable = lib.mkEnableOption "Gamescope";
|
||||
gamemode.enable = lib.mkEnableOption "Gamemode";
|
||||
};
|
||||
|
||||
config.programs = {
|
||||
steam = lib.mkIf config.steam.enable {
|
||||
enable = true;
|
||||
package = pkgs.steam;
|
||||
remotePlay.openFirewall = true;
|
||||
dedicatedServer.openFirewall = true;
|
||||
gamescopeSession = lib.mkIf config.gamescope.enable {
|
||||
enable = true;
|
||||
args = [
|
||||
"--rt"
|
||||
"--expose-wayland"
|
||||
];
|
||||
};
|
||||
extraCompatPackages = [pkgs.proton-ge-bin];
|
||||
};
|
||||
|
||||
gamescope = lib.mkIf config.gamescope.enable {
|
||||
enable = true;
|
||||
capSysNice = true;
|
||||
args = [
|
||||
"--rt"
|
||||
"--expose-wayland"
|
||||
];
|
||||
};
|
||||
|
||||
gamemode = lib.mkIf config.gamemode.enable {
|
||||
enable = true;
|
||||
enableRenice = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,40 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
host,
|
||||
...
|
||||
}: let
|
||||
inherit (import ../../hosts/${host}/variables.nix) stylixImage;
|
||||
in {
|
||||
# Styling Options
|
||||
stylix = {
|
||||
enable = true;
|
||||
image = ../../wallpapers/${stylixImage};
|
||||
polarity = "dark";
|
||||
opacity.terminal = 1.0;
|
||||
cursor = {
|
||||
package = pkgs.bibata-cursors;
|
||||
name = "Bibata-Modern-Ice";
|
||||
size = 24;
|
||||
};
|
||||
fonts = {
|
||||
monospace = {
|
||||
package = pkgs.nerd-fonts.fira-mono;
|
||||
name = "FiraCode Nerd Font Mono";
|
||||
};
|
||||
sansSerif = {
|
||||
package = pkgs.nerd-fonts.fira-code;
|
||||
name = "FiraCode Nerd Font Propo";
|
||||
};
|
||||
serif = {
|
||||
package = pkgs.nerd-fonts.fira-code;
|
||||
name = "FiraCode Nerd Font";
|
||||
};
|
||||
sizes = {
|
||||
applications = 12;
|
||||
terminal = 15;
|
||||
desktop = 11;
|
||||
popups = 12;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
{username, ...}: {
|
||||
services.syncthing = {
|
||||
enable = false;
|
||||
user = "${username}";
|
||||
dataDir = "/home/${username}";
|
||||
configDir = "/home/${username}/.config/syncthing";
|
||||
};
|
||||
}
|
||||
@@ -1,43 +0,0 @@
|
||||
{
|
||||
host,
|
||||
inputs,
|
||||
...
|
||||
}: let
|
||||
inherit (import ../../hosts/${host}/variables.nix) consoleKeyMap;
|
||||
in {
|
||||
nix = {
|
||||
nixPath = ["nixpkgs=${inputs.nixpkgs}"];
|
||||
settings = {
|
||||
download-buffer-size = 200000000;
|
||||
auto-optimise-store = true;
|
||||
experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
substituters = ["https://hyprland.cachix.org"];
|
||||
trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="];
|
||||
};
|
||||
};
|
||||
time.timeZone = "Europe/Warsaw";
|
||||
i18n = {
|
||||
defaultLocale = "pl_PL.UTF-8";
|
||||
extraLocaleSettings = {
|
||||
LC_ADDRESS = "pl_PL.UTF-8";
|
||||
LC_IDENTIFICATION = "pl_PL.UTF-8";
|
||||
LC_MEASUREMENT = "pl_PL.UTF-8";
|
||||
LC_MONETARY = "pl_PL.UTF-8";
|
||||
LC_NAME = "pl_PL.UTF-8";
|
||||
LC_NUMERIC = "pl_PL.UTF-8";
|
||||
LC_PAPER = "pl_PL.UTF-8";
|
||||
LC_TELEPHONE = "pl_PL.UTF-8";
|
||||
LC_TIME = "pl_PL.UTF-8";
|
||||
};
|
||||
};
|
||||
environment.variables = {
|
||||
NIXOS_OZONE_WL = "1";
|
||||
GARANDOS_VERSION = "1.0";
|
||||
GARANDOS = "true";
|
||||
};
|
||||
console.keyMap = "${consoleKeyMap}";
|
||||
system.stateVersion = "23.11"; # Do not change!
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
options.tailscale.enable = lib.mkEnableOption "Tailscale";
|
||||
|
||||
config.services.tailscale = lib.mkIf config.tailscale.enable {
|
||||
enable = true;
|
||||
package = pkgs.tailscale;
|
||||
openFirewall = true;
|
||||
};
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
programs.thunar = {
|
||||
enable = true;
|
||||
plugins = with pkgs; [
|
||||
thunar-archive-plugin
|
||||
thunar-volman
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,61 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
username,
|
||||
host,
|
||||
profile,
|
||||
system,
|
||||
...
|
||||
}: let
|
||||
inherit (import ../../hosts/${host}/variables.nix) gitUsername;
|
||||
in {
|
||||
imports = [inputs.home-manager.nixosModules.home-manager];
|
||||
home-manager = {
|
||||
useUserPackages = true;
|
||||
useGlobalPkgs = false;
|
||||
backupFileExtension = "backup-nixos";
|
||||
extraSpecialArgs = {
|
||||
inherit
|
||||
inputs
|
||||
username
|
||||
host
|
||||
profile
|
||||
system
|
||||
;
|
||||
};
|
||||
users.${username} = {
|
||||
imports = [
|
||||
./../home
|
||||
../../hosts/${host}/home-modules.nix
|
||||
inputs.noctalia.homeModules.default
|
||||
];
|
||||
home = {
|
||||
username = "${username}";
|
||||
homeDirectory = "/home/${username}";
|
||||
stateVersion = "25.11";
|
||||
};
|
||||
};
|
||||
};
|
||||
users = {
|
||||
mutableUsers = true;
|
||||
users.${username} = {
|
||||
isNormalUser = true;
|
||||
description = "${gitUsername}";
|
||||
extraGroups = [
|
||||
"adbusers"
|
||||
"docker" # access to docker as non-root
|
||||
"libvirtd" # Virt manager/QEMU access
|
||||
"lp"
|
||||
"networkmanager"
|
||||
"scanner"
|
||||
"wheel" # sudo access
|
||||
"vboxusers" # Virtual Box
|
||||
"gamemode"
|
||||
];
|
||||
shell = pkgs.bash;
|
||||
ignoreShellProgramCheck = true;
|
||||
linger = true;
|
||||
};
|
||||
};
|
||||
nix.settings.allowed-users = ["${username}"];
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.virtualbox.enable = lib.mkEnableOption "Enable VirtualBox";
|
||||
|
||||
config.virtualisation.virtualbox.host = lib.mkIf config.virtualbox.enable {
|
||||
enable = true;
|
||||
package = pkgs.virtualbox;
|
||||
enableKvm = true;
|
||||
enableHardening = true;
|
||||
enableExtensionPack = false;
|
||||
addNetworkInterface = false;
|
||||
};
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
wlr.enable = true;
|
||||
extraPortals = with pkgs; [
|
||||
xdg-desktop-portal-hyprland
|
||||
xdg-desktop-portal-gtk
|
||||
];
|
||||
configPackages = [pkgs.hyprland];
|
||||
xdgOpenUsePortal = true;
|
||||
};
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{host, ...}: let
|
||||
inherit (import ../../hosts/${host}/variables.nix) keyboardLayout;
|
||||
in {
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
xkb = {
|
||||
layout = "${keyboardLayout}";
|
||||
variant = "";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
zramSwap = {
|
||||
enable = true;
|
||||
priority = 5;
|
||||
memoryMax = 16 * 1024 * 1024 * 1024;
|
||||
algorithm = "zstd";
|
||||
swapDevices = 1;
|
||||
memoryPercent = 50;
|
||||
};
|
||||
boot = {
|
||||
kernelParams = [
|
||||
"zswap.enabled=1" # enables zswap
|
||||
"zswap.compressor=zstd" # compression algorithm
|
||||
"zswap.max_pool_percent=20" # maximum percentage of RAM that zswap is allowed to use
|
||||
"zswap.shrinker_enabled=1" # whether to shrink the pool proactively on high memory pressure
|
||||
];
|
||||
tmp = {
|
||||
useZram = true;
|
||||
zramSettings = {
|
||||
compression-algorithm = "zstd";
|
||||
zram-size = "ram * 0.5";
|
||||
fs-type = "ext4";
|
||||
options = "X-mount.mode=1777,discard";
|
||||
};
|
||||
};
|
||||
};
|
||||
services.zram-generator = {
|
||||
enable = true;
|
||||
package = pkgs.zram-generator;
|
||||
settings = {};
|
||||
};
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.drivers.amdgpu;
|
||||
in {
|
||||
options.drivers.amdgpu = {
|
||||
enable = mkEnableOption "Enable AMD Drivers";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
systemd.tmpfiles.rules = ["L+ /opt/rocm/hip - - - - ${pkgs.rocmPackages.clr}"];
|
||||
services.xserver.videoDrivers = ["amdgpu"];
|
||||
environment.systemPackages = with pkgs; [rocmPackages.rocm-smi];
|
||||
};
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{...}: {
|
||||
imports = [
|
||||
./amd-drivers.nix
|
||||
./intel-drivers.nix
|
||||
./local-hardware-clock.nix
|
||||
./nvidia-drivers.nix
|
||||
./nvidia-prime-drivers.nix
|
||||
./vm-guest-services.nix
|
||||
];
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.drivers.intel;
|
||||
in {
|
||||
options.drivers.intel = {
|
||||
enable = mkEnableOption "Enable Intel Graphics Drivers";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# OpenGL
|
||||
hardware.graphics = {
|
||||
extraPackages = with pkgs; [
|
||||
intel-media-driver
|
||||
vaapiIntel
|
||||
vaapiVdpau
|
||||
libvdpau-va-gl
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.local.hardware-clock;
|
||||
in {
|
||||
options.local.hardware-clock = {
|
||||
enable = mkEnableOption "Change Hardware Clock To Local Time";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {time.hardwareClockInLocalTime = true;};
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.drivers.nvidia;
|
||||
in {
|
||||
options.drivers.nvidia = {
|
||||
enable = mkEnableOption "Enable Nvidia Drivers";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
services.xserver.videoDrivers = ["nvidia"];
|
||||
environment.systemPackages = with pkgs; [nvidia-docker];
|
||||
hardware = {
|
||||
nvidia-container-toolkit.enable = true;
|
||||
nvidia = {
|
||||
# Modesetting is required.
|
||||
modesetting.enable = true;
|
||||
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
|
||||
powerManagement.enable = true;
|
||||
# Fine-grained power management. Turns off GPU when not in use.
|
||||
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
|
||||
powerManagement.finegrained = false;
|
||||
# Use the NVidia open source kernel module (not to be confused with the
|
||||
# independent third-party "nouveau" open source driver).
|
||||
# Support is limited to the Turing and later architectures. Full list of
|
||||
# supported GPUs is at:
|
||||
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
|
||||
# Only available from driver 515.43.04+
|
||||
# Currently alpha-quality/buggy, so false is currently the recommended setting.
|
||||
open = false;
|
||||
# Enable the Nvidia settings menu,
|
||||
# accessible via `nvidia-settings`.
|
||||
nvidiaSettings = true;
|
||||
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
||||
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
# Making nvidia docker toolkit work:
|
||||
#
|
||||
# sudo nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml
|
||||
#
|
||||
# sudo nvidia-ctk cdi list
|
||||
#
|
||||
# sudo tee /etc/docker/daemon.json > /dev/null <<EOF
|
||||
# {
|
||||
# "features": {
|
||||
# "cdi": true
|
||||
# }
|
||||
# }
|
||||
# EOF
|
||||
#
|
||||
# docker run --device nvidia.com/gpu=all
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.drivers.nvidia-prime;
|
||||
in {
|
||||
options.drivers.nvidia-prime = {
|
||||
enable = mkEnableOption "Enable Nvidia Prime Hybrid GPU Offload";
|
||||
intelBusID = mkOption {
|
||||
type = types.str;
|
||||
default = "PCI:1:0:0";
|
||||
};
|
||||
nvidiaBusID = mkOption {
|
||||
type = types.str;
|
||||
default = "PCI:0:2:0";
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
hardware.nvidia = {
|
||||
prime = {
|
||||
offload = {
|
||||
enable = true;
|
||||
enableOffloadCmd = true;
|
||||
};
|
||||
# Make sure to use the correct Bus ID values for your system!
|
||||
intelBusId = "${cfg.intelBusID}";
|
||||
nvidiaBusId = "${cfg.nvidiaBusID}";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.vm.guest-services;
|
||||
in {
|
||||
options.vm.guest-services = {
|
||||
enable = mkEnableOption "Enable Virtual Machine Guest Services";
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
services.qemuGuest.enable = true;
|
||||
services.spice-vdagentd.enable = true;
|
||||
services.spice-webdavd.enable = false; # Causes navfs2 build failure invalid neon version 9-12-25
|
||||
};
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
username,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.anki.enable = lib.mkEnableOption "Anki";
|
||||
|
||||
config.programs.anki = lib.mkIf config.anki.enable {
|
||||
enable = true;
|
||||
package = pkgs.anki;
|
||||
language = "pl_PL";
|
||||
style = "native";
|
||||
profiles."${username}".sync.username = username;
|
||||
};
|
||||
}
|
||||
@@ -1,146 +0,0 @@
|
||||
{
|
||||
username,
|
||||
host,
|
||||
...
|
||||
}: {
|
||||
programs.bash.shellAliases = {
|
||||
# GarandOS aliases
|
||||
pullos = "git -C /home/${username}/garandos pull";
|
||||
upd = "nh os switch --hostname ${host}";
|
||||
upg = "nh os switch --hostname ${host} --update";
|
||||
upf = "sudo nix flake update --flake /home/${username}/garandos";
|
||||
upf-undo = "git -C /home/${username}/garandos restore /home/${username}/garandos/flake.lock";
|
||||
upd-bt = "nh os boot --hostname ${host}";
|
||||
upd-ts = "nh os test --hostname ${host}";
|
||||
upd-bd = "nh os build --hostname ${host}";
|
||||
tui = "garandos-tui";
|
||||
ncg = "nh clean all";
|
||||
|
||||
# Development aliases
|
||||
## Django
|
||||
srvenv = "source .venv/bin/activate";
|
||||
"..srvenv" = "source ../.venv/bin/activate";
|
||||
uv-add = "uv add -r requirements.txt";
|
||||
pm = "uv run manage.py";
|
||||
pm-rs = "uv run manage.py runserver";
|
||||
pm-mg = "uv run manage.py migrate";
|
||||
pm-mm = "uv run manage.py makemigrations";
|
||||
pm-sq = "uv run manage.py sqlmigrate";
|
||||
f8 = "uv run flake8 .";
|
||||
## JavaScript/TypeScript
|
||||
bbr = "bun --bun run";
|
||||
## Git
|
||||
"ga." = "git add .";
|
||||
mkgidf = "git add . --intent-to-add . && git diff > git-diff.txt";
|
||||
|
||||
# Development aliases for nix flake
|
||||
nd = "nix develop";
|
||||
nb = "nix build";
|
||||
nr = "nix run";
|
||||
nbr = "nix build && nix run";
|
||||
nbd = "nix build .#develop";
|
||||
nrd = "nix run .#develop";
|
||||
nbrd = "nix build .#develop && nix run .#develop";
|
||||
|
||||
# Development aliases for docker
|
||||
dcu = "docker compose up -d";
|
||||
dcd = "docker compose down";
|
||||
dcb = "docker compose build";
|
||||
dcub = "docker compose up -d --build";
|
||||
|
||||
# System aliases
|
||||
# flush-codium = "sudo killall codium && sudo rm -rf ~/.config/VSCodium/Cache && sudo rm -rf ~/.config/VSCodium/CachedData";
|
||||
kys = "shutdown now";
|
||||
ookla = "speedtest";
|
||||
hypr-cli = "hyprctl clients";
|
||||
|
||||
# Navigation aliases
|
||||
"~" = "cd ~";
|
||||
".." = "cd ..";
|
||||
"..." = "cd ../..";
|
||||
"...." = "cd ../../..";
|
||||
"....." = "cd ../../../..";
|
||||
|
||||
# Modifies commands
|
||||
cat = "bat";
|
||||
cp = "cp -i";
|
||||
mv = "mv -i";
|
||||
rm = "trash -v";
|
||||
mkdir = "mkdir -p";
|
||||
ps = "ps auxf";
|
||||
ping = "ping -c 10";
|
||||
less = "less -R";
|
||||
cls = "clear";
|
||||
multitail = "multitail --no-repeat -c";
|
||||
freshclam = "sudo freshclam";
|
||||
|
||||
# Alias"s for multiple directory listing commands
|
||||
la = "eza -alh --icons"; # show hidden files
|
||||
ls = "eza -aF --icons --color=always"; # add colors and file type extensions
|
||||
lx = "eza -lh --icons --sort=extension"; # sort by extension
|
||||
lk = "eza -lh --icons --sort=size --reverse"; # sort by size
|
||||
lc = "eza -lh --icons --sort=changed"; # sort by change time
|
||||
lu = "eza -lh --icons --sort=accessed"; # sort by access time
|
||||
lr = "eza -lh --icons --recurse"; # recursive ls
|
||||
lt = "eza -lh --icons --sort=modified"; # sort by date
|
||||
lm = "eza -alh --icons | more"; # pipe through "more"
|
||||
lw = "eza -xh --icons"; # wide listing format
|
||||
ll = "eza -lh --icons"; # long listing format
|
||||
labc = "eza -lah --icons --sort=name"; # alphabetical sort
|
||||
lf = "eza -lh --icons | grep -v '^d'"; # files only (przybliżenie)
|
||||
ldir = "eza -lh --icons --only-dirs"; # directories only
|
||||
lla = "eza -alh --icons"; # List and Hidden Files
|
||||
las = "eza -a --icons"; # Hidden Files
|
||||
lls = "eza -lh --icons"; # List
|
||||
|
||||
# chmod commands
|
||||
mx = "chmod a+x";
|
||||
"000" = "chmod -R 000";
|
||||
"644" = "chmod -R 644";
|
||||
"666" = "chmod -R 666";
|
||||
"755" = "chmod -R 755";
|
||||
"777" = "chmod -R 777";
|
||||
|
||||
# Search command line history
|
||||
h = "history | grep ";
|
||||
|
||||
# Search running processes
|
||||
p = "ps aux | grep ";
|
||||
topcpu = "/bin/ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10";
|
||||
|
||||
# Search files in the current folder
|
||||
f = "find . | grep ";
|
||||
|
||||
# Count all files (recursively) in the current folder
|
||||
countfiles = "for t in files links directories; do echo \`find . -type \${t:0:1} | wc -l\` \$t; done 2> /dev/null";
|
||||
|
||||
# Alias"s to show disk space and space used in a folder
|
||||
diskspace = "du -S | sort -n -r |more";
|
||||
folders = "du -h --max-depth=1";
|
||||
folderssort = "find . -maxdepth 1 -type d -print0 | xargs -0 du -sk | sort -rn";
|
||||
tree = "tree -CAhF --dirsfirst";
|
||||
treed = "tree -CAFd";
|
||||
mountedinfo = "df -hT";
|
||||
|
||||
# Show all logs in /var/log
|
||||
logs = "sudo find /var/log -type f -exec file {} \; | grep 'text' | cut -d' ' -f1 | sed -e's/:$//g' | grep -v '[0-9]$' | xargs tail -f";
|
||||
|
||||
# fix kitty ssh connection
|
||||
kssh = "kitty +kitten ssh";
|
||||
|
||||
docker-clean = "docker container prune -f ; docker image prune -f ; docker network prune -f ; docker volume prune -f";
|
||||
|
||||
# Remove a directory and all files
|
||||
rmd = "/bin/rm --recursive --force --verbose ";
|
||||
|
||||
# Fun aliases
|
||||
pasjans = "ttysolitaire -p 10 --no-background-color";
|
||||
fc = "fortune | cowsay";
|
||||
|
||||
# Network aliases
|
||||
kssh-server = "kssh hp-t640-homeserver";
|
||||
kssh-server-ts = "kssh hp-t640-homeserver-tailscale";
|
||||
ssh-server = "ssh hp-t640-homeserver";
|
||||
ssh-server-ts = "ssh hp-t640-homeserver-tailscale";
|
||||
};
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
_: {
|
||||
programs.bash = {
|
||||
enable = true;
|
||||
enableCompletion = true;
|
||||
# initExtra = ''
|
||||
# fastfetch
|
||||
# '';
|
||||
};
|
||||
imports = [
|
||||
./aliases.nix
|
||||
./functions.nix
|
||||
];
|
||||
}
|
||||
@@ -1,144 +0,0 @@
|
||||
_: {
|
||||
programs.bash.bashrcExtra = ''
|
||||
# Quick directory creation and navigation
|
||||
mkcd() {
|
||||
mkdir -p "$1" && cd "$1"
|
||||
}
|
||||
|
||||
# Extract various archive formats
|
||||
extract() {
|
||||
for archive in "$@"; do
|
||||
if [ -f "$archive" ]; then
|
||||
case "$archive" in
|
||||
*.tar.bz2) tar xvjf "$archive" ;;
|
||||
*.tar.gz) tar xvzf "$archive" ;;
|
||||
*.bz2) bunzip2 "$archive" ;;
|
||||
*.rar) unrar x "$archive" ;;
|
||||
*.gz) gunzip "$archive" ;;
|
||||
*.tar) tar xvf "$archive" ;;
|
||||
*.tbz2) tar xvjf "$archive" ;;
|
||||
*.tgz) tar xvzf "$archive" ;;
|
||||
*.zip) unzip "$archive" ;;
|
||||
*.Z) uncompress "$archive" ;;
|
||||
*.7z) 7z x "$archive" ;;
|
||||
*) echo "don't know how to extract '$archive'..." ;;
|
||||
esac
|
||||
else
|
||||
echo "'$archive' is not a valid file!"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Find files quickly
|
||||
ff() {
|
||||
find . -name "*$1*" -type f
|
||||
}
|
||||
|
||||
# Find directories quickly
|
||||
fd() {
|
||||
find . -name "*$1*" -type d
|
||||
}
|
||||
|
||||
# IP address lookup
|
||||
alias whatismyip="whatsmyip"
|
||||
function whatsmyip () {
|
||||
# Internal IP Lookup.
|
||||
if command -v ip &> /dev/null; then
|
||||
echo -n "Internal IP: "
|
||||
ip addr show wlan0 | grep "inet " | awk '{print $2}' | cut -d/ -f1
|
||||
else
|
||||
echo -n "Internal IP: "
|
||||
ifconfig wlan0 | grep "inet " | awk '{print $2}'
|
||||
fi
|
||||
|
||||
# External IP Lookup
|
||||
echo -n "External IP: "
|
||||
curl -4 ifconfig.me
|
||||
}
|
||||
|
||||
# Searches for text in all files in the current folder
|
||||
ftext() {
|
||||
# -i case-insensitive
|
||||
# -I ignore binary files
|
||||
# -H causes filename to be printed
|
||||
# -r recursive search
|
||||
# -n causes line number to be printed
|
||||
# optional: -F treat search term as a literal, not a regular expression
|
||||
# optional: -l only print filenames and not the matching lines ex. grep -irl "$1" *
|
||||
grep -iIHrn --color=always "$1" . | less -r
|
||||
}
|
||||
|
||||
# Copy file with a progress bar
|
||||
cpp() {
|
||||
set -e
|
||||
strace -q -ewrite cp -- "$1" "$2" 2>&1 |
|
||||
awk '{
|
||||
count += $NF
|
||||
if (count % 10 == 0) {
|
||||
percent = count / total_size * 100
|
||||
printf "%3d%% [", percent
|
||||
for (i=0;i<=percent;i++)
|
||||
printf "="
|
||||
printf ">"
|
||||
for (i=percent;i<100;i++)
|
||||
printf " "
|
||||
printf "]\r"
|
||||
}
|
||||
}
|
||||
END { print "" }' total_size="$(stat -c '%s' "$1")" count=0
|
||||
}
|
||||
|
||||
# Copy and go to the directory
|
||||
cpg() {
|
||||
if [ -d "$2" ]; then
|
||||
cp "$1" "$2" && cd "$2"
|
||||
else
|
||||
cp "$1" "$2"
|
||||
fi
|
||||
}
|
||||
|
||||
# Move and go to the directory
|
||||
mvg() {
|
||||
if [ -d "$2" ]; then
|
||||
mv "$1" "$2" && cd "$2"
|
||||
else
|
||||
mv "$1" "$2"
|
||||
fi
|
||||
}
|
||||
|
||||
# Create and go to the directory
|
||||
mkdirg() {
|
||||
mkdir -p "$1"
|
||||
cd "$1"
|
||||
}
|
||||
|
||||
# Goes up a specified number of directories (i.e. up 4)
|
||||
up() {
|
||||
local d=""
|
||||
limit=$1
|
||||
for ((i = 1; i <= limit; i++)); do
|
||||
d=$d/..
|
||||
done
|
||||
d=$(echo $d | sed 's/^\///')
|
||||
if [ -z "$d" ]; then
|
||||
d=..
|
||||
fi
|
||||
cd $d
|
||||
}
|
||||
|
||||
# Automatically do an ls after each cd, z, or zoxide
|
||||
cd ()
|
||||
{
|
||||
if [ -n "$1" ]; then
|
||||
builtin cd "$@" && ls
|
||||
else
|
||||
builtin cd ~ && ls
|
||||
fi
|
||||
}
|
||||
|
||||
# Returns the last 2 fields of the working directory
|
||||
pwdtail() {
|
||||
pwd | awk -F/ '{nlast = NF -1;print $nlast"/"$NF}'
|
||||
}
|
||||
'';
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
programs.bat = {
|
||||
enable = true;
|
||||
config = {
|
||||
pager = "less -FR";
|
||||
style = "full";
|
||||
theme = lib.mkForce "base16";
|
||||
};
|
||||
extraPackages = with pkgs.bat-extras; [
|
||||
batman
|
||||
batpipe
|
||||
batgrep
|
||||
];
|
||||
};
|
||||
home.sessionVariables = {
|
||||
MANPAGER = "sh -c 'col -bx | bat -l man -p'";
|
||||
MANROFFOPT = "-c";
|
||||
};
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.btop.enable = lib.mkEnableOption "Btop";
|
||||
|
||||
config.programs.btop = lib.mkIf config.btop.enable {
|
||||
enable = true;
|
||||
package = pkgs.btop.override {
|
||||
rocmSupport = true;
|
||||
cudaSupport = true;
|
||||
};
|
||||
settings = {
|
||||
rounded_corners = true;
|
||||
proc_tree = true;
|
||||
show_gpu_info = "on";
|
||||
show_uptime = true;
|
||||
show_coretemp = true;
|
||||
cpu_sensor = "auto";
|
||||
show_disks = true;
|
||||
only_physical = true;
|
||||
io_mode = true;
|
||||
io_graph_combined = false;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.cava.enable = lib.mkEnableOption "Cava";
|
||||
|
||||
config.programs.cava = lib.mkIf config.cava.enable {
|
||||
enable = true;
|
||||
settings = {
|
||||
general = {
|
||||
bar_spacing = 1;
|
||||
bar_width = 2;
|
||||
frame_rate = 144;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.ungoogled-chromium.enable = lib.mkEnableOption "Ungoogled Chromium";
|
||||
|
||||
config.programs.chromium = lib.mkIf config.ungoogled-chromium.enable {
|
||||
enable = true;
|
||||
package = pkgs.ungoogled-chromium;
|
||||
# commandLineArgs = [ ];
|
||||
dictionaries = with pkgs; [
|
||||
hunspellDictsChromium.en_US
|
||||
# hunspellDictsChromium.pl_PL Jeśli się taka pojawi
|
||||
];
|
||||
};
|
||||
|
||||
imports = [
|
||||
./extensions.nix
|
||||
];
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
_: {
|
||||
programs.chromium.extensions = [
|
||||
{
|
||||
id = "ocaahdebbfolfmndjeplogmgcagdmblk"; # Chromium Web Store
|
||||
}
|
||||
{
|
||||
id = "eimadpbcbfnmbkopoojfekhnkhdbieeh"; # Dark Reader
|
||||
}
|
||||
{
|
||||
id = "fnaicdffflnofjppbagibeoednhnbjhg"; # floccus bookmarks sync
|
||||
}
|
||||
{
|
||||
id = "amknoiejhlmhancpahfcfcfhllgkpbld"; # Hoppscotch Browser Extension
|
||||
}
|
||||
{
|
||||
id = "nngceckbapebfimnlniiiahkandclblb"; # Menedżer haseł Bitwarden
|
||||
}
|
||||
{
|
||||
id = "fdaphilojaklgkoocegabckfanjoacjg"; # mtab
|
||||
}
|
||||
{
|
||||
id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; # uBlock Origin
|
||||
}
|
||||
];
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
_: {
|
||||
imports = [
|
||||
./bash
|
||||
./chromium
|
||||
./fastfetch
|
||||
./hyprland
|
||||
./kitty
|
||||
./librewolf
|
||||
./noctalia
|
||||
./scripts
|
||||
./vscodium
|
||||
./xdg
|
||||
./zed
|
||||
./anki.nix
|
||||
./bat.nix
|
||||
./btop.nix
|
||||
./cava.nix
|
||||
./emoji.nix
|
||||
./eza.nix
|
||||
./fzf.nix
|
||||
./git.nix
|
||||
./gtk.nix
|
||||
./kdeConnect.nix
|
||||
./lutris.nix
|
||||
./nextcloud.nix
|
||||
./obs-studio.nix
|
||||
./onlyoffice.nix
|
||||
./qt.nix
|
||||
./ssh.nix
|
||||
./starship.nix
|
||||
./stylix.nix
|
||||
./swappy.nix
|
||||
./tealdeer.nix
|
||||
./vesktop.nix
|
||||
./virtmanager.nix
|
||||
./zoxide.nix
|
||||
];
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,20 +0,0 @@
|
||||
# Eza is a ls replacement
|
||||
{
|
||||
programs.eza = {
|
||||
enable = true;
|
||||
icons = "auto";
|
||||
enableBashIntegration = true;
|
||||
git = true;
|
||||
|
||||
extraOptions = [
|
||||
"--group-directories-first"
|
||||
"--no-quotes"
|
||||
"--header" # Show header row
|
||||
"--git-ignore"
|
||||
"--icons=always"
|
||||
# "--time-style=long-iso" # ISO 8601 extended format for time
|
||||
"--classify" # append indicator (/, *, =, @, |)
|
||||
"--hyperlink" # make paths clickable in some terminals
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.fastfetch.enable = lib.mkEnableOption "FastFetch";
|
||||
|
||||
config.programs.fastfetch = lib.mkIf config.fastfetch.enable {
|
||||
enable = true;
|
||||
package = pkgs.fastfetch;
|
||||
};
|
||||
|
||||
imports = [
|
||||
./settings
|
||||
];
|
||||
}
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 31 KiB |
@@ -1,7 +0,0 @@
|
||||
_: {
|
||||
imports = [
|
||||
./display.nix
|
||||
./logo.nix
|
||||
./modules.nix
|
||||
];
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
_: {
|
||||
programs.fastfetch.settings.display = {
|
||||
color = {
|
||||
keys = "35";
|
||||
output = "90";
|
||||
};
|
||||
separator = " ➜ ";
|
||||
};
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
_: {
|
||||
programs.fastfetch.settings.logo = {
|
||||
source = ../garandos.png;
|
||||
type = "kitty-direct";
|
||||
height = 15;
|
||||
width = 30;
|
||||
padding = {
|
||||
top = 3;
|
||||
left = 3;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,159 +0,0 @@
|
||||
_: {
|
||||
programs.fastfetch.settings.modules = [
|
||||
"break"
|
||||
{
|
||||
type = "custom";
|
||||
format = "┌─────────────────────────────────Hardware────────────────────────────────┐";
|
||||
}
|
||||
{
|
||||
type = "host";
|
||||
format = "{5} {1} Type {2}";
|
||||
key = "│ PC";
|
||||
keyColor = "33";
|
||||
}
|
||||
{
|
||||
type = "cpu";
|
||||
format = "{1} ({3}) @ {7} GHz";
|
||||
key = "│ ├ ";
|
||||
keyColor = "33";
|
||||
}
|
||||
{
|
||||
type = "gpu";
|
||||
format = "{1} {2} @ {12} GHz";
|
||||
key = "│ ├ ";
|
||||
keyColor = "33";
|
||||
}
|
||||
{
|
||||
type = "memory";
|
||||
key = "│ ├ ";
|
||||
keyColor = "33";
|
||||
}
|
||||
{
|
||||
type = "swap";
|
||||
key = "│ ├ ";
|
||||
keyColor = "33";
|
||||
}
|
||||
{
|
||||
type = "disk";
|
||||
key = "│ ├ ";
|
||||
keyColor = "33";
|
||||
}
|
||||
{
|
||||
type = "monitor";
|
||||
key = "│ └ ";
|
||||
keyColor = "33";
|
||||
}
|
||||
{
|
||||
type = "custom";
|
||||
format = "└──────────────────────────────────────────────────────────────────────────┘";
|
||||
}
|
||||
|
||||
"break"
|
||||
{
|
||||
type = "custom";
|
||||
format = "┌─────────────────────────────────Software─────────────────────────────────┐";
|
||||
}
|
||||
{
|
||||
type = "os";
|
||||
key = "│ OS";
|
||||
keyColor = "31";
|
||||
}
|
||||
{
|
||||
type = "command";
|
||||
key = "│ ├ ";
|
||||
keyColor = "31";
|
||||
text = "echo GarandOS v$" + "{GARANDOS_VERSION}";
|
||||
}
|
||||
{
|
||||
type = "kernel";
|
||||
key = "│ ├ ";
|
||||
keyColor = "31";
|
||||
}
|
||||
{
|
||||
type = "packages";
|
||||
key = "│ ├ ";
|
||||
keyColor = "31";
|
||||
}
|
||||
{
|
||||
type = "shell";
|
||||
key = "│ └ ";
|
||||
keyColor = "31";
|
||||
}
|
||||
{
|
||||
type = "wm";
|
||||
key = "│ WM";
|
||||
keyColor = "32";
|
||||
}
|
||||
{
|
||||
type = "wmtheme";
|
||||
key = "│ ├ ";
|
||||
keyColor = "32";
|
||||
}
|
||||
{
|
||||
type = "icons";
|
||||
key = "│ ├ ";
|
||||
keyColor = "32";
|
||||
}
|
||||
{
|
||||
type = "cursor";
|
||||
key = "│ ├ ";
|
||||
keyColor = "32";
|
||||
}
|
||||
{
|
||||
type = "terminal";
|
||||
key = "│ ├ ";
|
||||
keyColor = "32";
|
||||
}
|
||||
{
|
||||
type = "terminalfont";
|
||||
key = "│ └ ";
|
||||
keyColor = "32";
|
||||
}
|
||||
{
|
||||
type = "custom";
|
||||
format = "└──────────────────────────────────────────────────────────────────────────┘";
|
||||
}
|
||||
|
||||
"break"
|
||||
{
|
||||
type = "custom";
|
||||
format = "┌───────────────────────────────Age / Uptime───────────────────────────────┐";
|
||||
}
|
||||
{
|
||||
type = "command";
|
||||
key = "│ IN";
|
||||
text =
|
||||
#bash
|
||||
''
|
||||
birth_install=$(stat -c %W /)
|
||||
if [ "$birth_install" -gt 0 ]; then
|
||||
echo "Installed $(date -d @"$birth_install" +"%Y-%m-%d")"
|
||||
else
|
||||
echo "Installation date unknown"
|
||||
fi
|
||||
'';
|
||||
}
|
||||
{
|
||||
type = "command";
|
||||
key = "│ ├ ";
|
||||
text =
|
||||
#bash
|
||||
''
|
||||
birth_install=$(stat -c %W /)
|
||||
current=$(date +%s)
|
||||
delta=$((current - birth_install))
|
||||
delta_days=$((delta / 86400))
|
||||
echo $delta_days days
|
||||
'';
|
||||
}
|
||||
{
|
||||
type = "uptime";
|
||||
key = "│ └ ";
|
||||
}
|
||||
{
|
||||
type = "custom";
|
||||
format = "└──────────────────────────────────────────────────────────────────────────┘";
|
||||
}
|
||||
"break"
|
||||
];
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
# Fzf is a general-purpose command-line fuzzy finder.
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
accent = "#" + config.lib.stylix.colors.base0D;
|
||||
foreground = "#" + config.lib.stylix.colors.base05;
|
||||
muted = "#" + config.lib.stylix.colors.base03;
|
||||
in {
|
||||
programs.fzf = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
colors = lib.mkForce {
|
||||
"fg+" = accent;
|
||||
"bg+" = "-1";
|
||||
"fg" = foreground;
|
||||
"bg" = "-1";
|
||||
"prompt" = muted;
|
||||
"pointer" = accent;
|
||||
};
|
||||
defaultOptions = [
|
||||
"--margin=1"
|
||||
"--layout=reverse"
|
||||
"--border=none"
|
||||
"--info='hidden'"
|
||||
"--header=''"
|
||||
"--prompt='/ '"
|
||||
"-i"
|
||||
"--no-bold"
|
||||
"--bind='enter:execute(nano {})'"
|
||||
"--preview='bat --style=numbers --color=always --line-range :500 {}'"
|
||||
"--preview-window=right:60%:wrap"
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
{host, ...}: let
|
||||
inherit (import ../../hosts/${host}/variables.nix) gitUsername gitEmail;
|
||||
in {
|
||||
programs.git = {
|
||||
enable = true;
|
||||
settings = {
|
||||
user = {
|
||||
name = "${gitUsername}";
|
||||
email = "${gitEmail}";
|
||||
};
|
||||
push.default = "simple";
|
||||
credential.helper = "cache --timeout=7200";
|
||||
init.defaultBranch = "main";
|
||||
log = {
|
||||
decorate = "full";
|
||||
date = "iso";
|
||||
};
|
||||
merge.conflictStyle = "diff3";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
gtk = {
|
||||
iconTheme = {
|
||||
name = "Papirus-Dark";
|
||||
package = pkgs.papirus-icon-theme;
|
||||
};
|
||||
gtk3.extraConfig.gtk-application-prefer-dark-theme = 1;
|
||||
gtk4 = {
|
||||
theme = null;
|
||||
extraConfig = {
|
||||
gtk-application-prefer-dark-theme = 1;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
_: {
|
||||
wayland.windowManager.hyprland.settings.animations = {
|
||||
enabled = true;
|
||||
bezier = [
|
||||
"linear, 0, 0, 1, 1"
|
||||
"md3_standard, 0.2, 0, 0, 1"
|
||||
"md3_decel, 0.05, 0.7, 0.1, 1"
|
||||
"md3_accel, 0.3, 0, 0.8, 0.15"
|
||||
"overshot, 0.05, 0.9, 0.1, 1.1"
|
||||
"crazyshot, 0.1, 1.5, 0.76, 0.92 "
|
||||
"hyprnostretch, 0.05, 0.9, 0.1, 1.0"
|
||||
"menu_decel, 0.1, 1, 0, 1"
|
||||
"menu_accel, 0.38, 0.04, 1, 0.07"
|
||||
"easeInOutCirc, 0.85, 0, 0.15, 1"
|
||||
"easeOutCirc, 0, 0.55, 0.45, 1"
|
||||
"easeOutExpo, 0.16, 1, 0.3, 1"
|
||||
"softAcDecel, 0.26, 0.26, 0.15, 1"
|
||||
"md2, 0.4, 0, 0.2, 1 # use with .2s duration"
|
||||
];
|
||||
animation = [
|
||||
"windows, 1, 3, md3_decel, popin 60%"
|
||||
"windowsIn, 1, 3, md3_decel, popin 60%"
|
||||
"windowsOut, 1, 3, md3_accel, popin 60%"
|
||||
"border, 1, 10, default"
|
||||
"fade, 1, 3, md3_decel"
|
||||
"layersIn, 1, 3, menu_decel, slide"
|
||||
"layersOut, 1, 1.6, menu_accel"
|
||||
"fadeLayersIn, 1, 2, menu_decel"
|
||||
"fadeLayersOut, 1, 4.5, menu_accel"
|
||||
"workspaces, 1, 7, menu_decel, slide"
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,166 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
username,
|
||||
...
|
||||
}: let
|
||||
desktopEntriesPath = "/home/${username}/.local/state/home-manager/gcroots/current-home/home-path/share/applications/";
|
||||
|
||||
mainBinds = [
|
||||
"SUPER, A, exec, anki #\"Flashcard learning application\""
|
||||
"SUPER, B, exec, bitwarden #\"Password manager\""
|
||||
"SUPER, C, exec, chromium #\"Ungoogled Chromium\""
|
||||
"SUPER, D, exec, vesktop #\"Discord client\""
|
||||
"SUPER, E, exec, noctalia-shell ipc call launcher emoji #\"Emoji picker\""
|
||||
"SUPER, Escape, exec, noctalia-shell ipc call lockScreen lock #\"Lock the screen\""
|
||||
"SUPER, G, exec, affinity-v3 #\"Graphics editor\""
|
||||
"SUPER, I, exec, iotas #\"Note-taking app\""
|
||||
"SUPER, J, exec, Jan #\"Local AI chat interface\""
|
||||
"SUPER, K, exec, gnome-calculator #\"Scientific calculator\""
|
||||
"SUPER, L, exec, logseq #\"Knowledge management tool\""
|
||||
"SUPER, M, exec, plexamp #\"Music player for Plex\""
|
||||
"SUPER, N, exec, dex ${desktopEntriesPath}/garandcloud.desktop #\"GarandCloud client\""
|
||||
"SUPER, O, exec, onlyoffice-desktopeditors #\"Office suite\""
|
||||
"SUPER, P, exec, plex-desktop #\"Plex media player\""
|
||||
"SUPER, Return, exec, kitty #\"Kitty terminal\""
|
||||
"SUPER, S, exec, steam #\"Steam Game launcher\""
|
||||
"SUPER, T, exec, thunar #\"File manager\""
|
||||
"SUPER, V, exec, codium #\"VS Codium\""
|
||||
"SUPER, W, exec, librewolf #\"Main Web browser (Librewolf)\""
|
||||
"SUPER, Z, exec, zeditor #\"Zed IDE\""
|
||||
];
|
||||
|
||||
shiftBinds = [
|
||||
"SUPER SHIFT, C, exec, dex ${desktopEntriesPath}/claude.desktop #\"Claude AI chat\""
|
||||
"SUPER SHIFT, E, exec, evolution #\"Personal information management application\""
|
||||
"SUPER SHIFT, Escape, exec, noctalia-shell ipc call sessionMenu toggle #\"Open Session Menu\""
|
||||
"SUPER SHIFT, G, exec, dex ${desktopEntriesPath}/chatgpt.desktop #\"ChatGPT AI chat\""
|
||||
"SUPER SHIFT, K, exec, noctalia-shell ipc call plugin:keybind-cheatsheet toggle #\"Toggle keybind cheatsheet\""
|
||||
"SUPER SHIFT, M, exec, dex ${desktopEntriesPath}/messenger.desktop #\"Facebook Messenger client\""
|
||||
"SUPER SHIFT, N, exec, nextcloud #\"Nextcloud desktop sync client\""
|
||||
"SUPER SHIFT, O, exec, obs #\"Open Broadcaster Software\""
|
||||
"SUPER SHIFT, P, exec, noctalia-shell ipc call volume togglePanel #\"Toggle volume control panel\""
|
||||
"SUPER SHIFT, R, exec, restart.noctalia #\"Restart Noctalia shell\""
|
||||
"SUPER SHIFT, Return, exec, noctalia-shell ipc call launcher toggle #\"Toggle application launcher\""
|
||||
"SUPER SHIFT, S, exec, screenshootin #\"Take screenshot\""
|
||||
"SUPER SHIFT, T, exec, tutanota-desktop #\"Tutanota encrypted email client\""
|
||||
"SUPER SHIFT, V, exec, noctalia-shell ipc call launcher clipboard #\"Open clipboard manager\""
|
||||
];
|
||||
|
||||
altBinds = [
|
||||
"SUPER ALT, C, exec, noctalia-shell ipc call controlCenter toggle #\"Toggle control center\""
|
||||
"SUPER ALT, G, exec, dex ${desktopEntriesPath}/glance.desktop #\"Glance server panel\""
|
||||
"SUPER ALT, M, exec, dex ${desktopEntriesPath}/mastodon.desktop #\"Mastodon social network client\""
|
||||
"SUPER ALT, P, exec, noctalia-shell ipc call settings toggle #\"Open settings panel\""
|
||||
"SUPER ALT, S, exec, slack #\"Slack team communication tool\""
|
||||
"SUPER ALT, T, exec, gedit #\"GNOME text editor\""
|
||||
"SUPER ALT, W, exec, noctalia-shell ipc call wallpaper toggle #\"Toggle wallpaper\""
|
||||
];
|
||||
|
||||
controlBinds = [
|
||||
"SUPER CONTROL, C, exec, noctalia-shell ipc call powerProfile cycle #\"Cycle through power profiles\""
|
||||
"SUPER CONTROL, G, exec, gimp #\"GNU Image Manipulation Program\""
|
||||
"SUPER CONTROL, M, exec, mattermost-desktop #\"Mattermost team chat client\""
|
||||
"SUPER CONTROL, S, exec, signal-desktop #\"Signal encrypted messaging\""
|
||||
"SUPER CONTROL, P, exec, hyprpicker -a #\"Pick color from screen\""
|
||||
];
|
||||
|
||||
windowManagementBinds = [
|
||||
"SUPER, F, fullscreen, #\"Toggle fullscreen mode\""
|
||||
"SUPER, Q, killactive, #\"Close active window\""
|
||||
"SUPER SHIFT, I, togglesplit, #\"Toggle split layout\""
|
||||
"SUPER SHIFT, F, togglefloating, #\"Toggle floating mode\""
|
||||
];
|
||||
|
||||
windowFocusBinds = [
|
||||
"SUPER, down, movefocus, d #\"Move focus down\""
|
||||
"SUPER, left, movefocus, l #\"Move focus left\""
|
||||
"SUPER, right, movefocus, r #\"Move focus right\""
|
||||
"SUPER, up, movefocus, u #\"Move focus up\""
|
||||
];
|
||||
|
||||
windowMovementBinds = [
|
||||
"SUPER SHIFT, down, movewindow, d #\"Move window down\""
|
||||
"SUPER SHIFT, left, movewindow, l #\"Move window left\""
|
||||
"SUPER SHIFT, right, movewindow, r #\"Move window right\""
|
||||
"SUPER SHIFT, up, movewindow, u #\"Move window up\""
|
||||
];
|
||||
|
||||
windowSwapBinds = [
|
||||
"SUPER ALT, down, swapwindow, d #\"Swap active window with window below\""
|
||||
"SUPER ALT, left, swapwindow, l #\"Swap active window with window on the left\""
|
||||
"SUPER ALT, right, swapwindow, r #\"Swap active window with window on the right\""
|
||||
"SUPER ALT, up, swapwindow, u #\"Swap active window with window above\""
|
||||
];
|
||||
|
||||
workspacesSwitchBinds = [
|
||||
"SUPER, 0, workspace, 10 #\"Switch to workspace 10\""
|
||||
"SUPER, 1, workspace, 1 #\"Switch to workspace 1\""
|
||||
"SUPER, 2, workspace, 2 #\"Switch to workspace 2\""
|
||||
"SUPER, 3, workspace, 3 #\"Switch to workspace 3\""
|
||||
"SUPER, 4, workspace, 4 #\"Switch to workspace 4\""
|
||||
"SUPER, 5, workspace, 5 #\"Switch to workspace 5\""
|
||||
"SUPER, 6, workspace, 6 #\"Switch to workspace 6\""
|
||||
"SUPER, 7, workspace, 7 #\"Switch to workspace 7\""
|
||||
"SUPER, 8, workspace, 8 #\"Switch to workspace 8\""
|
||||
"SUPER, 9, workspace, 9 #\"Switch to workspace 9\""
|
||||
"SUPER CONTROL, left, workspace, e-1 #\"Switch to previous workspace\""
|
||||
"SUPER CONTROL, right, workspace, e+1 #\"Switch to next workspace\""
|
||||
"SUPER, mouse_down, workspace, e+1 #\"Switch to next workspace with mouse\""
|
||||
"SUPER, mouse_up, workspace, e-1 #\"Switch to previous workspace with mouse\""
|
||||
];
|
||||
|
||||
workspacesSwapBinds = [
|
||||
"SUPER SHIFT, 0, movetoworkspace, 10 #\"Move active window to workspace 10\""
|
||||
"SUPER SHIFT, 1, movetoworkspace, 1 #\"Move active window to workspace 1\""
|
||||
"SUPER SHIFT, 2, movetoworkspace, 2 #\"Move active window to workspace 2\""
|
||||
"SUPER SHIFT, 3, movetoworkspace, 3 #\"Move active window to workspace 3\""
|
||||
"SUPER SHIFT, 4, movetoworkspace, 4 #\"Move active window to workspace 4\""
|
||||
"SUPER SHIFT, 5, movetoworkspace, 5 #\"Move active window to workspace 5\""
|
||||
"SUPER SHIFT, 6, movetoworkspace, 6 #\"Move active window to workspace 6\""
|
||||
"SUPER SHIFT, 7, movetoworkspace, 7 #\"Move active window to workspace 7\""
|
||||
"SUPER SHIFT, 8, movetoworkspace, 8 #\"Move active window to workspace 8\""
|
||||
"SUPER SHIFT, 9, movetoworkspace, 9 #\"Move active window to workspace 9\""
|
||||
];
|
||||
|
||||
systemMediaAndControllsBinds = [
|
||||
",XF86AudioLowerVolume, exec, noctalia-shell ipc call volume decrease #\"Lower system volume\""
|
||||
",XF86AudioMute, exec, noctalia-shell ipc call volume muteOutput #\"Mute audio output\""
|
||||
",XF86AudioMicMute, exec, noctalia-shell ipc call volume muteInput #\"Mute audio input\""
|
||||
",XF86AudioNext, exec, noctalia-shell ipc call media next #\"Next media track\""
|
||||
",XF86AudioPlay, exec, noctalia-shell ipc call media playPause #\"Play/Pause media\""
|
||||
",XF86AudioPrev, exec, noctalia-shell ipc call media previous #\"Previous media track\""
|
||||
",XF86AudioRaiseVolume, exec, noctalia-shell ipc call volume increase #\"Raise system volume\""
|
||||
",XF86MonBrightnessDown, exec, noctalia-shell ipc call brightness decrease #\"Decrease screen brightness\""
|
||||
",XF86MonBrightnessUp, exec, noctalia-shell ipc call brightness increase #\"Increase screen brightness\""
|
||||
];
|
||||
|
||||
mkBlock = header: lines:
|
||||
lib.concatLines (
|
||||
["# ${header}"]
|
||||
++ (map (l: "bind = ${l}") lines)
|
||||
);
|
||||
|
||||
fullConfig = lib.concatLines [
|
||||
""
|
||||
(mkBlock "1. MAIN APPS" mainBinds)
|
||||
(mkBlock "2. SHIFT APPS" shiftBinds)
|
||||
(mkBlock "3. ALT APPS" altBinds)
|
||||
(mkBlock "4. CONTROL APPS" controlBinds)
|
||||
(mkBlock "5. WINDOW MANAGEMENT" windowManagementBinds)
|
||||
(mkBlock "6. WINDOWS FOCUS" windowFocusBinds)
|
||||
(mkBlock "7. WINDOWS MOVEMENT" windowMovementBinds)
|
||||
(mkBlock "8. WINDOWS SWAP" windowSwapBinds)
|
||||
(mkBlock "9. WORKSPACES SWITCH" workspacesSwitchBinds)
|
||||
(mkBlock "10. WORKSPACES SWAP" workspacesSwapBinds)
|
||||
(mkBlock "11. SYSTEM MEDIA & CONTROLS" systemMediaAndControllsBinds)
|
||||
];
|
||||
in {
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
extraConfig = fullConfig;
|
||||
|
||||
bindm = [
|
||||
"SUPER, mouse:272, movewindow"
|
||||
"SUPER, mouse:273, resizewindow"
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
_: {
|
||||
imports = [
|
||||
./animations.nix
|
||||
./binds.nix
|
||||
./env.nix
|
||||
./exec-once.nix
|
||||
./hypridle.nix
|
||||
./hyprland.nix
|
||||
./pyprland.nix
|
||||
./windowrules.nix
|
||||
];
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
_: {
|
||||
wayland.windowManager.hyprland.settings.env = [
|
||||
"NIXOS_OZONE_WL, 1"
|
||||
"NIXPKGS_ALLOW_UNFREE, 1"
|
||||
"XDG_CURRENT_DESKTOP, Hyprland"
|
||||
"XDG_SESSION_TYPE, wayland"
|
||||
"XDG_SESSION_DESKTOP, Hyprland"
|
||||
"GDK_BACKEND, wayland, x11"
|
||||
"CLUTTER_BACKEND, wayland"
|
||||
"QT_QPA_PLATFORM=wayland;xcb"
|
||||
"QT_WAYLAND_DISABLE_WINDOWDECORATION, 1"
|
||||
"QT_AUTO_SCREEN_SCALE_FACTOR, 1"
|
||||
"SDL_VIDEODRIVER, x11"
|
||||
"MOZ_ENABLE_WAYLAND, 1"
|
||||
# This is to make electron apps start in wayland
|
||||
"ELECTRON_OZONE_PLATFORM_HINT,wayland"
|
||||
# Disabling this by default as it can result in inop cfg
|
||||
# Added card2 in case this gets enabled. For better coverage
|
||||
# This is mostly needed by Hybrid laptops.
|
||||
# but if you have multiple discrete GPUs this will set order
|
||||
#"AQ_DRM_DEVICES,/dev/dri/card0:/dev/dri/card1:/dev/card2"
|
||||
"GDK_SCALE,1"
|
||||
"QT_SCALE_FACTOR,1"
|
||||
"EDITOR,nano"
|
||||
"TERMINAL,kitty"
|
||||
"XDG_TERMINAL_EMULATOR,kitty"
|
||||
];
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
_: {
|
||||
wayland.windowManager.hyprland.settings.exec-once = [
|
||||
"wl-paste --type text --watch cliphist store" # Saves text
|
||||
"wl-paste --type image --watch cliphist store" # Saves images
|
||||
"dbus-update-activation-environment --all --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
|
||||
"systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
|
||||
"systemctl --user start hyprpolkitagent"
|
||||
];
|
||||
}
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 38 KiB |
@@ -1,18 +0,0 @@
|
||||
_: {
|
||||
services.hypridle = {
|
||||
enable = true;
|
||||
settings = {
|
||||
general = {
|
||||
after_sleep_cmd = "hyprctl dispatch dpms on";
|
||||
ignore_dbus_inhibit = false;
|
||||
};
|
||||
listener = [
|
||||
{
|
||||
timeout = 1200;
|
||||
on-timeout = "hyprctl dispatch dpms off";
|
||||
on-resume = "hyprctl dispatch dpms on";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,153 +0,0 @@
|
||||
{
|
||||
host,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
inherit (import ../../../hosts/${host}/variables.nix) extraMonitorSettings keyboardLayout;
|
||||
in {
|
||||
systemd.user.targets.hyprland-session.Unit.Wants = [
|
||||
"xdg-desktop-autostart.target"
|
||||
];
|
||||
# Place Files Inside Home Directory
|
||||
home.file = {
|
||||
"Pictures/Wallpapers" = {
|
||||
source = ../../../wallpapers;
|
||||
recursive = true;
|
||||
};
|
||||
".face.icon".source = ./face.jpg;
|
||||
".config/face.jpg".source = ./face.jpg;
|
||||
};
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
package = pkgs.hyprland;
|
||||
systemd = {
|
||||
enable = true;
|
||||
enableXdgAutostart = true;
|
||||
variables = ["--all"];
|
||||
};
|
||||
xwayland.enable = true;
|
||||
settings = {
|
||||
input = {
|
||||
kb_layout = "${keyboardLayout}";
|
||||
kb_options = [
|
||||
"grp:alt_caps_toggle"
|
||||
"caps:super"
|
||||
];
|
||||
numlock_by_default = true;
|
||||
repeat_delay = 300;
|
||||
follow_mouse = 1;
|
||||
float_switch_override_focus = 0;
|
||||
sensitivity = 0;
|
||||
touchpad = {
|
||||
natural_scroll = true;
|
||||
disable_while_typing = true;
|
||||
scroll_factor = 0.8;
|
||||
};
|
||||
};
|
||||
|
||||
gestures = {
|
||||
# workspace_swipe = 1;
|
||||
# workspace_swipe_fingers = 3;
|
||||
workspace_swipe_distance = 500;
|
||||
workspace_swipe_invert = 1;
|
||||
workspace_swipe_min_speed_to_force = 30;
|
||||
workspace_swipe_cancel_ratio = 0.5;
|
||||
workspace_swipe_create_new = 1;
|
||||
workspace_swipe_forever = 1;
|
||||
};
|
||||
|
||||
general = {
|
||||
layout = "dwindle";
|
||||
gaps_in = 6;
|
||||
gaps_out = 8;
|
||||
border_size = 2;
|
||||
resize_on_border = true;
|
||||
"col.active_border" = "rgb(${config.lib.stylix.colors.base08}) rgb(${config.lib.stylix.colors.base0C}) 45deg";
|
||||
"col.inactive_border" = "rgb(${config.lib.stylix.colors.base01})";
|
||||
};
|
||||
|
||||
misc = {
|
||||
layers_hog_keyboard_focus = true;
|
||||
initial_workspace_tracking = 0;
|
||||
mouse_move_enables_dpms = true;
|
||||
key_press_enables_dpms = false;
|
||||
disable_hyprland_logo = true;
|
||||
disable_splash_rendering = true;
|
||||
enable_swallow = true;
|
||||
swallow_regex = "^(kitty)$";
|
||||
vfr = true; # Variable Frame Rate
|
||||
vrr = 2; # Variable Refresh Rate Might need to set to 0 for NVIDIA/AQ_DRM_DEVICES
|
||||
# Screen flashing to black momentarily or going black when app is fullscreen
|
||||
# Try setting vrr to 0
|
||||
|
||||
# Application not responding (ANR) settings
|
||||
enable_anr_dialog = true;
|
||||
anr_missed_pings = 15;
|
||||
};
|
||||
|
||||
dwindle = {
|
||||
pseudotile = true;
|
||||
preserve_split = true;
|
||||
force_split = 2;
|
||||
};
|
||||
|
||||
decoration = {
|
||||
rounding = 10;
|
||||
rounding_power = 2;
|
||||
blur = {
|
||||
enabled = true;
|
||||
size = 5;
|
||||
passes = 3;
|
||||
vibrancy = 0.1696;
|
||||
ignore_opacity = false;
|
||||
new_optimizations = true;
|
||||
};
|
||||
shadow = {
|
||||
enabled = true;
|
||||
range = 4;
|
||||
render_power = 3;
|
||||
color = "rgba(1a1a1aee)";
|
||||
};
|
||||
};
|
||||
|
||||
ecosystem = {
|
||||
no_donation_nag = true;
|
||||
no_update_news = false;
|
||||
};
|
||||
|
||||
cursor = {
|
||||
sync_gsettings_theme = true;
|
||||
no_hardware_cursors = 2; # change to 1 if want to disable
|
||||
enable_hyprcursor = false;
|
||||
warp_on_change_workspace = 2;
|
||||
no_warps = true;
|
||||
};
|
||||
|
||||
render = {
|
||||
# Disabling as no longer supported
|
||||
#explicit_sync = 1; # Change to 1 to disable
|
||||
#explicit_sync_kms = 1;
|
||||
direct_scanout = 0;
|
||||
};
|
||||
|
||||
debug.full_cm_proto = true;
|
||||
|
||||
master = {
|
||||
new_status = "master";
|
||||
new_on_top = 1;
|
||||
mfact = 0.5;
|
||||
};
|
||||
|
||||
# Ensure Xwayland windows render at integer scale; compositor scales them
|
||||
xwayland.force_zero_scaling = true;
|
||||
};
|
||||
|
||||
extraConfig = "
|
||||
monitor=,preferred,auto,auto
|
||||
monitor=Virtual-1,1920x1080@60,auto,1
|
||||
${extraMonitorSettings}
|
||||
layerrule = blur on, blur_popups on, ignore_alpha 0.5, match:namespace noctalia-background-\.*$
|
||||
";
|
||||
};
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
_: {
|
||||
home.file.".config/hypr/pyprland.toml".text = ''
|
||||
[pyprland]
|
||||
plugins = [
|
||||
"scratchpads",
|
||||
]
|
||||
|
||||
[scratchpads.term]
|
||||
animation = "fromTop"
|
||||
command = "kitty --class kitty-dropterm"
|
||||
class = "kitty-dropterm"
|
||||
size = "70% 70%"
|
||||
max_size = "1920px 100%"
|
||||
position = "150px 150px"
|
||||
'';
|
||||
}
|
||||
@@ -1,100 +0,0 @@
|
||||
_: {
|
||||
wayland.windowManager.hyprland.settings.windowrule = [
|
||||
# XWayland specific rules
|
||||
#"noblur, xwayland:1" # Helps prevent odd borders/shadows for xwayland apps
|
||||
# downside it can impact other xwayland apps
|
||||
# This rule is a template for a more targeted approach
|
||||
"no_blur on, match:class resolve, match:xwayland 1" # Window rule for just resolve
|
||||
|
||||
# Application tags
|
||||
"tag +file-manager, match:class [Tt]hunar|org\.gnome\.Nautilus|[Pp]cmanfm-qt"
|
||||
"tag +terminal, match:class com\.mitchellh\.ghostty|org\.wezfurlong\.wezterm|Alacritty|kitty|kitty-dropterm"
|
||||
"tag +browser, match:class [Ff]irefox|org\.mozilla\.firefox|[Ff]irefox-esr"
|
||||
"tag +browser, match:class [Ll]ibrewolf|io\.gitlab\.librewolf-community"
|
||||
"tag +browser, match:class [Gg]oogle-chrome(-beta|-dev|-unstable)?|[Cc]hromium-browser(-beta|-dev|-unstable)?"
|
||||
"tag +projects, match:class VSCode|code|code-url-handler|codium|codium-url-handler|VSCodium|VSCodium-url-handler"
|
||||
"tag +projects, match:class dev\.zed\.Zed"
|
||||
"tag +im, match:class [Dd]iscord|[Ww]ebCord|[Vv]esktop"
|
||||
"tag +im, match:class [Ff]erdium"
|
||||
"tag +im, match:class [Ss]ignal"
|
||||
"tag +im, match:class [Ss]lack"
|
||||
"tag +im, match:class [Tt]eams-for-linux"
|
||||
"tag +games, match:class gamescope"
|
||||
"tag +games, match:class ?:steam_app_\d+"
|
||||
"tag +games, match:class tf_linux64"
|
||||
"tag +games, match:class Minecraft\*.*"
|
||||
"tag +gamestore, match:class [Ss]team"
|
||||
"tag +gamestore, match:title [Ll]utris"
|
||||
"tag +gamestore, match:class com\.heroicgameslauncher\.hgl"
|
||||
"tag +gamestore, match:class org\.prismlauncher\.PrismLauncher"
|
||||
"tag +settings, match:class gnome-disks|wihotspot(-gui)?"
|
||||
"tag +settings, match:class [Rr]ofi"
|
||||
"tag +settings, match:class file-roller|org\.gnome\.FileRoller"
|
||||
"tag +settings, match:class nm-applet|nm-connection-editor"
|
||||
"tag +settings, match:class pavucontrol|org\.pulseaudio\.pavucontrol|com\.saivert\.pwvucontrol"
|
||||
"tag +settings, match:class nwg-look|qt5ct|qt6ct|[Yy]ad"
|
||||
"tag +settings, match:class xdg-desktop-portal-gtk"
|
||||
"tag +settings, match:class nwg-displays"
|
||||
|
||||
# Position and movement rules
|
||||
"move 72% 7%, match:title Picture-in-Picture"
|
||||
"center on, match:class pavucontrol|org\.pulseaudio\.pavucontrol|com\.saivert\.pwvucontrol"
|
||||
"center on, match:class [Tt]hunar, match:title negative:.*[Tt]hunar.*"
|
||||
"center on, match:title Authentication Required"
|
||||
"center on, match:class org\.gnome\.Calculator"
|
||||
|
||||
# Idle inhibit rules
|
||||
"idle_inhibit fullscreen, match:class .*"
|
||||
"idle_inhibit fullscreen, match:title .*"
|
||||
"idle_inhibit fullscreen, match:fullscreen 1"
|
||||
|
||||
# Float rules
|
||||
"float on, match:class [Ww]aypaper"
|
||||
"float on, match:tag settings*"
|
||||
"float on, match:title Picture-in-Picture"
|
||||
"float on, match:title Authentication Required"
|
||||
"float on, match:title War in Tunnels"
|
||||
"float on, match:class codium|codium-url-handler|VSCodium, match:title negative:.*(?:codium|VSCodium).*"
|
||||
"float on, match:class com\.heroicgameslauncher\.hgl, match:title negative Heroic Games Launcher"
|
||||
"float on, match:class [Ss]team, match:title negative:[Ss]team"
|
||||
"float on, match:class [Tt]hunar, match:title negative:.*[Tt]hunar.*"
|
||||
"float on, match:class galculator"
|
||||
"float on, match:initial_title Add Folder to Workspace"
|
||||
"float on, match:initial_title Open Files"
|
||||
"float on, match:initial_title wants to save"
|
||||
"float on, match:class org\.gnome\.Calculator"
|
||||
|
||||
# Size rules
|
||||
"size 70% 60%, match:initial_title Open Files"
|
||||
"size 70% 60%, match:initial_title Add Folder to Workspace"
|
||||
"size 70% 70%, match:tag settings*"
|
||||
"size 360 616, match:class org\.gnome\.Calculator"
|
||||
|
||||
# Tile rules
|
||||
"tile on, match:class affinity\.exe"
|
||||
"tile on, match:class dev\.zed\.Zed"
|
||||
"tile on, match:class mpv"
|
||||
"tile on, match:class com-cburch-logisim-Main"
|
||||
|
||||
# Opacity rules
|
||||
"opacity 1.0 1.0, match:tag browser*"
|
||||
"opacity 0.9 0.8, match:tag projects*"
|
||||
"opacity 0.94 0.86, match:tag im*"
|
||||
"opacity 0.85 0.75, match:tag gamestore*"
|
||||
"opacity 0.9 0.8, match:tag file-manager*"
|
||||
"opacity 0.8 0.7, match:tag terminal*"
|
||||
"opacity 0.8 0.7, match:tag settings*"
|
||||
"opacity 0.8 0.7, match:class gedit|org\.gnome\.TextEditor|mousepad"
|
||||
"opacity 0.9 0.8, match:class seahorse # gnome-keyring gui"
|
||||
"opacity 0.95 0.75, match:title Picture-in-Picture"
|
||||
"opacity 0.9 0.8, match:class org\.gnome\.Calculator"
|
||||
|
||||
# Picture-in-Picture specific rules
|
||||
"pin on, match:title Picture-in-Picture"
|
||||
"keep_aspect_ratio on, match:title Picture-in-Picture"
|
||||
|
||||
# Games specific rules
|
||||
"no_blur on, match:tag games*"
|
||||
"fullscreen on, match:tag games*"
|
||||
];
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.kdeconnect.enable = lib.mkEnableOption "KDE Connect";
|
||||
|
||||
config = {
|
||||
services.kdeconnect = lib.mkIf config.kdeconnect.enable {
|
||||
enable = true;
|
||||
indicator = false;
|
||||
package = pkgs.kdePackages.kdeconnect-kde;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
package = pkgs.kitty;
|
||||
};
|
||||
|
||||
imports = [
|
||||
./extra-config.nix
|
||||
./settings.nix
|
||||
];
|
||||
}
|
||||
@@ -1,52 +0,0 @@
|
||||
_: {
|
||||
programs.kitty.extraConfig = ''
|
||||
# Clipboard
|
||||
map ctrl+shift+v paste_from_selection
|
||||
map shift+insert paste_from_selection
|
||||
|
||||
# Scrolling
|
||||
map ctrl+shift+up scroll_line_up
|
||||
map ctrl+shift+down scroll_line_down
|
||||
map ctrl+shift+k scroll_line_up
|
||||
map ctrl+shift+j scroll_line_down
|
||||
map ctrl+shift+page_up scroll_page_up
|
||||
map ctrl+shift+page_down scroll_page_down
|
||||
map ctrl+shift+home scroll_home
|
||||
map ctrl+shift+end scroll_end
|
||||
map ctrl+shift+h show_scrollback
|
||||
|
||||
# Window management
|
||||
map alt+n new_window_with_cwd #open in current dir
|
||||
#map alt+n new_os_window #opens term in $HOME
|
||||
map alt+w close_window
|
||||
map ctrl+shift+enter launch --location=hsplit
|
||||
map ctrl+shift+s launch --location=vsplit
|
||||
map ctrl+shift+] next_window
|
||||
map ctrl+shift+[ previous_window
|
||||
map ctrl+shift+f move_window_forward
|
||||
map ctrl+shift+b move_window_backward
|
||||
map ctrl+shift+` move_window_to_top
|
||||
map ctrl+shift+1 first_window
|
||||
map ctrl+shift+2 second_window
|
||||
map ctrl+shift+3 third_window
|
||||
map ctrl+shift+4 fourth_window
|
||||
map ctrl+shift+5 fifth_window
|
||||
map ctrl+shift+6 sixth_window
|
||||
map ctrl+shift+7 seventh_window
|
||||
map ctrl+shift+8 eighth_window
|
||||
map ctrl+shift+9 ninth_window # Tab management
|
||||
map ctrl+shift+0 tenth_window
|
||||
map ctrl+shift+right next_tab
|
||||
map ctrl+shift+left previous_tab
|
||||
map ctrl+shift+t new_tab
|
||||
map ctrl+shift+q close_tab
|
||||
map ctrl+shift+l next_layout
|
||||
map ctrl+shift+. move_tab_forward
|
||||
map ctrl+shift+, move_tab_backward
|
||||
|
||||
# Miscellaneous
|
||||
map ctrl+shift+up increase_font_size
|
||||
map ctrl+shift+down decrease_font_size
|
||||
map ctrl+shift+backspace restore_font_size
|
||||
'';
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
_: {
|
||||
programs.kitty.settings = {
|
||||
font_size = 12;
|
||||
wheel_scroll_min_lines = 1;
|
||||
window_padding_width = 4;
|
||||
confirm_os_window_close = 0;
|
||||
scrollback_lines = 10000;
|
||||
enable_audio_bell = false;
|
||||
mouse_hide_wait = 60;
|
||||
cursor_trail = 1;
|
||||
tab_fade = 1;
|
||||
active_tab_font_style = "bold";
|
||||
inactive_tab_font_style = "bold";
|
||||
tab_bar_edge = "top";
|
||||
tab_bar_margin_width = 0;
|
||||
tab_bar_style = "powerline";
|
||||
#tab_bar_style = "fade";
|
||||
enabled_layouts = "splits";
|
||||
};
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.librewolf.enable = lib.mkEnableOption "LibreWolf";
|
||||
|
||||
config.programs.librewolf = lib.mkIf config.librewolf.enable {
|
||||
enable = true;
|
||||
package = pkgs.librewolf;
|
||||
# nativeMessagingHosts = [pkgs.firefoxpwa];
|
||||
languagePacks = [
|
||||
"pl"
|
||||
"en-US"
|
||||
];
|
||||
settings = {
|
||||
# LibreWolf settings
|
||||
"network.http.referer.XOriginPolicy" = 2;
|
||||
"privacy.resistFingerprinting.letterboxing" = true;
|
||||
"privacy.resistFingerprinting.autoDeclineNoUserInputCanvasPrompts" = true;
|
||||
};
|
||||
policies = {
|
||||
# Policies (about:policies#documentation)
|
||||
};
|
||||
};
|
||||
|
||||
imports = [
|
||||
./profiles
|
||||
];
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{host, ...}: {
|
||||
programs.librewolf.profiles."${host}" = {
|
||||
id = 0;
|
||||
isDefault = true;
|
||||
name = "${host}";
|
||||
};
|
||||
|
||||
imports = [
|
||||
./extensions.nix
|
||||
./search.nix
|
||||
./settings.nix
|
||||
];
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
{
|
||||
inputs,
|
||||
system,
|
||||
host,
|
||||
...
|
||||
}: {
|
||||
# about:debugging#/runtime/this-firefox Przydatne do wyszukiwania ID rozszerzenia
|
||||
# programs.librewolf.profiles."${host}".extensions.force = true;
|
||||
programs.librewolf.profiles."${host}".extensions.packages = with inputs.firefox-addons.packages.${system}; [
|
||||
bitwarden
|
||||
floccus
|
||||
ublock-origin
|
||||
sponsorblock
|
||||
darkreader
|
||||
# flagfox
|
||||
hoppscotch
|
||||
return-youtube-dislikes
|
||||
sponsorblock
|
||||
# pwas-for-firefox
|
||||
mtab
|
||||
];
|
||||
}
|
||||
@@ -1,210 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
host,
|
||||
...
|
||||
}: {
|
||||
programs.librewolf.profiles."${host}".search = {
|
||||
default = "garand's-search";
|
||||
privateDefault = "garand's-search";
|
||||
force = true;
|
||||
engines = {
|
||||
"garand's-search" = {
|
||||
definedAliases = ["@g"];
|
||||
urls = [{template = "https://search.garandplg.com/search?q={searchTerms}";}];
|
||||
# suggestUrl = "https://search.garandplg.com/autocompleter?q={searchTerms}"; Not implemented in home-manager ☹️
|
||||
};
|
||||
"youtube" = {
|
||||
definedAliases = ["@yt"];
|
||||
urls = [
|
||||
{
|
||||
template = "https://www.youtube.com/results";
|
||||
params = [
|
||||
{
|
||||
name = "search_query";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
"wikipedia-pl" = {
|
||||
definedAliases = ["@w"];
|
||||
urls = [
|
||||
{
|
||||
template = "https://pl.wikipedia.org/w/index.php";
|
||||
params = [
|
||||
{
|
||||
name = "search";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
"stackoverflow" = {
|
||||
definedAliases = ["@so"];
|
||||
urls = [
|
||||
{
|
||||
template = "https://stackoverflow.com/search";
|
||||
params = [
|
||||
{
|
||||
name = "q";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
"nix-packages" = {
|
||||
definedAliases = ["@np"];
|
||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
urls = [
|
||||
{
|
||||
template = "https://search.nixos.org/packages?channel=unstable";
|
||||
params = [
|
||||
{
|
||||
name = "query";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
"nix-options" = {
|
||||
definedAliases = ["@no"];
|
||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
urls = [
|
||||
{
|
||||
template = "https://search.nixos.org/options?channel=unstable&query={searchTerms}";
|
||||
}
|
||||
];
|
||||
};
|
||||
"nix-wiki" = {
|
||||
definedAliases = ["@nw"];
|
||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
urls = [
|
||||
{
|
||||
template = "https://wiki.nixos.org/w/index.php";
|
||||
params = [
|
||||
{
|
||||
name = "search";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
"home-manager-option" = {
|
||||
definedAliases = ["@hmo"];
|
||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
urls = [
|
||||
{
|
||||
template = "https://home-manager-options.extranix.com/?query={searchTerms}&release=master";
|
||||
}
|
||||
];
|
||||
};
|
||||
"eneba" = {
|
||||
definedAliases = ["@en"];
|
||||
icon = "https://static.eneba.games/branding/v2/logoFull.svg";
|
||||
urls = [
|
||||
{
|
||||
template = "https://www.eneba.com/pl/store/all";
|
||||
params = [
|
||||
{
|
||||
name = "text";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
"kinguin" = {
|
||||
definedAliases = ["@ki"];
|
||||
icon = "https://static.kinguin.net/media/images/other/kinguin-mobile-logo.svg";
|
||||
urls = [
|
||||
{
|
||||
template = "https://www.kinguin.net/listing?active=1&hideUnavailable=0&type=kinguin";
|
||||
params = [
|
||||
{
|
||||
name = "phrase";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
"instant-gaming" = {
|
||||
definedAliases = ["@ig"];
|
||||
icon = "https://asset.brandfetch.io/idCbLj4uOg/idGS61T0FV.jpeg";
|
||||
urls = [
|
||||
{
|
||||
template = "https://www.instant-gaming.com/pl/search/";
|
||||
params = [
|
||||
{
|
||||
name = "q";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
"morele" = {
|
||||
definedAliases = ["@mo"];
|
||||
icon = "https://www.morele.net/static/img/shop/logo/image-logo-morele.svg";
|
||||
urls = [
|
||||
{
|
||||
template = "https://www.morele.net/wyszukiwarka/";
|
||||
params = [
|
||||
{
|
||||
name = "q";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
"x-kom" = {
|
||||
definedAliases = ["@xk"];
|
||||
icon = "https://assets.x-kom.pl/public-spa/xkom/75062cb4b48a8510.svg";
|
||||
urls = [
|
||||
{
|
||||
template = "https://www.x-kom.pl/szukaj";
|
||||
params = [
|
||||
{
|
||||
name = "q";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
"komputronik" = {
|
||||
definedAliases = ["@kp"];
|
||||
icon = "https://front.komputronik.pl/front-static/komputronik.Ceqagame-a.svg";
|
||||
urls = [
|
||||
{
|
||||
template = "https://www.komputronik.pl/search/category/1";
|
||||
params = [
|
||||
{
|
||||
name = "query";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
"google".metaData.hidden = true;
|
||||
"bing".metaData.hidden = true;
|
||||
"perplexity".metaData.hidden = true;
|
||||
"wolnelektury-pl".metaData.hidden = true;
|
||||
"policy-DuckDuckGo Lite".metaData.hidden = true;
|
||||
"policy-MetaGer".metaData.hidden = true;
|
||||
"policy-Mojeek".metaData.hidden = true;
|
||||
"policy-SearXNG - searx.be".metaData.hidden = true;
|
||||
"policy-StartPage".metaData.hidden = true;
|
||||
|
||||
"allegro-pl".metaData.alias = "@al";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,42 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
host,
|
||||
...
|
||||
}: {
|
||||
programs.librewolf.profiles."${host}".settings = lib.mkForce {
|
||||
# Preferences (about:config)
|
||||
"general.useragent.locale" = "pl";
|
||||
"intl.locale.requested" = "pl,en-US";
|
||||
"intl.accept_languages" = "pl,en-US";
|
||||
|
||||
"extensions.autoDisableScopes" = 0;
|
||||
|
||||
"font.default.x-western" = "FiraCode Nerd Font";
|
||||
"font.name.monospace.x-western" = "FiraCode Nerd Font Mono";
|
||||
"font.name.sans-serif.x-western" = "FiraCode Nerd Font Propo";
|
||||
"font.name.serif.x-western" = "FiraCode Nerd Font";
|
||||
|
||||
"layout.css.prefers-color-scheme.content-override" = 0;
|
||||
"layout.css.font-visibility" = 1;
|
||||
|
||||
"browser.tabs.insertRelatedAfterCurrent" = true;
|
||||
"browser.sessionstore.resume_from_crash" = true;
|
||||
"browser.sessionstore.resume_session_once" = true;
|
||||
"browser.toolbars.bookmarks.visibility" = "never";
|
||||
|
||||
"browser.search.update" = true;
|
||||
|
||||
"sidebar.main.tools" = "history,bookmarks";
|
||||
"sidebar.revamp" = true;
|
||||
"sidebar.verticalTabs" = true;
|
||||
|
||||
"browser.eme.ui.enabled" = true;
|
||||
"media.eme.enabled" = true;
|
||||
|
||||
"privacy.donottrackheader.enabled" = true;
|
||||
"privacy.clearOnShutdown.history" = true;
|
||||
|
||||
"network.trr.mode" = 3;
|
||||
"network.trr.uri" = "https://dns.mullvad.net/dns-query";
|
||||
};
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.lutris.enable = lib.mkEnableOption "Lutris";
|
||||
|
||||
config.programs.lutris = lib.mkIf config.lutris.enable {
|
||||
enable = true;
|
||||
package = pkgs.lutris;
|
||||
protonPackages = [pkgs.proton-ge-bin];
|
||||
winePackages = [pkgs.wineWowPackages.waylandFull];
|
||||
defaultWinePackage = pkgs.wineWowPackages.waylandFull;
|
||||
steamPackage = pkgs.steam;
|
||||
};
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options.nextcloud-client.enable = lib.mkEnableOption "Nextcloud Client";
|
||||
|
||||
config.services.nextcloud-client = lib.mkIf config.nextcloud-client.enable {
|
||||
enable = true;
|
||||
startInBackground = true;
|
||||
package = pkgs.nextcloud-client;
|
||||
};
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
stylix = config.stylix.base16Scheme;
|
||||
in {
|
||||
programs.noctalia-shell.colors = lib.mkForce {
|
||||
mPrimary = "#${stylix.base04}";
|
||||
mOnPrimary = "#${stylix.base00}";
|
||||
|
||||
mSecondary = "#${stylix.base05}";
|
||||
mOnSecondary = "#${stylix.base00}";
|
||||
|
||||
mTertiary = "#${stylix.base03}";
|
||||
mOnTertiary = "#${stylix.base00}";
|
||||
|
||||
mError = "#${stylix.base02}";
|
||||
mOnError = "#${stylix.base00}";
|
||||
|
||||
mSurface = "#${stylix.base01}";
|
||||
mOnSurface = "#${stylix.base0E}";
|
||||
|
||||
mSurfaceVariant = "#${stylix.base00}";
|
||||
mOnSurfaceVariant = "#${stylix.base0A}";
|
||||
|
||||
mOutline = "#${stylix.base08}";
|
||||
mShadow = "#${stylix.base00}";
|
||||
|
||||
mOnHover = "#${stylix.base0B}";
|
||||
mHover = "#${stylix.base00}";
|
||||
};
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
inputs,
|
||||
system,
|
||||
...
|
||||
}: {
|
||||
programs.noctalia-shell = {
|
||||
enable = true;
|
||||
package = inputs.noctalia.packages.${system}.default.override {
|
||||
calendarSupport = true;
|
||||
};
|
||||
systemd.enable = true;
|
||||
# settings.settingsVersion = lib.mkForce 46;
|
||||
};
|
||||
|
||||
imports = [
|
||||
./settings
|
||||
./colors.nix
|
||||
./plugins.nix
|
||||
];
|
||||
}
|
||||
@@ -1,50 +0,0 @@
|
||||
{lib, ...}: let
|
||||
sourceUrl = "https://github.com/noctalia-dev/noctalia-plugins";
|
||||
in {
|
||||
programs.noctalia-shell = lib.mkForce {
|
||||
plugins = {
|
||||
sources = [
|
||||
{
|
||||
enabled = true;
|
||||
name = "Noctalia Plugins";
|
||||
url = sourceUrl;
|
||||
}
|
||||
];
|
||||
states = {
|
||||
mini-docker = {
|
||||
enabled = true;
|
||||
sourceUrl = sourceUrl;
|
||||
};
|
||||
timer = {
|
||||
enabled = true;
|
||||
sourceUrl = sourceUrl;
|
||||
};
|
||||
keybind-cheatsheet = {
|
||||
enabled = true;
|
||||
sourceUrl = sourceUrl;
|
||||
};
|
||||
kde-connect = {
|
||||
enabled = true;
|
||||
sourceUrl = sourceUrl;
|
||||
};
|
||||
};
|
||||
version = 2;
|
||||
};
|
||||
pluginSettings = {
|
||||
mini-docker.refreshInterval = 5000;
|
||||
timer.compactMode = true;
|
||||
keybind-cheatsheet = {
|
||||
niriConfigPath = "~/.config/niri/config.kdl";
|
||||
hyprlandConfigPath = "~/.config/hypr/hyprland.conf";
|
||||
modKeyVariable = "SUPER";
|
||||
windowHeight = 850;
|
||||
windowWidth = 1100;
|
||||
columnCount = 2;
|
||||
autoHeight = true;
|
||||
};
|
||||
kde-connect = {
|
||||
hideIfNoDeviceConnected = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
{lib, ...}: {
|
||||
programs.noctalia-shell.settings.appLauncher = lib.mkForce {
|
||||
enableClipboardHistory = true;
|
||||
autoPasteClipboard = false;
|
||||
enableClipPreview = true;
|
||||
clipboardWrapText = true;
|
||||
clipboardWatchTextCommand = "wl-paste --type text --watch cliphist store";
|
||||
clipboardWatchImageCommand = "wl-paste --type image --watch cliphist store";
|
||||
position = "center";
|
||||
pinnedApps = [];
|
||||
useApp2Unit = true;
|
||||
sortByMostUsed = true;
|
||||
terminalCommand = "kitty -e";
|
||||
customLaunchPrefixEnabled = false;
|
||||
customLaunchPrefix = "";
|
||||
viewMode = "list";
|
||||
showCategories = true;
|
||||
iconMode = "native";
|
||||
showIconBackground = false;
|
||||
enableSettingsSearch = true;
|
||||
enableWindowsSearch = true;
|
||||
ignoreMouseInput = false;
|
||||
screenshotAnnotationTool = "";
|
||||
};
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{lib, ...}: {
|
||||
programs.noctalia-shell.settings.audio = lib.mkForce {
|
||||
"volumeStep" = 5;
|
||||
"volumeOverdrive" = true;
|
||||
"cavaFrameRate" = 144;
|
||||
"visualizerType" = "linear";
|
||||
"mprisBlacklist" = [];
|
||||
"preferredPlayer" = "mpv";
|
||||
"volumeFeedback" = false;
|
||||
};
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
username,
|
||||
...
|
||||
}: {
|
||||
programs.noctalia-shell.settings.bar = lib.mkForce {
|
||||
barType = "simple";
|
||||
position = "top";
|
||||
monitors = [];
|
||||
density = "default";
|
||||
showOutline = false;
|
||||
showCapsule = true;
|
||||
capsuleOpacity = 0;
|
||||
backgroundOpacity = 0;
|
||||
useSeparateOpacity = true;
|
||||
floating = false;
|
||||
marginVertical = 4;
|
||||
marginHorizontal = 4;
|
||||
frameThickness = 8;
|
||||
frameRadius = 12;
|
||||
outerCorners = true;
|
||||
hideOnOverview = false;
|
||||
displayMode = "always_visible";
|
||||
autoHideDelay = 500;
|
||||
autoShowDelay = 150;
|
||||
screenOverrides = [];
|
||||
widgets = {
|
||||
left = (import ./widgets/left.nix {}).left;
|
||||
center = (import ./widgets/center.nix {}).center;
|
||||
right = (import ./widgets/right.nix {inherit username;}).right;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
_: {
|
||||
center = [
|
||||
{
|
||||
id = "Workspace";
|
||||
characterCount = 2;
|
||||
colorizeIcons = false;
|
||||
emptyColor = "secondary";
|
||||
enableScrollWheel = true;
|
||||
focusedColor = "primary";
|
||||
followFocusedScreen = false;
|
||||
groupedBorderOpacity = 0;
|
||||
hideUnoccupied = false;
|
||||
iconScale = 1;
|
||||
labelMode = "index";
|
||||
occupiedColor = "secondary";
|
||||
reverseScroll = false;
|
||||
showApplications = true;
|
||||
showBadge = true;
|
||||
showLabelsOnlyWhenOccupied = true;
|
||||
unfocusedIconsOpacity = 1;
|
||||
}
|
||||
];
|
||||
}
|
||||
@@ -1,57 +0,0 @@
|
||||
_: {
|
||||
left = [
|
||||
{
|
||||
id = "Launcher";
|
||||
icon = "rocket";
|
||||
usePrimaryColor = true;
|
||||
}
|
||||
{
|
||||
id = "Clock";
|
||||
customFont = "";
|
||||
formatHorizontal = "HH:mm:ss";
|
||||
formatVertical = "HH mm ss - ddd MMM d";
|
||||
tooltipFormat = "ddd MMM d HH:mm:ss";
|
||||
useCustomFont = false;
|
||||
usePrimaryColor = false;
|
||||
}
|
||||
{
|
||||
id = "SystemMonitor";
|
||||
compactMode = false;
|
||||
diskPath = "/home";
|
||||
showCpuFreq = false;
|
||||
showCpuTemp = false;
|
||||
showCpuUsage = true;
|
||||
showDiskAsFree = true;
|
||||
showDiskUsage = true;
|
||||
showGpuTemp = false;
|
||||
showLoadAverage = false;
|
||||
showMemoryAsPercent = true;
|
||||
showMemoryUsage = true;
|
||||
showNetworkStats = true;
|
||||
showSwapUsage = false;
|
||||
useMonospaceFont = true;
|
||||
usePrimaryColor = false;
|
||||
}
|
||||
{
|
||||
id = "plugin:mini-docker";
|
||||
}
|
||||
{
|
||||
id = "MediaMini";
|
||||
compactMode = true;
|
||||
compactShowAlbumArt = true;
|
||||
compactShowVisualizer = true;
|
||||
hideMode = "hidden";
|
||||
hideWhenIdle = false;
|
||||
maxWidth = 145;
|
||||
panelShowAlbumArt = true;
|
||||
panelShowVisualizer = true;
|
||||
scrollingMode = "hover";
|
||||
showAlbumArt = true;
|
||||
showArtistFirst = true;
|
||||
showProgressRing = true;
|
||||
showVisualizer = true;
|
||||
useFixedWidth = false;
|
||||
visualizerType = "linear";
|
||||
}
|
||||
];
|
||||
}
|
||||
@@ -1,66 +0,0 @@
|
||||
{username, ...}: {
|
||||
right = [
|
||||
{
|
||||
id = "Tray";
|
||||
blacklist = [
|
||||
"nm-applet"
|
||||
];
|
||||
colorizeIcons = false;
|
||||
drawerEnabled = false;
|
||||
hidePassive = false;
|
||||
pinned = [];
|
||||
}
|
||||
{
|
||||
id = "plugin:keybind-cheatsheet";
|
||||
}
|
||||
{
|
||||
id = "plugin:timer";
|
||||
defaultSettings = {
|
||||
compactMode = true;
|
||||
defaultDuration = 0;
|
||||
};
|
||||
}
|
||||
{
|
||||
id = "NotificationHistory";
|
||||
hideWhenZero = false;
|
||||
hideWhenZeroUnread = false;
|
||||
showUnreadBadge = true;
|
||||
unreadBadgeColor = "primary";
|
||||
}
|
||||
{
|
||||
id = "plugin:kde-connect";
|
||||
}
|
||||
{
|
||||
id = "Bluetooth";
|
||||
displayMode = "onhover";
|
||||
}
|
||||
{
|
||||
id = "Battery";
|
||||
deviceNativePath = "__default__";
|
||||
displayMode = "graphic";
|
||||
hideIfIdle = false;
|
||||
hideIfNotDetected = true;
|
||||
showNoctaliaPerformance = true;
|
||||
showPowerProfiles = true;
|
||||
warningThreshold = 30;
|
||||
}
|
||||
{
|
||||
id = "Volume";
|
||||
displayMode = "alwaysShow";
|
||||
middleClickCommand = "pwvucontrol || pavucontrol";
|
||||
}
|
||||
{
|
||||
id = "Network";
|
||||
displayMode = "onhover";
|
||||
}
|
||||
{
|
||||
id = "ControlCenter";
|
||||
colorizeDistroLogo = false;
|
||||
colorizeSystemIcon = "none";
|
||||
customIconPath = "/home/${username}/garandos/GarandOS.svg";
|
||||
enableColorization = false;
|
||||
icon = "noctalia";
|
||||
useDistroLogo = false;
|
||||
}
|
||||
];
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
{lib, ...}: {
|
||||
programs.noctalia-shell.settings.brightness = lib.mkForce {
|
||||
brightnessStep = 5;
|
||||
enforceMinimum = true;
|
||||
enableDdcSupport = true;
|
||||
};
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
{lib, ...}: {
|
||||
programs.noctalia-shell.settings.calendar.cards = lib.mkForce [
|
||||
{
|
||||
enabled = true;
|
||||
id = "calendar-header-card";
|
||||
}
|
||||
{
|
||||
enabled = true;
|
||||
id = "calendar-month-card";
|
||||
}
|
||||
{
|
||||
enabled = true;
|
||||
id = "weather-card";
|
||||
}
|
||||
];
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
{lib, ...}: {
|
||||
programs.noctalia-shell.settings.colorSchemes = lib.mkForce {
|
||||
useWallpaperColors = false;
|
||||
predefinedScheme = "Noctalia (default)";
|
||||
darkMode = true;
|
||||
schedulingMode = "off";
|
||||
manualSunrise = "06:30";
|
||||
manualSunset = "18:30";
|
||||
generationMethod = "tonal-spot";
|
||||
monitorForColors = "";
|
||||
};
|
||||
}
|
||||
@@ -1,62 +0,0 @@
|
||||
{lib, ...}: {
|
||||
programs.noctalia-shell.settings.controlCenter = lib.mkForce {
|
||||
position = "close_to_bar_button";
|
||||
diskPath = "/home";
|
||||
shortcuts = {
|
||||
left = [
|
||||
{
|
||||
id = "Network";
|
||||
}
|
||||
{
|
||||
id = "Bluetooth";
|
||||
}
|
||||
{
|
||||
id = "WallpaperSelector";
|
||||
}
|
||||
{
|
||||
id = "NoctaliaPerformance";
|
||||
}
|
||||
];
|
||||
right = [
|
||||
{
|
||||
id = "Notifications";
|
||||
}
|
||||
{
|
||||
id = "PowerProfile";
|
||||
}
|
||||
{
|
||||
id = "KeepAwake";
|
||||
}
|
||||
{
|
||||
id = "NightLight";
|
||||
}
|
||||
];
|
||||
};
|
||||
cards = [
|
||||
{
|
||||
enabled = true;
|
||||
id = "profile-card";
|
||||
}
|
||||
{
|
||||
enabled = true;
|
||||
id = "shortcuts-card";
|
||||
}
|
||||
{
|
||||
enabled = true;
|
||||
id = "audio-card";
|
||||
}
|
||||
{
|
||||
enabled = true;
|
||||
id = "brightness-card";
|
||||
}
|
||||
{
|
||||
enabled = true;
|
||||
id = "weather-card";
|
||||
}
|
||||
{
|
||||
enabled = true;
|
||||
id = "media-sysmon-card";
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
_: {
|
||||
imports = [
|
||||
./bar
|
||||
./notifications
|
||||
./app-launcher.nix
|
||||
./audio.nix
|
||||
./brightness.nix
|
||||
./calendar.nix
|
||||
./color-schemes.nix
|
||||
./control-center.nix
|
||||
./desktop-widgets.nix
|
||||
./dock.nix
|
||||
./general.nix
|
||||
./hooks.nix
|
||||
./location.nix
|
||||
./network.nix
|
||||
./night-light.nix
|
||||
./osd.nix
|
||||
./session-menu.nix
|
||||
./system-monitor.nix
|
||||
./templates.nix
|
||||
./ui.nix
|
||||
./wallpapers.nix
|
||||
];
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
{lib, ...}: {
|
||||
programs.noctalia-shell.settings.desktop-widgets = lib.mkForce {
|
||||
"enabled" = false;
|
||||
"gridSnap" = false;
|
||||
"monitorWidgets" = [];
|
||||
};
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
{lib, ...}: {
|
||||
programs.noctalia-shell.settings.dock = lib.mkForce {
|
||||
enabled = false;
|
||||
position = "bottom";
|
||||
displayMode = "auto_hide";
|
||||
backgroundOpacity = 0;
|
||||
floatingRatio = 1;
|
||||
size = 1.5;
|
||||
onlySameOutput = false;
|
||||
monitors = [];
|
||||
pinnedApps = [];
|
||||
colorizeIcons = false;
|
||||
pinnedStatic = false;
|
||||
inactiveIndicators = false;
|
||||
deadOpacity = 0.5;
|
||||
animationSpeed = 1;
|
||||
};
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
host,
|
||||
username,
|
||||
...
|
||||
}: let
|
||||
inherit (import ../../../../hosts/${host}/variables.nix) keyboardLayout;
|
||||
in {
|
||||
programs.noctalia-shell.settings.general = lib.mkForce {
|
||||
avatarImage = "/home/${username}/.face.icon";
|
||||
dimmerOpacity = 0.2;
|
||||
showScreenCorners = false;
|
||||
forceBlackScreenCorners = false;
|
||||
scaleRatio = 1;
|
||||
radiusRatio = 2;
|
||||
iRadiusRatio = 2;
|
||||
boxRadiusRatio = 1;
|
||||
screenRadiusRatio = 1;
|
||||
animationSpeed = 1;
|
||||
animationDisabled = false;
|
||||
compactLockScreen = false;
|
||||
lockOnSuspend = true;
|
||||
showSessionButtonsOnLockScreen = true;
|
||||
showHibernateOnLockScreen = false;
|
||||
enableShadows = true;
|
||||
shadowDirection = "bottom_right";
|
||||
shadowOffsetX = 2;
|
||||
shadowOffsetY = 3;
|
||||
language = "${keyboardLayout}";
|
||||
allowPanelsOnScreenWithoutBar = true;
|
||||
showChangelogOnStartup = true;
|
||||
telemetryEnabled = false;
|
||||
enableLockScreenCountdown = true;
|
||||
lockScreenCountdownDuration = 10000;
|
||||
autoStartAuth = false;
|
||||
allowPasswordWithFprintd = false;
|
||||
};
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{lib, ...}: {
|
||||
programs.noctalia-shell.settings.hooks = lib.mkForce {
|
||||
"enabled" = false;
|
||||
"wallpaperChange" = "";
|
||||
"darkModeChange" = "";
|
||||
"screenLock" = "";
|
||||
"screenUnlock" = "";
|
||||
"performanceModeEnabled" = "";
|
||||
"performanceModeDisabled" = "";
|
||||
"startup" = "";
|
||||
"session" = "";
|
||||
};
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user