diff --git a/LICENSE.md b/LICENSE.md
index 6b847f3..1ef8595 100644
--- a/LICENSE.md
+++ b/LICENSE.md
@@ -1,10 +1,10 @@
# ๐ License
-### ZaneyOS is licensed under the MIT License.
+### GarandOS is licensed under the MIT License.
## MIT License
-**Copyright (c) 2025 Tyler Kelley**
+**Copyright (c) 2025 Garand_PLG**
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software" ), to deal
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..94704a4
--- /dev/null
+++ b/README.md
@@ -0,0 +1,219 @@
+# **GarandOS**
+Disclaimer: This configuration is a fork of [ZaneyOS](https://gitlab.com/Zaney/zaneyos), a wonderful configuration I had the pleasure of ~~stealing~~ forking almost a year ago for my laptop (version 2.2). Now that I've installed NIxOS on my main computer, I've installed the latest version (2.4), connected my repository, and am customizing it to suit my needs. My configuration won't be synchronized with the main project, as it serves as the foundation upon which I'm building my custom system. The original has been stripped of many unnecessary features, so I highly recommend checking out the original project and, like me, adapting it to your needs. If you like my configuration, fork it too and manage it yourself, as the project won't accept external pull requests.
+
+# NixOS Installation with LUKS
+
+## Partition Preparation
+
+### 1. Disk identification and cleaning:
+```bash
+# Check available disks
+lsblk
+
+# Clean disk (replace nvme0n1 with your disk)
+sudo sgdisk --zap-all /dev/nvme0n1
+```
+
+### 2. Creating partitions:
+```bash
+# Create EFI partition (512MB)
+sudo sgdisk -n 1:0:+512M -t 1:ef00 -c 1:"EFI System" /dev/nvme0n1
+
+# Create partition for LUKS (rest of disk)
+sudo sgdisk -n 2:0:0 -t 2:8e00 -c 2:"Linux LVM" /dev/nvme0n1
+
+# Check result
+sudo sgdisk -p /dev/nvme0n1
+```
+
+### 3. Formatting EFI partition:
+```bash
+sudo mkfs.fat -F32 /dev/nvme0n1p1
+```
+
+## Encryption and LVM
+
+### 4. LUKS configuration:
+```bash
+# Encrypt main partition
+sudo cryptsetup luksFormat /dev/nvme0n1p2
+# Enter password (REMEMBER IT!)
+
+# Open encrypted partition
+sudo cryptsetup open /dev/nvme0n1p2 cryptroot
+```
+
+### 5. LVM configuration:
+```bash
+# Create Physical Volume
+sudo pvcreate /dev/mapper/cryptroot
+
+# Create Volume Group
+sudo vgcreate vg0 /dev/mapper/cryptroot
+
+# Create Logical Volumes
+# (Up to max 16GB)
+sudo lvcreate -L 12G -n swap vg0 # 12GB SWAP
+# (For ROOT partition it's best to give at least 1/4 of the disk, but from experience I recommend roughly 100-200GB. System takes about 70GB, but it's worth leaving some extra space)
+sudo lvcreate -L 175G -n root vg0 # 175GB ROOT
+sudo lvcreate -l 100%FREE -n home vg0 # rest HOME
+```
+
+### 6. Formatting logical partitions:
+```bash
+sudo mkswap /dev/vg0/swap
+sudo mkfs.ext4 /dev/vg0/root
+sudo mkfs.ext4 /dev/vg0/home
+```
+
+## Mounting and installation
+
+### 7. Mounting file systems:
+```bash
+sudo mount /dev/vg0/root /mnt
+sudo mkdir -p /mnt/home /mnt/boot
+sudo mount /dev/vg0/home /mnt/home
+sudo mount /dev/nvme0n1p1 /mnt/boot
+sudo swapon /dev/vg0/swap
+```
+
+### 8. Configuration generation:
+```bash
+sudo nixos-generate-config --root /mnt
+```
+
+### 9. **CRUCIAL STEP** - Adding LUKS configuration:
+```bash
+# Check UUID of encrypted partition
+lsblk -f
+
+# Edit hardware-configuration.nix
+sudo nano /mnt/etc/nixos/hardware-configuration.nix
+```
+
+**Add BEFORE `fileSystems` section (replace UUID with yours):**
+```nix
+boot.initrd.luks.devices = {
+ cryptroot = {
+ device = "/dev/disk/by-uuid/YOUR-LUKS-UUID";
+ preLVM = true;
+ };
+};
+```
+
+**Also make sure SWAP is mounted**
+```nix
+ swapDevices = lib.mkForce [
+ {
+ device = "/dev/disk/by-uuid/YOUR-SWAP-UUID";
+ }
+ ];
+```
+
+
+### 10. User configuration:
+```bash
+sudo nano /mnt/etc/nixos/configuration.nix
+```
+
+**Add/uncomment:**
+```nix
+users.users."yourusername" = {
+ isNormalUser = true;
+ description = "Your Name";
+ extraGroups = [ "networkmanager" "wheel" ];
+};
+
+# Enable sudo for wheel
+security.sudo.wheelNeedsPassword = true;
+```
+
+### 11. System installation:
+```bash
+sudo nixos-install
+```
+
+## Finalization
+
+### 12. Setting passwords:
+```bash
+# After installation, enter the system
+sudo nixos-enter
+
+# Set user password
+passwd yourusername
+
+# Optionally root password
+passwd root
+
+exit
+```
+
+### 13. Restart:
+```bash
+sudo reboot
+```
+
+# GarandOS installation
+
+### 1. Install git
+```nix
+nix-shell -p git
+```
+
+### 2. Download nix configuration
+```bash
+git clone https://gitea.garandplg.com/GarandPLG/garandos -b main --depth=1 ~/garandos
+cd garandos
+```
+
+Stay in this folder during installation
+
+### 3. Create your host folder from default folder
+```bash
+cp -r hosts/default hosts/
+git add .
+```
+
+### 4. Modify `variables.nix` in your host folder. Set:
+
+- `system` - 99% this will be the default value.
+- `host` - same as your host folder name.
+- `username` - your username.
+- `profile` - graphics card profile, choose the one most suitable for your hardware.
+- `gitUsername` and `gitEmail` - required for proper git usage.
+- `extraMonitorSettings` - specify your monitor (cable, resolution, refresh rate. You can leave the other two options).
+- `clock24h` - whether you want 24 or 12 hour clock.
+- `browser` - browser package name opened with shortcut **SUPER + W**.
+- `terminal` - terminal package name opened with shortcut **SUPER + Enter**
+- `keyboardLayout` and `consoleKeyMap` - keyboard layout (special characters ฤ
,ฤ, etc.).
+- `stylixImage` - default system wallpaper, based on which the graphical theme (stylix) will be generated. You can browse them in the `wallpapers` folder.
+- `waybarChoice` - system top bar style.
+- `animChoice` - system animation style.
+
+### 5. Copy the ready `hardware-configuration.nix` to host folder:
+```bash
+sudo cp /etc/nixos/hardware-configuration.nix hosts//hardware.nix
+```
+
+### 6. Enable `Flake` functionality in your system.
+```bash
+NIX_CONFIG="experimental-features = nix-command flakes"
+```
+
+### 7. Build system (provide your hostname)
+```bash
+sudo nixos-rebuild switch --flake .#your-system-hostname
+```
+
+### 8. After system rebuild you can use the following aliases instead of repeating the previous command
+
+- `pullos` - pull latest commits from my repository.
+- `upd` - rebuild system.
+- `upg` - update `flake` and rebuild system.
+- `upd-bt` - rebuild system, but don't switch to it. Will be added to bootloader.
+- `upd-ts` - rebuild system and switch to it, but won't be added to bootloader.
+- `upd-bd` - only builds new configuration.
+
+## TODO:
+- Add instruction for needed PWA
diff --git a/flake.lock b/flake.lock
index a4e6c8e..44e638f 100644
--- a/flake.lock
+++ b/flake.lock
@@ -75,11 +75,11 @@
},
"locked": {
"dir": "pkgs/firefox-addons",
- "lastModified": 1757995413,
- "narHash": "sha256-vaU/7/PXoym6vnspGxhR29V9klGe9iy9zmp6x7w38f8=",
+ "lastModified": 1758295658,
+ "narHash": "sha256-PsQSN226ZZ4KnweNspxKTzF8ztdPOAT6+gpGkxnygpg=",
"owner": "rycee",
"repo": "nur-expressions",
- "rev": "4ae8996b3e139926c784acd22824cde46cd28833",
+ "rev": "7c0e1d343108cbaaf448353fadb62190246251a8",
"type": "gitlab"
},
"original": {
@@ -166,11 +166,11 @@
]
},
"locked": {
- "lastModified": 1757997814,
- "narHash": "sha256-F+1aoG+3NH4jDDEmhnDUReISyq6kQBBuktTUqCUWSiw=",
+ "lastModified": 1758375677,
+ "narHash": "sha256-BLtD+6qWz7fQjPk2wpwyXQLGI0E30Ikgf2ppn2nVadI=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "5820376beb804de9acf07debaaff1ac84728b708",
+ "rev": "edc7468e12be92e926847cb02418e649b02b59dd",
"type": "github"
},
"original": {
@@ -214,11 +214,11 @@
},
"nixpkgs": {
"locked": {
- "lastModified": 1757745802,
- "narHash": "sha256-hLEO2TPj55KcUFUU1vgtHE9UEIOjRcH/4QbmfHNF820=",
+ "lastModified": 1758277210,
+ "narHash": "sha256-iCGWf/LTy+aY0zFu8q12lK8KuZp7yvdhStehhyX1v8w=",
"owner": "nixos",
"repo": "nixpkgs",
- "rev": "c23193b943c6c689d70ee98ce3128239ed9e32d1",
+ "rev": "8eaee110344796db060382e15d3af0a9fc396e0e",
"type": "github"
},
"original": {
diff --git a/hosts/Garand-Desktop/hardware.nix b/hosts/Garand-Desktop/hardware.nix
index 10e28ee..2cde9ee 100644
--- a/hosts/Garand-Desktop/hardware.nix
+++ b/hosts/Garand-Desktop/hardware.nix
@@ -4,51 +4,53 @@
{
config,
lib,
- pkgs,
modulesPath,
...
}:
-
{
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
- boot.initrd.availableKernelModules = [
- "nvme"
- "xhci_pci"
- "ahci"
- "usbhid"
- "usb_storage"
- "sd_mod"
- ];
- boot.initrd.kernelModules = [ "dm-snapshot" ];
- boot.initrd.luks.devices = {
- cryptroot = {
- device = "/dev/disk/by-uuid/7c018698-d35c-4ee6-92a8-5e4edf914065";
- preLVM = true;
+ boot = {
+ initrd = {
+ availableKernelModules = [
+ "nvme"
+ "xhci_pci"
+ "ahci"
+ "usbhid"
+ "usb_storage"
+ "sd_mod"
+ ];
+ kernelModules = [ "dm-snapshot" ];
+ luks.devices = {
+ cryptroot = {
+ device = "/dev/disk/by-uuid/7c018698-d35c-4ee6-92a8-5e4edf914065";
+ preLVM = true;
+ };
+ };
};
- };
- boot.kernelModules = [ "kvm-amd" ];
- boot.extraModulePackages = [ ];
-
- fileSystems."/" = {
- device = "/dev/disk/by-uuid/e3ac1df3-ce8f-44cd-901f-a8cd3f6955b7";
- fsType = "ext4";
+ kernelModules = [ "kvm-amd" ];
+ extraModulePackages = [ ];
};
- fileSystems."/home" = {
- device = "/dev/disk/by-uuid/0713b82c-bf8c-424f-96e1-5d883e50b451";
- fsType = "ext4";
- };
-
- fileSystems."/boot" = {
- device = "/dev/disk/by-uuid/783D-A507";
- fsType = "vfat";
- options = [
- "fmask=0022"
- "dmask=0022"
- ];
+ fileSystems = {
+ "/" = {
+ device = "/dev/disk/by-uuid/e3ac1df3-ce8f-44cd-901f-a8cd3f6955b7";
+ fsType = "ext4";
+ };
+ "/home" = {
+ device = "/dev/disk/by-uuid/0713b82c-bf8c-424f-96e1-5d883e50b451";
+ fsType = "ext4";
+ };
+ "/boot" = {
+ device = "/dev/disk/by-uuid/783D-A507";
+ fsType = "vfat";
+ options = [
+ "fmask=0022"
+ "dmask=0022"
+ ];
+ };
};
swapDevices = lib.mkForce [
diff --git a/hosts/default/host-packages.nix b/hosts/default/host-packages.nix
index e8175a2..589a3a8 100644
--- a/hosts/default/host-packages.nix
+++ b/hosts/default/host-packages.nix
@@ -1,8 +1,6 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
- audacity
- discord
- nodejs
+ # audacity
];
}
diff --git a/modules/core/default.nix b/modules/core/default.nix
index 9f7c5c3..ddcef87 100644
--- a/modules/core/default.nix
+++ b/modules/core/default.nix
@@ -1,11 +1,7 @@
{
inputs,
- host,
...
}:
-let
- vars = import ../../hosts/${host}/variables.nix;
-in
{
imports = [
./boot.nix
diff --git a/modules/core/flatpak.nix b/modules/core/flatpak.nix
index 7a93adb..2f82d05 100644
--- a/modules/core/flatpak.nix
+++ b/modules/core/flatpak.nix
@@ -2,8 +2,24 @@
{
xdg.portal = {
enable = true;
- extraPortals = [ pkgs.xdg-desktop-portal-hyprland ];
+ wlr.enable = true;
+ extraPortals = with pkgs; [
+ xdg-desktop-portal-hyprland
+ xdg-desktop-portal-gtk
+ ];
configPackages = [ pkgs.hyprland ];
+ config.common = {
+ default = [
+ "hyprland"
+ "gtk"
+ ];
+ "org.freedesktop.impl.portal.Settings" = [
+ "hyprland"
+ ];
+ "org.freedesktop.impl.portal.FileChooser" = [
+ "gtk"
+ ];
+ };
};
services = {
flatpak = {
diff --git a/modules/core/network.nix b/modules/core/network.nix
index 96ed3af..084adec 100644
--- a/modules/core/network.nix
+++ b/modules/core/network.nix
@@ -1,5 +1,4 @@
{
- pkgs,
host,
options,
...
@@ -37,6 +36,4 @@ in
];
};
};
-
- environment.systemPackages = with pkgs; [ networkmanagerapplet ];
}
diff --git a/modules/core/nh.nix b/modules/core/nh.nix
index c5cba4c..261968d 100644
--- a/modules/core/nh.nix
+++ b/modules/core/nh.nix
@@ -1,5 +1,4 @@
{
- pkgs,
username,
...
}:
@@ -12,9 +11,4 @@
};
flake = "/home/${username}/garandos";
};
-
- environment.systemPackages = with pkgs; [
- nix-output-monitor
- nvd
- ];
}
diff --git a/modules/core/packages.nix b/modules/core/packages.nix
index 2b60753..42db42b 100644
--- a/modules/core/packages.nix
+++ b/modules/core/packages.nix
@@ -26,10 +26,20 @@
nixpkgs.config.allowUnfree = true;
environment.systemPackages = with pkgs; [
- # Hyprland systeminfo QT (Optional)
- #inputs.hyprsysteminfo.packages.${pkgs.system}.default
-
+ nixd
+ nil
discord
+ trash-cli
+ eddie
+ dex
+ galculator
+ networkmanagerapplet
+ nix-output-monitor
+ nvd
+ ffmpegthumbnailer # Need For Video / Image Preview
+ virt-viewer # View Virtual Machines
+ lazydocker
+ docker-client
amfora # Fancy Terminal Browser For Gemini Protocol
appimage-run # Needed For AppImage Support
brightnessctl # For Screen Brightness Control
@@ -43,8 +53,7 @@
ffmpeg # Terminal Video / Audio Editing
file-roller # Archive Manager
gedit # Simple Graphical Text Editor
- #gemini-cli # CLI AI client ONLY (optional)
- gimp # Great Photo Editor
+ gimp3 # Great Photo Editor
glxinfo # needed for inxi diag util
tuigreet # The Login Manager (Sometimes Referred To As Display Manager)
htop # Simple Terminal Based System Monitor
@@ -92,7 +101,6 @@
wineWowPackages.waylandFull # wine64
lutris
space-cadet-pinball
- dex
exercism
tty-solitaire
cmatrix
@@ -102,5 +110,7 @@
ookla-speedtest
kronometer
inputs.prismlauncher-cracked.packages.${system}.default
+ zed-editor
+ distrobox
];
}
diff --git a/modules/core/quickshell.nix b/modules/core/quickshell.nix
deleted file mode 100644
index 33e4a49..0000000
--- a/modules/core/quickshell.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ pkgs, inputs, ... }:
-{
- environment.systemPackages = with pkgs; [
- inputs.quickshell.packages.${pkgs.system}.default
-
- # 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
- environment.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
- environment.sessionVariables = {
- QT_QPA_PLATFORM = "wayland;xcb";
- QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
- };
-}
diff --git a/modules/core/security.nix b/modules/core/security.nix
index 6b93b39..f38e903 100644
--- a/modules/core/security.nix
+++ b/modules/core/security.nix
@@ -18,5 +18,11 @@ _: {
pam.services.swaylock = {
text = ''auth include login '';
};
+ sudo = {
+ enable = true;
+ extraConfig = ''
+ Defaults pwfeedback
+ '';
+ };
};
}
diff --git a/modules/core/thunar.nix b/modules/core/thunar.nix
index 28c145a..3a33c0a 100644
--- a/modules/core/thunar.nix
+++ b/modules/core/thunar.nix
@@ -1,5 +1,4 @@
{
- host,
pkgs,
...
}:
@@ -13,7 +12,4 @@
];
};
};
- environment.systemPackages = with pkgs; [
- ffmpegthumbnailer # Need For Video / Image Preview
- ];
}
diff --git a/modules/core/virtualisation.nix b/modules/core/virtualisation.nix
index 3af2ff0..3c53eb0 100644
--- a/modules/core/virtualisation.nix
+++ b/modules/core/virtualisation.nix
@@ -1,16 +1,10 @@
-{ pkgs, ... }:
+{ ... }:
{
# Only enable either docker or podman -- Not both
virtualisation = {
- docker = {
- enable = true;
- };
-
+ docker.enable = true;
podman.enable = false;
-
- libvirtd = {
- enable = true;
- };
+ libvirtd.enable = true;
virtualbox.host = {
enable = false;
@@ -18,13 +12,5 @@
};
};
- programs = {
- virt-manager.enable = false;
- };
-
- environment.systemPackages = with pkgs; [
- virt-viewer # View Virtual Machines
- lazydocker
- docker-client
- ];
+ programs.virt-manager.enable = false;
}
diff --git a/modules/core/xserver.nix b/modules/core/xserver.nix
index d99dd41..3e0e2c5 100644
--- a/modules/core/xserver.nix
+++ b/modules/core/xserver.nix
@@ -4,7 +4,7 @@ let
in
{
services.xserver = {
- enable = false;
+ enable = true;
xkb = {
layout = "${keyboardLayout}";
variant = "";
diff --git a/modules/home/bash-aliases.nix b/modules/home/bash-aliases.nix
index 943327c..4ca5151 100644
--- a/modules/home/bash-aliases.nix
+++ b/modules/home/bash-aliases.nix
@@ -1,8 +1,9 @@
-{ host, ... }:
+{ host, username, ... }:
{
programs.bash = {
shellAliases = {
# NixOS aliases
+ pullos = "git -C /home/${username}/garandos pull";
upd = "nh os switch --hostname ${host}";
upg = "nh os switch --hostname ${host} --update";
upd-bt = "nh os boot --hostname ${host}";
@@ -17,7 +18,7 @@
bbr = "bun --bun run";
mkgidf = "git add . --intent-to-add . && git diff > git-diff.txt";
snano = "sudo nano";
- zed = "MANGOHUD=0 /home/garand_plg/.local/bin/zed";
+ zed = "MANGOHUD=0 /home/${username}/.local/bin/zed";
# System aliases
flush-codium = "sudo killall codium && sudo rm -rf ~/.config/VSCodium/Cache && sudo rm -rf ~/.config/VSCodium/CachedData";
diff --git a/modules/home/default.nix b/modules/home/default.nix
index 0c0a0b6..2bddf68 100644
--- a/modules/home/default.nix
+++ b/modules/home/default.nix
@@ -4,7 +4,12 @@ let
in
{
imports = [
+ ./fastfetch
+ ./hyprland
+ ./rofi
+ ./scripts
waybarChoice
+ ./wlogout
./amfora.nix
./bash.nix
./bash-aliases.nix
@@ -15,30 +20,23 @@ in
./cava.nix
./emoji.nix
./eza.nix
- ./fastfetch
./fzf.nix
./gh.nix
./git.nix
./gtk.nix
./htop.nix
- ./hyprland
./kitty.nix
./lazygit.nix
./librewolf.nix
./obs-studio.nix
- ./obs-studio.nix
- ./rofi
./qt.nix
./ssh.nix
- ./scripts
- ./scripts/gemini-cli.nix
./starship.nix
./stylix.nix
./swappy.nix
./swaync.nix
./tealdeer.nix
./virtmanager.nix
- ./wlogout
./xdg.nix
./zoxide.nix
./vscode.nix
diff --git a/modules/home/hyprland/binds.nix b/modules/home/hyprland/binds.nix
index 4879471..63451a3 100644
--- a/modules/home/hyprland/binds.nix
+++ b/modules/home/hyprland/binds.nix
@@ -1,99 +1,150 @@
-{ host, ... }:
+{ host, username, ... }:
let
- inherit (import ../../../hosts/${host}/variables.nix)
- browser
- terminal
- ;
+ inherit (import ../../../hosts/${host}/variables.nix) browser terminal;
+ desktopEntriesPath = "/home/${username}/.local/state/home-manager/gcroots/current-home/home-path/share/applications/";
in
{
wayland.windowManager.hyprland.settings = {
bind = [
- "$modifier,Return,exec,${terminal}"
- "$modifier,K,exec,list-keybinds"
- "$modifier SHIFT,Return,exec,rofi-launcher"
- "$modifier ,R,exec,rofi-launcher"
- "$modifier SHIFT,W,exec,web-search"
- "$modifier ALT,W,exec,wallsetter"
- "$modifier SHIFT,N,exec,swaync-client -rs"
- "$modifier,W,exec,${browser}"
- "$modifier,E,exec,emopicker9000"
- "$modifier,S,exec,screenshootin"
- "$modifier,D,exec,discord"
- "$modifier,O,exec,obs"
- "$modifier,C,exec,hyprpicker -a"
- "$modifier,G,exec,gimp"
- "$modifier shift,T,exec,pypr toggle term"
- "$modifier,T,exec, thunar"
- "$modifier,M,exec,pavucontrol"
- "$modifier,Q,killactive,"
- "$modifier,P,pseudo,"
- "$modifier,V,exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy"
- "$modifier SHIFT,I,togglesplit,"
- "$modifier,F,fullscreen,"
- "$modifier SHIFT,F,togglefloating,"
- "$modifier ALT,F,workspaceopt, allfloat"
- "$modifier SHIFT,C,exit,"
- "$modifier SHIFT,left,movewindow,l"
- "$modifier SHIFT,right,movewindow,r"
- "$modifier SHIFT,up,movewindow,u"
- "$modifier SHIFT,down,movewindow,d"
- "$modifier SHIFT,h,movewindow,l"
- "$modifier SHIFT,l,movewindow,r"
- "$modifier SHIFT,k,movewindow,u"
- "$modifier SHIFT,j,movewindow,d"
- "$modifier ALT, left, swapwindow,l"
- "$modifier ALT, right, swapwindow,r"
- "$modifier ALT, up, swapwindow,u"
- "$modifier ALT, down, swapwindow,d"
- "$modifier ALT, 43, swapwindow,l"
- "$modifier ALT, 46, swapwindow,r"
- "$modifier ALT, 45, swapwindow,u"
- "$modifier ALT, 44, swapwindow,d"
- "$modifier,left,movefocus,l"
- "$modifier,right,movefocus,r"
- "$modifier,up,movefocus,u"
- "$modifier,down,movefocus,d"
- "$modifier,h,movefocus,l"
- "$modifier,l,movefocus,r"
- "$modifier,k,movefocus,u"
- "$modifier,j,movefocus,d"
- "$modifier,1,workspace,1"
- "$modifier,2,workspace,2"
- "$modifier,3,workspace,3"
- "$modifier,4,workspace,4"
- "$modifier,5,workspace,5"
- "$modifier,6,workspace,6"
- "$modifier,7,workspace,7"
- "$modifier,8,workspace,8"
- "$modifier,9,workspace,9"
- "$modifier,0,workspace,10"
- "$modifier SHIFT,SPACE,movetoworkspace,special"
- "$modifier,SPACE,togglespecialworkspace"
- "$modifier SHIFT,1,movetoworkspace,1"
- "$modifier SHIFT,2,movetoworkspace,2"
- "$modifier SHIFT,3,movetoworkspace,3"
- "$modifier SHIFT,4,movetoworkspace,4"
- "$modifier SHIFT,5,movetoworkspace,5"
- "$modifier SHIFT,6,movetoworkspace,6"
- "$modifier SHIFT,7,movetoworkspace,7"
- "$modifier SHIFT,8,movetoworkspace,8"
- "$modifier SHIFT,9,movetoworkspace,9"
- "$modifier SHIFT,0,movetoworkspace,10"
- "$modifier CONTROL,right,workspace,e+1"
- "$modifier CONTROL,left,workspace,e-1"
- "$modifier,mouse_down,workspace, e+1"
- "$modifier,mouse_up,workspace, e-1"
- "ALT,Tab,cyclenext"
- "ALT,Tab,bringactivetotop"
- ",XF86AudioRaiseVolume,exec,wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
- ",XF86AudioLowerVolume,exec,wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
- " ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
- ",XF86AudioPlay, exec, playerctl play-pause"
- ",XF86AudioPause, exec, playerctl play-pause"
+ # =============================================================================
+ # APLIKACJE - GลรWNE
+ # =============================================================================
+ "$modifier, A, exec, anki"
+ "$modifier, B, exec, btop"
+ "$modifier, C, exec, chromium"
+ "$modifier, D, exec, discord"
+ "$modifier, G, exec, gimp"
+ "$modifier, M, exec, plexamp"
+ "$modifier, N, exec, dex ${desktopEntriesPath}/garandcloud.desktop"
+ "$modifier, O, exec, obs"
+ "$modifier, Return, exec, ${terminal}"
+ "$modifier, S, exec, steam"
+ "$modifier, T, exec, thunar"
+ "$modifier, V, exec, codium"
+ "$modifier, W, exec, ${browser}"
+ "$modifier, Z, exec, zed-editor"
+
+ # =============================================================================
+ # APLIKACJE - Z SHIFT
+ # =============================================================================
+ "$modifier SHIFT, B, exec, blueman-manager"
+ "$modifier SHIFT, C, exec, dex ${desktopEntriesPath}/claude.desktop"
+ "$modifier SHIFT, G, exec, dex ${desktopEntriesPath}/chatgpt.desktop"
+ "$modifier SHIFT, M, exec, dex ${desktopEntriesPath}/messenger.desktop"
+ "$modifier SHIFT, N, exec, nextcloud"
+ "$modifier SHIFT, O, exec, onlyoffice-desktopeditors"
+ "$modifier SHIFT, Return, exec, rofi-launcher"
+ "$modifier SHIFT, T, exec, tutanota-desktop"
+ "$modifier SHIFT, W, exec, web-search"
+
+ # =============================================================================
+ # APLIKACJE - Z ALT I CONTROL
+ # =============================================================================
+ "$modifier ALT, M, exec, dex ${desktopEntriesPath}/mastodon.desktop"
+ "$modifier ALT, S, exec, slack"
+ "$modifier CONTROL, M, exec, mattermost-desktop"
+
+ # =============================================================================
+ # NARZฤDZIA SYSTEMOWE
+ # =============================================================================
+ "$modifier, E, exec, emopicker9000"
+ "$modifier, K, exec, galculator"
+ "$modifier, P, exec, hyprpicker -a"
+ "$modifier ALT, W, exec, wallsetter"
+ "$modifier SHIFT, K, exec, list-keybinds"
+ "$modifier SHIFT, P, exec, pavucontrol"
+ "$modifier SHIFT, S, exec, screenshootin"
+
+ # =============================================================================
+ # ZARZฤDZANIE OKNAMI
+ # =============================================================================
+ "$modifier, Escape, exec, hyprlock"
+ "$modifier, F, fullscreen,"
+ "$modifier, Q, killactive,"
+ "$modifier SHIFT, Escape, exit,"
+ "$modifier SHIFT, I, togglesplit,"
+
+ # =============================================================================
+ # FOKUS OKIEN
+ # =============================================================================
+ "$modifier, down, movefocus, d"
+ "$modifier, left, movefocus, l"
+ "$modifier, right, movefocus, r"
+ "$modifier, up, movefocus, u"
+
+ # =============================================================================
+ # PRZEMIESZCZANIE OKIEN
+ # =============================================================================
+ "$modifier SHIFT, down, movewindow, d"
+ "$modifier SHIFT, left, movewindow, l"
+ "$modifier SHIFT, right, movewindow, r"
+ "$modifier SHIFT, up, movewindow, u"
+
+ # =============================================================================
+ # ZAMIANA OKIEN
+ # =============================================================================
+ "$modifier ALT, down, swapwindow, d"
+ "$modifier ALT, left, swapwindow, l"
+ "$modifier ALT, right, swapwindow, r"
+ "$modifier ALT, up, swapwindow, u"
+
+ # =============================================================================
+ # WORKSPACES - PRZEลฤCZANIE
+ # =============================================================================
+ "$modifier, 0, workspace, 10"
+ "$modifier, 1, workspace, 1"
+ "$modifier, 2, workspace, 2"
+ "$modifier, 3, workspace, 3"
+ "$modifier, 4, workspace, 4"
+ "$modifier, 5, workspace, 5"
+ "$modifier, 6, workspace, 6"
+ "$modifier, 7, workspace, 7"
+ "$modifier, 8, workspace, 8"
+ "$modifier, 9, workspace, 9"
+ "$modifier CONTROL, left, workspace, e-1"
+ "$modifier CONTROL, right, workspace, e+1"
+ "$modifier, mouse_down, workspace, e+1"
+ "$modifier, mouse_up, workspace, e-1"
+
+ # =============================================================================
+ # WORKSPACES - PRZENOSZENIE OKIEN
+ # =============================================================================
+ "$modifier SHIFT, 0, movetoworkspace, 10"
+ "$modifier SHIFT, 1, movetoworkspace, 1"
+ "$modifier SHIFT, 2, movetoworkspace, 2"
+ "$modifier SHIFT, 3, movetoworkspace, 3"
+ "$modifier SHIFT, 4, movetoworkspace, 4"
+ "$modifier SHIFT, 5, movetoworkspace, 5"
+ "$modifier SHIFT, 6, movetoworkspace, 6"
+ "$modifier SHIFT, 7, movetoworkspace, 7"
+ "$modifier SHIFT, 8, movetoworkspace, 8"
+ "$modifier SHIFT, 9, movetoworkspace, 9"
+
+ # =============================================================================
+ # MEDIA I KONTROLKI SYSTEMOWE
+ # =============================================================================
+ ",XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
+ ",XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
",XF86AudioNext, exec, playerctl next"
+ ",XF86AudioPause, exec, playerctl play-pause"
+ ",XF86AudioPlay, exec, playerctl play-pause"
",XF86AudioPrev, exec, playerctl previous"
- ",XF86MonBrightnessDown,exec,brightnessctl set 5%-"
- ",XF86MonBrightnessUp,exec,brightnessctl set +5%"
+ ",XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
+ ",XF86MonBrightnessDown, exec, brightnessctl set 5%-"
+ ",XF86MonBrightnessUp, exec, brightnessctl set +5%"
+
+ # =============================================================================
+ # NIEUลปYWANE KEYBINDY (ZAKOMENTOWANE)
+ # =============================================================================
+ # "$modifier , R, exec, rofi-launcher"
+ # "$modifier SHIFT, N, exec, swaync-client -rs"
+ # "$modifier, P, pseudo,"
+ # "$modifier SHIFT,F, togglefloating,"
+ # "$modifier ALT,F, workspaceopt, allfloat"
+ # "$modifier SHIFT, SPACE, movetoworkspace, special"
+ # "$modifier, SPACE, togglespecialworkspace"
+ # "ALT,Tab,cyclenext"
+ # "ALT,Tab,bringactivetotop"
];
bindm = [
diff --git a/modules/home/hyprland/face.jpg b/modules/home/hyprland/face.jpg
index 815d2b7..9a2d2ea 100644
Binary files a/modules/home/hyprland/face.jpg and b/modules/home/hyprland/face.jpg differ
diff --git a/modules/home/hyprland/hyprland.nix b/modules/home/hyprland/hyprland.nix
index 6bc17b7..95251ed 100644
--- a/modules/home/hyprland/hyprland.nix
+++ b/modules/home/hyprland/hyprland.nix
@@ -5,23 +5,9 @@
...
}:
let
- inherit (import ../../../hosts/${host}/variables.nix)
- extraMonitorSettings
- keyboardLayout
- stylixImage
- ;
+ inherit (import ../../../hosts/${host}/variables.nix) extraMonitorSettings keyboardLayout;
in
{
- home.packages = with pkgs; [
- swww
- grim
- slurp
- wl-clipboard
- swappy
- ydotool
- hyprpolkitagent
- hyprland-qtutils # needed for banners and ANR messages
- ];
systemd.user.targets.hyprland-session.Unit.Wants = [
"xdg-desktop-autostart.target"
];
@@ -94,7 +80,8 @@ in
key_press_enables_dpms = false;
disable_hyprland_logo = true;
disable_splash_rendering = true;
- enable_swallow = false;
+ 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
diff --git a/modules/home/hyprland/hyprlock.nix b/modules/home/hyprland/hyprlock.nix
index e68f372..e285ad9 100644
--- a/modules/home/hyprland/hyprlock.nix
+++ b/modules/home/hyprland/hyprlock.nix
@@ -11,7 +11,7 @@
};
background = [
{
- path = "/home/${username}/Pictures/Wallpapers/beautifulmountainscape.jpg";
+ path = "/home/${username}/Pictures/Wallpapers/four-elements.jpg";
blur_passes = 3;
blur_size = 8;
}
diff --git a/modules/home/hyprland/pyprland.nix b/modules/home/hyprland/pyprland.nix
index d07f8b6..9d4a799 100644
--- a/modules/home/hyprland/pyprland.nix
+++ b/modules/home/hyprland/pyprland.nix
@@ -1,7 +1,5 @@
-{ pkgs, ... }:
+{ ... }:
{
- home.packages = with pkgs; [ pyprland ];
-
home.file.".config/hypr/pyprland.toml".text = ''
[pyprland]
plugins = [
diff --git a/modules/home/rofi/config-long.nix b/modules/home/rofi/config-long.nix
index 01eef82..2451615 100644
--- a/modules/home/rofi/config-long.nix
+++ b/modules/home/rofi/config-long.nix
@@ -2,18 +2,24 @@
{
home.file.".config/rofi/config-long.rasi".text = ''
@import "~/.config/rofi/config.rasi"
+ * {
+ font: "JetBrainsMono Nerd Font Mono 12";
+ }
window {
width: 750px;
- border-radius: 20px;
+ border-radius: 10px;
}
mainbox {
orientation: vertical;
children: [ "inputbar", "listbox" ];
}
+ listview {
+ lines: 13;
+ }
inputbar {
- padding: 75px 40px;
+ padding: 55px 30px;
background-color: transparent;
- background-image: url("~/Pictures/Wallpapers/Rainnight.jpg", width);
+ background-image: url("~/Pictures/Wallpapers/attack-on-titan-mikasa-ackerman.jpg", width);
text-color: @foreground;
children: [ "textbox-prompt-colon", "entry" ];
}
@@ -31,12 +37,12 @@
text-color: @foreground;
}
button {
- padding: 12px;
+ padding: 2px;
border-radius: 100%;
}
element {
- spacing: 10px;
- padding: 12px;
+ spacing: 2px;
+ padding: 2px;
border-radius: 100%;
}
textbox {
diff --git a/modules/home/rofi/rofi.nix b/modules/home/rofi/rofi.nix
index d60ca5d..e5ce4e3 100644
--- a/modules/home/rofi/rofi.nix
+++ b/modules/home/rofi/rofi.nix
@@ -60,7 +60,7 @@
"imagebox" = {
padding = mkLiteral "20px";
background-color = mkLiteral "transparent";
- background-image = mkLiteral ''url("~/Pictures/Wallpapers/Rainnight.jpg", height)'';
+ background-image = mkLiteral ''url("~/Pictures/Wallpapers/fire-nation.jpg", height)'';
orientation = mkLiteral "vertical";
children = map mkLiteral [
"inputbar"
diff --git a/modules/home/scripts/default.nix b/modules/home/scripts/default.nix
index 4d71371..d939748 100644
--- a/modules/home/scripts/default.nix
+++ b/modules/home/scripts/default.nix
@@ -1,20 +1,30 @@
{
pkgs,
username,
- profile,
...
}:
{
- home.packages = [
+ home.packages = with pkgs; [
+ # hyprland
+ swww
+ grim
+ slurp
+ wl-clipboard
+ swappy
+ ydotool
+ hyprpolkitagent
+ hyprland-qtutils # needed for banners and ANR messages
+ # pyprland
+ pyprland
+
(import ./emopicker9000.nix { inherit pkgs; })
(import ./hm-find.nix { inherit pkgs; })
- (import ./keybinds.nix { inherit pkgs; })
+ (import ./keybinds.nix { inherit pkgs username; })
(import ./note.nix { inherit pkgs; })
(import ./note-from-clipboard.nix { inherit pkgs; })
(import ./nvidia-offload.nix { inherit pkgs; })
(import ./rofi-launcher.nix { inherit pkgs; })
(import ./screenshootin.nix { inherit pkgs; })
- (import ./squirtle.nix { inherit pkgs; })
(import ./task-waybar.nix { inherit pkgs; })
(import ./wallsetter.nix {
inherit pkgs;
diff --git a/modules/home/scripts/gemini-cli.nix b/modules/home/scripts/gemini-cli.nix
deleted file mode 100644
index 08851ff..0000000
--- a/modules/home/scripts/gemini-cli.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{ config, pkgs, ... }:
-
-let
- gemini-launcher = pkgs.writeShellScriptBin "gemini-launcher" ''
- #!${pkgs.bash}/bin/bash
-
- # Define the path to your API key file
- KEY_FILE="${config.home.homeDirectory}/gem.key"
-
- # Check if the key file exists and is readable
- if [ -f "$KEY_FILE" ]; then
- # Source the API key from the file.
- source "$KEY_FILE"
- # Launch Gemini directly; it will pick up the exported key.
- exec ${pkgs.kitty}/bin/kitty -e ${pkgs.gemini-cli}/bin/gemini
- else
- # If the key file doesn't exist, launch kitty with an informational message, then start gemini.
- exec ${pkgs.kitty}/bin/kitty -e bash -c "echo 'NOTE: Gemini API key file not found at ~/.gem.key.'; echo 'To use a key, create this file with content: export GEMINI_API_KEY=\"YOUR_KEY\"'; echo; echo 'Starting Gemini CLI, which will fall back to web-based login...'; echo; exec ${pkgs.gemini-cli}/bin/gemini"
- fi
- '';
-
-in
-{
- home.packages = [
- gemini-launcher
- ];
-
- xdg.desktopEntries.gemini-cli = {
- name = "Gemini CLI";
- comment = "Launch the Gemini CLI in Kitty terminal";
- icon = "utilities-terminal";
- exec = "gemini-launcher";
- terminal = false;
- type = "Application";
- categories = [
- "Development"
- "Utility"
- ];
- };
-}
diff --git a/modules/home/scripts/keybinds.nix b/modules/home/scripts/keybinds.nix
index eb8e2c6..3935fda 100644
--- a/modules/home/scripts/keybinds.nix
+++ b/modules/home/scripts/keybinds.nix
@@ -1,15 +1,18 @@
-{ pkgs }:
+{ pkgs, username, ... }:
+let
+ desktopEntriesPath = "/home/${username}/.local/state/home-manager/gcroots/current-home/home-path/share/applications/";
+in
pkgs.writeShellScriptBin "list-keybinds" ''
# check if rofi is already running
if pidof rofi > /dev/null; then
pkill rofi
fi
- msg='โฃ๏ธ NOTE โฃ๏ธ: Clicking with Mouse or Pressing ENTER will have NO function'
+ msg='๏
ผ = Windows/Super/CAPS LOCK (Enter nie wykonuje skrรณtu)'
keybinds=$(cat ~/.config/hypr/hyprland.conf | grep -E '^bind')
# replace #modifier with SUPER in the displayed keybinds for rofi
- display_keybinds=$(echo "$keybinds" | sed 's/\$modifier/SUPER/g')
+ display_keybinds=$(echo "$keybinds" | sed 's/\$modifier/๏
ผ/g' | sed 's|${desktopEntriesPath}/||g')
# use rofi to display the keybinds with the modified content
echo "$display_keybinds" | rofi -dmenu -i -config ~/.config/rofi/config-long.rasi -mesg "$msg"
diff --git a/modules/home/scripts/squirtle.nix b/modules/home/scripts/squirtle.nix
deleted file mode 100644
index c1aeb93..0000000
--- a/modules/home/scripts/squirtle.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ pkgs }:
-
-pkgs.writeShellScriptBin "squirtle" ''
- echo "
- [38;2;0;0;0m โโโโโโโโ โโโโโโ
- [38;2;0;0;0m โโ[38;2;82;156;154mโโ[38;2;115;198;243mโโโโโโ[38;2;0;0;0mโโโโ โโ[38;2;115;198;243mโโโโโโ[38;2;0;0;0mโโ
- [38;2;0;0;0m โโ[38;2;115;200;243mโโโโโโโโโโโโ[38;2;85;137;157mโโ[38;2;8;0;0mโโ[38;2;0;0;0mโโ โโ[38;2;115;198;243mโโโโโโ[38;2;79;159;151mโโโโ[38;2;0;0;0mโโ
- [38;2;0;0;0m โโ[38;2;115;200;243mโโโโโโโโโโโโ[38;2;123;206;235mโโ[38;2;46;69;78mโโ[38;2;189;107;37mโโ[38;2;0;0;0mโโโโ โโ[38;2;115;198;243mโโโโ[38;2;82;156;154mโโ[38;2;57;66;65mโโ[38;2;68;113;108mโโ[38;2;0;0;0mโโ
- [38;2;0;0;0mโโ[38;2;115;198;243mโโ[38;2;115;200;243mโโโโ[38;2;159;208;204mโโ[38;2;96;162;155mโโ[38;2;115;198;243mโโโโโโ[38;2;82;156;154mโโ[38;2;66;61;66mโโ[38;2;214;132;38mโโ[38;2;198;119;38mโโ[38;2;0;0;0mโโ[38;2;86;146;154mโโ[38;2;107;214;243mโโ[38;2;82;156;154mโโ[38;2;66;66;66mโโ[38;2;82;156;154mโโโโ[38;2;0;0;0mโโ
- [38;2;0;0;0mโโ[38;2;115;198;243mโโ[38;2;115;200;243mโโโโ[38;2;33;115;105mโโ[38;2;222;255;254mโโ[38;2;0;0;0mโโ[38;2;115;198;243mโโโโ[38;2;82;156;154mโโ[38;2;66;61;66mโโ[38;2;140;96;52mโโ[38;2;198;119;38mโโโโ[38;2;66;78;66mโโ[38;2;86;146;154mโโ[38;2;82;156;154mโโ[38;2;66;66;66mโโ[38;2;82;156;154mโโ[38;2;0;0;0mโโ
- [38;2;0;0;0mโโ[38;2;115;198;243mโโ[38;2;115;200;243mโโโโ[38;2;77;144;162mโโ[38;2;0;4;0mโโ[38;2;41;8;1mโโ[38;2;123;214;235mโโ[38;2;82;156;154mโโโโ[38;2;66;66;66mโโ[38;2;255;255;255mโโ[38;2;140;82;44mโโ[38;2;214;140;46mโโ[38;2;90;103;88mโโ[38;2;49;111;121mโโ[38;2;85;159;151mโโ[38;2;46;80;76mโโ[38;2;0;0;0mโโ
- [38;2;0;0;0m โโ[38;2;115;200;243mโโโโ[38;2;115;214;243mโโ[38;2;0;4;0mโโ[38;2;68;77;79mโโ[38;2;96;145;157mโโ[38;2;82;156;154mโโ[38;2;66;66;66mโโ[38;2;192;192;192mโโ[38;2;255;255;255mโโ[38;2;140;82;44mโโ[38;2;214;140;46mโโ[38;2;173;86;21mโโ[38;2;90;103;88mโโ[38;2;85;159;151mโโ[38;2;8;0;0mโโ[38;2;0;0;0m
- [38;2;0;0;0m [38;2;8;0;0mโโ[38;2;49;77;76mโโ[38;2;82;156;154mโโโโ[38;2;99;132;115mโโโโ[38;2;57;74;81mโโ[38;2;118;129;107mโโ[38;2;66;66;66mโโ[38;2;148;198;220mโโ[38;2;255;255;255mโโ[38;2;140;82;44mโโ[38;2;189;103;37mโโ[38;2;66;66;66mโโ[38;2;82;156;154mโโ[38;2;0;0;0mโโ
- [38;2;0;0;0m [38;2;8;0;0mโโ[38;2;91;154;152mโโ[38;2;66;66;66mโโโโ[38;2;49;103;113mโโ[38;2;198;189;118mโโ[38;2;239;239;159mโโ[38;2;57;74;81mโโ[38;2;148;198;220mโโ[38;2;66;66;66mโโ[38;2;255;255;255mโโ[38;2;140;82;44mโโ[38;2;148;91;47mโโ[38;2;66;66;66mโโ[38;2;0;0;0mโโ
- [38;2;0;0;0m โโโโ[38;2;247;231;143mโโโโโโ[38;2;66;66;66mโโ[38;2;115;198;243mโโโโโโ[38;2;66;66;66mโโ[38;2;140;82;44mโโ[38;2;189;107;37mโโ[38;2;0;0;0mโโ
- [38;2;0;0;0m โโ[38;2;206;173;94mโโโโ[38;2;66;66;66mโโ[38;2;115;198;243mโโโโ[38;2;82;156;154mโโ[38;2;66;66;66mโโ[38;2;140;82;44mโโ[38;2;189;107;37mโโ[38;2;0;0;0mโโ
- [38;2;0;0;0m โโ[38;2;57;115;105mโโ[38;2;80;85;69mโโ[38;2;239;239;159mโโ[38;2;255;231;127mโโ[38;2;74;66;58mโโ[38;2;82;156;154mโโ[38;2;66;66;66mโโ[38;2;58;69;71mโโ[38;2;173;198;197mโโ[38;2;0;0;0mโโ
- [38;2;0;0;0m โโ[38;2;57;115;105mโโ[38;2;80;85;69mโโ[38;2;0;8;24mโโ[38;2;195;176;104mโโโโ[38;2;66;66;66mโโโโ[38;2;115;133;134mโโ[38;2;58;69;71mโโ[38;2;0;0;0mโโ
- [38;2;0;0;0m โโโโ โโ[38;2;66;66;66mโโ[38;2;115;206;243mโโ[38;2;76;151;151mโโ[38;2;82;156;154mโโ[38;2;0;0;0mโโ
- [38;2;0;0;0m โโ[38;2;76;151;151mโโ[38;2;57;123;105mโโ[38;2;82;156;154mโโ[38;2;0;0;0mโโ
- [38;2;0;0;0m โโโโโโ [0m
- "
-''
diff --git a/modules/home/scripts/web-search.nix b/modules/home/scripts/web-search.nix
index 0a28e6b..c1ebbc6 100644
--- a/modules/home/scripts/web-search.nix
+++ b/modules/home/scripts/web-search.nix
@@ -8,11 +8,23 @@ pkgs.writeShellScriptBin "web-search" ''
declare -A URLS
URLS=(
- ["๐ Search"]="https://search.brave.com/search?q="
- ["โ๏ธ Unstable Packages"]="https://search.nixos.org/packages?channel=unstable&from=0&size=50&sort=relevance&type=packages&query="
- ["๐๏ธ YouTube"]="https://www.youtube.com/results?search_query="
- ["๐ฆฅ Arch Wiki"]="https://wiki.archlinux.org/title/"
- ["๐ Gentoo Wiki"]="https://wiki.gentoo.org/index.php?title="
+ ["๏ฌ Search"]="https://search.garandplg.com/search?q="
+ ["โ๏ธ Nix Unstable Packages"]="https://search.nixos.org/packages?channel=unstable&query="
+ ["โ๏ธ Nix Options"]="https://search.nixos.org/options?query="
+ ["โ๏ธ Nix Wiki"]="https://wiki.nixos.org/w/index.php?search="
+ ["โ๏ธ Home Manager Options"]="https://home-manager-options.extranix.com/release=master?query="
+ ["๏
Kalkulator walutowy EUR"]="https://www.money.pl/pieniadze/kalkulator/?currencyFrom=EUR¤cyTo=PLN&amount="
+ ["\$ Kalkulator walutowy USD"]="https://www.money.pl/pieniadze/kalkulator/?currencyFrom=USD¤cyTo=PLN&amount="
+ ["๏ YouTube"]="https://www.youtube.com/results?search_query="
+ ["๏ฆ Wikipedia PL"]="https://pl.wikipedia.org/w/index.php?search="
+ ["๏
ฌ StackOverflow"]="https://stackoverflow.com/search?q="
+ ["๏บ Eneba"]="https://www.eneba.com/pl/store/all?text="
+ ["๏บ Kinguin"]="https://www.kinguin.net/listing?active=1&hideUnavailable=0&type=kinguin?phrase="
+ ["๏บ Instant Gaming"]="https://www.instant-gaming.com/pl/search/?q="
+ ["๏บ Morele"]="https://www.morele.net/wyszukiwarka/?q="
+ ["๏บ X-kom"]="https://www.x-kom.pl/szukaj?q="
+ ["๏บ Komputrnik"]="https://www.komputronik.pl/search/category/1?q="
+ ["๏บ Allegro"]="https://allegro.pl/listing?string="
)
# List for rofi
diff --git a/modules/home/starship.nix b/modules/home/starship.nix
index 7dd5919..fc31c3d 100644
--- a/modules/home/starship.nix
+++ b/modules/home/starship.nix
@@ -1,4 +1,3 @@
-# starship with python venv support
{
config,
lib,
@@ -6,13 +5,12 @@
}:
let
accent = "#${config.lib.stylix.colors.base0D}";
- background-alt = "#${config.lib.stylix.colors.base01}";
in
{
programs.starship = {
enable = true;
settings = {
- add_newline = false;
+ add_newline = true;
format = lib.concatStrings [
"$nix_shell"
"$hostname"
@@ -20,19 +18,33 @@ in
"$git_branch"
"$git_state"
"$git_status"
+ "$fill"
"$python"
- "\n"
+ "$nodejs"
+ "$rust"
+ "$docker_context"
+ "$cmd_duration"
+ "$line_break"
"$character"
];
directory = {
- style = accent;
+ style = "bold fg:dark_blue";
+ format = "[$path ]($style)";
+ truncation_length = 3;
+ truncation_symbol = "โฆ/";
+ truncate_to_repo = false;
+ substitutions = {
+ "Documents" = "๓ฐ";
+ "Downloads" = "๏ ";
+ "Music" = "๏ฃ ";
+ "Pictures" = "๏พ ";
+ };
};
character = {
success_symbol = "[โฏ](${accent})";
error_symbol = "[โฏ](red)";
- vimcmd_symbol = "[โฎ](cyan)";
};
nix_shell = {
@@ -42,14 +54,14 @@ in
};
git_branch = {
- symbol = "[๎ถ](${background-alt})๏ ";
- style = "fg:${accent} bg:${background-alt}";
- format = "on [$symbol$branch]($style)[๎ด](${background-alt}) ";
+ style = "fg:green";
+ symbol = "๏ก ";
+ format = "[on](white) [$symbol$branch ]($style)";
};
git_status = {
- format = "[[(*$conflicted$untracked$modified$staged$renamed$deleted)](218)($ahead_behind$stashed)]($style)";
- style = "cyan";
+ style = "fg:green";
+ format = "([$all_status$ahead_behind]($style) )";
conflicted = "";
renamed = "";
deleted = "";
@@ -61,11 +73,44 @@ in
style = "bright-black";
};
+ fill = {
+ symbol = " ";
+ };
+
python = {
- format = " [$symbol($virtualenv)](${accent}) ";
+ style = "teal";
symbol = "๎ต ";
- pyenv_version_name = false;
- style = "fg:${accent}";
+ format = "[\${symbol}\${pyenv_prefix}(\${version} )(\($virtualenv\) )]($style)";
+ pyenv_version_name = true;
+ pyenv_prefix = "";
+ };
+
+ nodejs = {
+ style = "blue";
+ symbol = "๏ ";
+ };
+
+ rust = {
+ style = "orange";
+ symbol = "๎บ ";
+ };
+
+ docker_context = {
+ symbol = "๏ ";
+ style = "fg:#06969A";
+ format = "[$symbol]($style) $path";
+ detect_files = [
+ "docker-compose.yml"
+ "docker-compose.yaml"
+ "Dockerfile"
+ ];
+ detect_extensions = [ "Dockerfile" ];
+ };
+
+ cmd_duration = {
+ min_time = 500;
+ style = "fg:gray";
+ format = "[$duration]($style)";
};
};
};
diff --git a/modules/home/waybar/waybar-ddubs-2.nix b/modules/home/waybar/waybar-ddubs-2.nix
index 35a9a38..f2353c4 100644
--- a/modules/home/waybar/waybar-ddubs-2.nix
+++ b/modules/home/waybar/waybar-ddubs-2.nix
@@ -1,6 +1,5 @@
{
pkgs,
- config,
lib,
...
}:
diff --git a/modules/home/waybar/waybar-dwm-2.nix b/modules/home/waybar/waybar-dwm-2.nix
index 0e0856a..f5a7a42 100644
--- a/modules/home/waybar/waybar-dwm-2.nix
+++ b/modules/home/waybar/waybar-dwm-2.nix
@@ -4,10 +4,9 @@
...
}:
{
- home.packages = with pkgs; [ waybar ];
-
programs.waybar = {
enable = true;
+ package = pkgs.waybar;
settings = {
mainBar = {
layer = "top";
diff --git a/modules/home/waybar/waybar-dwm.nix b/modules/home/waybar/waybar-dwm.nix
index 5714970..09fe356 100644
--- a/modules/home/waybar/waybar-dwm.nix
+++ b/modules/home/waybar/waybar-dwm.nix
@@ -4,10 +4,9 @@
...
}:
{
- home.packages = with pkgs; [ waybar ];
-
programs.waybar = {
enable = true;
+ package = pkgs.waybar;
settings = {
mainBar = {
layer = "top";
diff --git a/modules/home/waybar/waybar-jerry.nix b/modules/home/waybar/waybar-jerry.nix
index 982c00b..bfe4f8a 100644
--- a/modules/home/waybar/waybar-jerry.nix
+++ b/modules/home/waybar/waybar-jerry.nix
@@ -1,6 +1,5 @@
{
pkgs,
- config,
lib,
...
}:
diff --git a/modules/home/xdg.nix b/modules/home/xdg.nix
index 8eba814..deb66d9 100644
--- a/modules/home/xdg.nix
+++ b/modules/home/xdg.nix
@@ -1,15 +1,77 @@
{ pkgs, ... }:
+let
+ messengerIcon = pkgs.fetchurl {
+ url = "https://assets.stickpng.com/images/580b57fcd9996e24bc43c526.png";
+ sha256 = "sha256-mQ7TAsLIWLZhun1DrJFgLkkwpqvWujhGT6Ig8Rf6vbc=";
+ };
+ mastodonIcon = pkgs.fetchurl {
+ url = "https://upload.wikimedia.org/wikipedia/commons/thumb/d/d5/Mastodon_logotype_%28simple%29_new_hue.svg/1200px-Mastodon_logotype_%28simple%29_new_hue.svg.png";
+ sha256 = "sha256-y31Pkl4iExgiM4yZ64t/elA7FYZM1daGQIvYzJdmWhw=";
+ };
+ nextcloudIcon = pkgs.fetchurl {
+ url = "https://cdn.freelogovectors.net/wp-content/uploads/2020/02/nextcloud-logo.png";
+ sha256 = "sha256-vbe3Jz6oNCUlhK81LGlDDFbo6xpUXiDio40bYqJ4lf4=";
+ };
+ chatgptIcon = pkgs.fetchurl {
+ url = "https://static.vecteezy.com/system/resources/previews/031/110/149/large_2x/chatgpt-logo-transparent-free-png.png";
+ sha256 = "sha256-ZWmhchblQkksW02eduVrkUSPAlWPGC2fjqxrAGAF5jw=";
+ };
+ claudeIcon = pkgs.fetchurl {
+ url = "https://registry.npmmirror.com/@lobehub/icons-static-png/1.65.0/files/dark/claude-color.png";
+ sha256 = "sha256-wmYmbmT2/bR4JrnZJu2stjRZm//O5TB9EPE2NQWdGkQ=";
+ };
+in
{
xdg = {
enable = true;
mime.enable = true;
- mimeApps = {
- enable = true;
- };
+ mimeApps.enable = true;
portal = {
enable = true;
extraPortals = [ pkgs.xdg-desktop-portal-hyprland ];
configPackages = [ pkgs.hyprland ];
};
+ desktopEntries = {
+ "messenger" = {
+ name = "Messenger";
+ genericName = "Messenger";
+ exec = "chromium --profile-directory=Default --app=https://www.messenger.com/";
+ icon = "${messengerIcon}";
+ terminal = false;
+ type = "Application";
+ };
+ "mastodon" = {
+ name = "Mastodon";
+ genericName = "Mastodon";
+ exec = "chromium --profile-directory=Default --app=https://metalhead.club/";
+ icon = "${mastodonIcon}";
+ terminal = false;
+ type = "Application";
+ };
+ "garandcloud" = {
+ name = "GarandCloud";
+ genericName = "Nextcloud";
+ exec = "chromium --profile-directory=Default --app=https://nextcloud.garandplg.com/";
+ icon = "${nextcloudIcon}";
+ terminal = false;
+ type = "Application";
+ };
+ "chatgpt" = {
+ name = "ChatGPT";
+ genericName = "ChatGPT";
+ exec = "chromium --profile-directory=Default --app=https://chatgpt.com/";
+ icon = "${chatgptIcon}";
+ terminal = false;
+ type = "Application";
+ };
+ "claude" = {
+ name = "Claude";
+ genericName = "Claude";
+ exec = "chromium --profile-directory=Default --app=https://claude.ai/";
+ icon = "${claudeIcon}";
+ terminal = false;
+ type = "Application";
+ };
+ };
};
}