Compare commits

..

52 Commits

Author SHA1 Message Date
tux
87e065c659 refactor(shell): replace aichat with opencode 2025-10-10 23:48:30 +05:30
tux
767b2f601a feat(hyrpland): bind workspaces to monitor 2025-10-10 19:42:45 +05:30
tux
e5091a1e00 feat(hyprland): resize floating windows 2025-10-10 16:45:19 +05:30
tux
0aa20a37bc feat(canopus): update age public key 2025-10-10 16:44:47 +05:30
tux
94e3785df0 chore: update sha256 hash 2025-10-10 16:43:57 +05:30
tux
5e33aadcd3 feat: update disk config 2025-10-10 10:23:08 +05:30
tux
0934d3235d fix(input): adjust mouse sensitivity 2025-10-08 15:01:13 +05:30
tux
e55e55ddbf feat(input): configure mouse acceleration profile 2025-10-08 04:03:22 +05:30
tux
7006670315 chore: update tpanel flake input 2025-10-07 03:26:22 +05:30
tux
f180bf98fb feat(hyprland): update bindings for tpanel 2025-10-07 01:52:38 +05:30
tux
26c20eb13f feat(hyprland): add mouse bindings 2025-10-07 01:51:44 +05:30
tux
6f53a88817 fix: mouse sensitivity 2025-10-06 22:49:24 +05:30
tux
b7c1c5880d doc: update README 2025-10-06 19:04:17 +05:30
tux
4db41c2842 chore(assets): remove unused 2025-10-06 18:59:39 +05:30
tux
b330c11e90 chore(readme): update UI element references 2025-10-06 18:41:33 +05:30
tux
a43bea05f2 doc(assets): Organize assets by window manager 2025-10-06 18:38:53 +05:30
tux
5d9c95e7ca chore: update sha256 hash 2025-10-04 16:38:09 +05:30
tux
8d89b88b08 chore: update tnvim flake input 2025-10-04 16:31:13 +05:30
tux
e3e742b0ee fix(superfile): set default directory to home 2025-10-04 04:33:24 +05:30
tux
69d22c9be3 feat(hyprland): replace thunar with superfile 2025-10-03 21:53:39 +05:30
tux
4dbd7264a2 feat: update asusd config 2025-10-02 13:54:25 +05:30
tux
4a88e9bd60 style(editor): increase font size 2025-09-30 11:15:12 +05:30
tux
db81a357c9 feat(hyprland): add window centering shortcut 2025-09-30 11:14:48 +05:30
tux
410a202b3d feat(canopus): reduce battery charge threshold 2025-09-30 11:14:34 +05:30
tux
6e069ea386 chore: update tpanel flake input 2025-09-30 11:14:10 +05:30
tux
776b469267 chore: add iwd to persist dir 2025-09-28 05:12:02 +05:30
tux
6c5627e919 feat: add impala 2025-09-28 05:11:58 +05:30
tux
e869984a81 chore(hyprland): refine window floating toggle 2025-09-28 03:01:40 +05:30
tux
8d6e94b059 fix(mopidy): remove unused visualizer sync interval 2025-09-28 01:43:29 +05:30
tux
03fb51dd03 chore: update tpanel flake input 2025-09-28 01:30:02 +05:30
tux
5b76e660dd feat: add bluetui 2025-09-27 21:03:31 +05:30
tux
01c7859436 chore: update tpanel flake input 2025-09-26 13:29:25 +05:30
tux
3efd26e126 feat(hyprland): add tpanel control-center binding 2025-09-25 20:11:27 +05:30
tux
dce1b54011 chore: update tpanel flake input 2025-09-25 20:11:27 +05:30
tux
ba3adc4989 chore: add bigblue-terminal nerd font 2025-09-25 19:32:15 +05:30
tux
6b592db797 chore: update tpanel flake input 2025-09-24 17:52:19 +05:30
tux
7ce463a1b9 feat: migrate tpanel to ags v3 2025-09-24 16:42:10 +05:30
tux
333e87796e chore: correct typo 2025-09-23 15:57:23 +05:30
tux
386ecf0b24 refactor(qt): consolidate qt configuration options 2025-09-23 15:51:20 +05:30
tux
f74b3c6d3c refactor(hyprland): improve floating window rules 2025-09-23 15:50:40 +05:30
tux
bc8618512d feat(hyprland): setup window rules for kde connect 2025-09-23 15:48:19 +05:30
tux
ccbbcbde46 feat(hyprland): launch kde connect on startup 2025-09-23 14:33:03 +05:30
tux
f899f921e0 feat: add kdeconnect to persist dir 2025-09-23 14:32:46 +05:30
tux
1a8e7a2b27 feat: enable firmware update and filesystem trim 2025-09-23 13:56:25 +05:30
tux
91b2810464 feat: add optimisations 2025-09-23 13:55:24 +05:30
tux
f89d27db2e chore: update sha256 hash 2025-09-23 13:36:48 +05:30
tux
6b44e284b0 feat(hyprland): replace swaybg with hyprpaper 2025-09-23 13:36:38 +05:30
tux
da69c4b543 doc: update components 2025-09-22 19:00:32 +05:30
tux
88e4d73968 feat(hyprland): add hyprlock configuration 2025-09-22 18:38:07 +05:30
tux
3c330385d7 feat: add zed editor 2025-09-22 14:21:24 +05:30
tux
04663412b0 feat(boot): increase boot entry limit 2025-09-22 13:08:14 +05:30
tux
b06c8e48bc chore: change wallpaper 2025-09-21 23:37:29 +05:30
33 changed files with 474 additions and 222 deletions

View File

@@ -4,7 +4,7 @@ keys:
- &hosts - &hosts
- &sirius age1f860dfewlx5jtt9ejr47gywx70p3dmyc8mat29gpr75psljwjv8q5xyxkq - &sirius age1f860dfewlx5jtt9ejr47gywx70p3dmyc8mat29gpr75psljwjv8q5xyxkq
- &canopus age1udt3cssu7ahdrhsvckt8450rswrr6mknn36xpq74dkfp9lpajvnq84kdzj - &canopus age1x36yr8h993srfj29sfpzt4wyz52nztvncpmhgmfs0j26qvfecq3qvcm0an
- &homelab age1jg642q775gmnmxeu29gcf3lph8vem4xr8t84cxe809dpd0myrussh49h60 - &homelab age1jg642q775gmnmxeu29gcf3lph8vem4xr8t84cxe809dpd0myrussh49h60
- &arcturus age1zsl5d4vj6gl3h96y5p53sq5y4vr4vtlwp727h7rp9a4xfkxm53lqrh6r50 - &arcturus age1zsl5d4vj6gl3h96y5p53sq5y4vr4vtlwp727h7rp9a4xfkxm53lqrh6r50
- &alpha age1zujp5gxy7suv8ysnygv43cmzuvv36nxfg0ch7r3xg2emc6fz3vmqqujheq - &alpha age1zujp5gxy7suv8ysnygv43cmzuvv36nxfg0ch7r3xg2emc6fz3vmqqujheq

View File

@@ -71,16 +71,30 @@ reboot
| DM | ly | ly | | DM | ly | ly |
| WM/DE | Hyprland | AwesomeWM | | WM/DE | Hyprland | AwesomeWM |
| Compositor | Hyprland | Picom (Jonaburg) | | Compositor | Hyprland | Picom (Jonaburg) |
| Bar | Astal | Wibar | | Bar | tPanel | Wibar |
| Hotkeys | Hyprland | Awful | | Hotkeys | Hyprland | Awful |
| Launcher | Astal | Rofi | | Launcher | tPanel | Rofi |
| Notifications | Astal | Naughty | | Notifications | tPanel | Naughty |
| Terminal | Ghostty | Wezterm | | Terminal | Wezterm | Wezterm |
| Editor | Neovim | Neovim | | Editor | Neovim | Neovim |
## Showcase ## Showcase
### Desktop ### Desktop Hyprland
![Desktop](https://raw.githubusercontent.com/tuxdotrs/nix-config/refs/heads/main/assets/hyprland/desktop.png)
### tPanel
![tPanel](https://raw.githubusercontent.com/tuxdotrs/nix-config/refs/heads/main/assets/hyprland/tPanel.png)
### Workflow
![Workflow](https://raw.githubusercontent.com/tuxdotrs/nix-config/refs/heads/main/assets/hyprland/workflow.png)
## Showcase
### Desktop AwesomeWM
![2024-08-08_18-33](https://github.com/user-attachments/assets/1cdcc387-0f68-486c-a76c-a36ad2acb78d) ![2024-08-08_18-33](https://github.com/user-attachments/assets/1cdcc387-0f68-486c-a76c-a36ad2acb78d)

View File

Before

Width:  |  Height:  |  Size: 3.2 MiB

After

Width:  |  Height:  |  Size: 3.2 MiB

View File

Before

Width:  |  Height:  |  Size: 2.6 MiB

After

Width:  |  Height:  |  Size: 2.6 MiB

View File

Before

Width:  |  Height:  |  Size: 439 KiB

After

Width:  |  Height:  |  Size: 439 KiB

View File

Before

Width:  |  Height:  |  Size: 487 KiB

After

Width:  |  Height:  |  Size: 487 KiB

View File

Before

Width:  |  Height:  |  Size: 559 KiB

After

Width:  |  Height:  |  Size: 559 KiB

View File

Before

Width:  |  Height:  |  Size: 574 KiB

After

Width:  |  Height:  |  Size: 574 KiB

View File

Before

Width:  |  Height:  |  Size: 645 KiB

After

Width:  |  Height:  |  Size: 645 KiB

BIN
assets/hyprland/desktop.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

BIN
assets/hyprland/tPanel.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 642 KiB

46
flake.lock generated
View File

@@ -9,11 +9,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1744557573, "lastModified": 1758577685,
"narHash": "sha256-XAyj0iDuI51BytJ1PwN53uLpzTDdznPDQFG4RwihlTQ=", "narHash": "sha256-iHT0kvsQJG+Z89quGi7rNCXEg2e3DBGfuuCMu/UwiIo=",
"owner": "aylur", "owner": "aylur",
"repo": "ags", "repo": "ags",
"rev": "3ed9737bdbc8fc7a7c7ceef2165c9109f336bff6", "rev": "aa7a8a2dd6e54aaeb4e13a73ed3bc2283995090b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -64,32 +64,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1742571008, "lastModified": 1756474652,
"narHash": "sha256-5WgfJAeBpxiKbTR/gJvxrGYfqQRge5aUDcGKmU1YZ1Q=", "narHash": "sha256-iiBU6itpEqE0spXeNJ3uJTfioSyKYjt5bNepykpDXTE=",
"owner": "aylur", "owner": "aylur",
"repo": "astal", "repo": "astal",
"rev": "dc0e5d37abe9424c53dcbd2506a4886ffee6296e", "rev": "20bd8318e4136fbd3d4eb2d64dbabc3acbc915dd",
"type": "github"
},
"original": {
"owner": "aylur",
"repo": "astal",
"type": "github"
}
},
"astal_2": {
"inputs": {
"nixpkgs": [
"tpanel",
"nixpkgs"
]
},
"locked": {
"lastModified": 1748416910,
"narHash": "sha256-FEQcs58HL8Fe4i7XlqVEUwthjxwvRvgX15gTTfW17sU=",
"owner": "aylur",
"repo": "astal",
"rev": "c1bd89a47c81c66ab5fc6872db5a916c0433fb89",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1621,11 +1600,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1758191570, "lastModified": 1759575396,
"narHash": "sha256-5Icp/k7LFqoyo/UA0pQXREPnLvZhoaGBha4Kv8sv5X8=", "narHash": "sha256-wFybL+I7KyCsb8g9PvJVmLAiIgFocCbYcH0z4B4V/JM=",
"owner": "tuxdotrs", "owner": "tuxdotrs",
"repo": "tnvim", "repo": "tnvim",
"rev": "f3fc87a1412590563d50bbedd35ff4f0bc5a4b1f", "rev": "13801bd8608abc9903fadcc240b143007d51dc32",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1637,17 +1616,16 @@
"tpanel": { "tpanel": {
"inputs": { "inputs": {
"ags": "ags", "ags": "ags",
"astal": "astal_2",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1754642875, "lastModified": 1759787748,
"narHash": "sha256-BdLzQs/SAgHOjTWYkT7slWJA/cHyRkkbJMsao8MjKGY=", "narHash": "sha256-88M9+hiXY+C+C9xVLOWcRw1lbuv9bogltFQpYDnHDGo=",
"owner": "tuxdotrs", "owner": "tuxdotrs",
"repo": "tpanel", "repo": "tpanel",
"rev": "6437cad6202b9398babc1dab8b74bc6217d35b7f", "rev": "98203af3e4a034501f0f8dfa7218cfe8a0371e4f",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -142,7 +142,7 @@
loader = { loader = {
systemd-boot = { systemd-boot = {
enable = true; enable = true;
configurationLimit = 5; configurationLimit = 10;
}; };
efi.canTouchEfiVariables = true; efi.canTouchEfiVariables = true;
timeout = 1; timeout = 1;
@@ -200,6 +200,8 @@
}; };
services = { services = {
fwupd.enable = true;
fstrim.enable = true;
resolved.enable = true; resolved.enable = true;
flatpak.enable = true; flatpak.enable = true;
@@ -242,6 +244,7 @@
}; };
libinput.touchpad.naturalScrolling = true; libinput.touchpad.naturalScrolling = true;
libinput.mouse.accelProfile = "flat";
# To use Auto-cpufreq we need to # To use Auto-cpufreq we need to
# disable TLP because it's enabled by nixos-hardware # disable TLP because it's enabled by nixos-hardware
@@ -288,26 +291,31 @@
enableUserService = true; enableUserService = true;
asusdConfig.text = '' asusdConfig.text = ''
( (
charge_control_end_threshold: 100, charge_control_end_threshold: 80,
panel_od: false,
mini_led_mode: false,
disable_nvidia_powerd_on_battery: true, disable_nvidia_powerd_on_battery: true,
ac_command: "", ac_command: "",
bat_command: "", bat_command: "",
platform_policy_on_battery: Quiet,
platform_policy_on_ac: Quiet, platform_profile_linked_epp: true,
ppt_pl1_spl: None, platform_profile_on_battery: Quiet,
ppt_pl2_sppt: None, platform_profile_on_ac: Performance,
ppt_fppt: None,
ppt_apu_sppt: None, change_platform_profile_on_battery: true,
ppt_platform_sppt: None, change_platform_profile_on_ac: true,
nv_dynamic_boost: None,
nv_temp_target: None, profile_quiet_epp: Power,
profile_balanced_epp: BalancePower,
profile_custom_epp: Performance,
profile_performance_epp: Performance,
ac_profile_tunings: {},
dc_profile_tunings: {},
armoury_settings: {},
) )
''; '';
profileConfig.text = '' profileConfig.text = ''
( (
active_profile: Balanced, active_profile: Quiet,
) )
''; '';
fanCurvesConfig.text = '' fanCurvesConfig.text = ''
@@ -318,13 +326,13 @@
fan: CPU, fan: CPU,
pwm: (2, 22, 45, 68, 91, 153, 153, 153), pwm: (2, 22, 45, 68, 91, 153, 153, 153),
temp: (55, 62, 66, 70, 74, 78, 78, 78), temp: (55, 62, 66, 70, 74, 78, 78, 78),
enabled: true, enabled: false,
), ),
( (
fan: GPU, fan: GPU,
pwm: (2, 25, 48, 71, 94, 165, 165, 165) pwm: (2, 25, 48, 71, 94, 165, 165, 165),
temp: (55, 62, 66, 70, 74, 78, 78, 78), temp: (55, 62, 66, 70, 74, 78, 78, 78),
enabled: true, enabled: false,
), ),
], ],
performance: [ performance: [
@@ -332,19 +340,19 @@
fan: CPU, fan: CPU,
pwm: (35, 68, 79, 91, 114, 175, 175, 175), pwm: (35, 68, 79, 91, 114, 175, 175, 175),
temp: (58, 62, 66, 70, 74, 78, 78, 78), temp: (58, 62, 66, 70, 74, 78, 78, 78),
enabled: true, enabled: false,
), ),
( (
fan: GPU, fan: GPU,
pwm: (35, 71, 84, 94, 119, 188, 188, 188), pwm: (35, 71, 84, 94, 119, 188, 188, 188),
temp: (58, 62, 66, 70, 74, 78, 78, 78), temp: (58, 62, 66, 70, 74, 78, 78, 78),
enabled: true, enabled: false,
), ),
], ],
quiet: [ quiet: [
( (
fan: CPU, fan: CPU,
pwm: (2, 12, 25, 35, 48, 61, 84, 90), pwm: (2, 12, 22, 35, 45, 58, 79, 79),
temp: (55, 62, 66, 70, 74, 78, 82, 82), temp: (55, 62, 66, 70, 74, 78, 82, 82),
enabled: true, enabled: true,
), ),
@@ -378,6 +386,7 @@
fonts.packages = with pkgs.nerd-fonts; [ fonts.packages = with pkgs.nerd-fonts; [
fira-code fira-code
jetbrains-mono jetbrains-mono
bigblue-terminal
]; ];
programs.fuse.userAllowOther = true; programs.fuse.userAllowOther = true;
@@ -391,6 +400,7 @@
"/var/lib/nixos" "/var/lib/nixos"
"/var/lib/docker" "/var/lib/docker"
"/var/lib/waydroid" "/var/lib/waydroid"
"/var/lib/iwd"
"/etc/NetworkManager/system-connections" "/etc/NetworkManager/system-connections"
]; ];
files = [ files = [

View File

@@ -7,13 +7,25 @@
partitions = { partitions = {
# EFI Partition # EFI Partition
ESP = { ESP = {
size = "512M"; size = "1G";
type = "EF00"; type = "EF00";
content = { content = {
type = "filesystem"; type = "filesystem";
format = "vfat"; format = "vfat";
mountpoint = "/boot"; mountpoint = "/boot";
mountOptions = ["defaults" "umask=0077"]; mountOptions = [
"defaults"
"umask=0077"
];
};
};
# Swap Partition
swap = {
size = "32G";
content = {
type = "swap";
discardPolicy = "both";
resumeDevice = true; # Enable hibernation
}; };
}; };
# Btrfs Root Partition # Btrfs Root Partition
@@ -24,11 +36,19 @@
type = "btrfs"; type = "btrfs";
subvolumes = { subvolumes = {
"/root" = { "/root" = {
mountOptions = ["compress=zstd"]; # Compression for better performance mountOptions = [
"compress=zstd"
"noatime"
"space_cache=v2"
]; # Compression for better performance
mountpoint = "/"; # Root subvolume mountpoint = "/"; # Root subvolume
}; };
"/persist" = { "/persist" = {
mountOptions = ["compress=zstd"]; # Compression for persistent data mountOptions = [
"compress=zstd"
"noatime"
"space_cache=v2"
]; # Compression for persistent data
mountpoint = "/persist"; # Persistent subvolume mountpoint = "/persist"; # Persistent subvolume
}; };
"/nix" = { "/nix" = {
@@ -36,6 +56,7 @@
"compress=zstd" "compress=zstd"
"noatime" "noatime"
"noacl" "noacl"
"space_cache=v2"
]; # Optimize for Nix store ]; # Optimize for Nix store
mountpoint = "/nix"; # Nix subvolume mountpoint = "/nix"; # Nix subvolume
}; };

View File

@@ -15,6 +15,7 @@
../../modules/home/firefox ../../modules/home/firefox
../../modules/home/brave ../../modules/home/brave
../../modules/home/vs-code ../../modules/home/vs-code
../../modules/home/zed
../../modules/home/mopidy ../../modules/home/mopidy
../../modules/home/thunderbird ../../modules/home/thunderbird
../../modules/home/easyeffects ../../modules/home/easyeffects
@@ -29,10 +30,14 @@
name = "Bibata-Modern-Ice"; name = "Bibata-Modern-Ice";
}; };
qt.enable = true; qt = {
qt.platformTheme.name = "gtk"; enable = true;
qt.style.name = "adwaita-dark"; platformTheme.name = "gtk";
qt.style.package = pkgs.adwaita-qt; style = {
name = "adwaita-dark";
package = pkgs.adwaita-qt;
};
};
gtk = { gtk = {
enable = true; enable = true;
@@ -72,6 +77,8 @@
vlc vlc
tor-browser tor-browser
distrobox distrobox
bluetui
impala
]; ];
home.persistence."/persist/home/${username}" = { home.persistence."/persist/home/${username}" = {
@@ -98,6 +105,7 @@
".config/sops" ".config/sops"
".config/obs-studio" ".config/obs-studio"
".config/rustdesk" ".config/rustdesk"
".config/kdeconnect"
".local/share/nvim" ".local/share/nvim"
".local/share/opencode" ".local/share/opencode"
".local/share/zsh" ".local/share/zsh"

View File

@@ -1,27 +1,27 @@
hyperbolic_api_key: ENC[AES256_GCM,data:FjDSbdutLa9hnVGRR+k2MznVfDGAx1/rNfjY/vaBuvKoBRj7aHqGpQ1cvhfxjyLMqPLqLnmimEtZeykvgkIIjKGzw5PewE23+lrN3oQyoYJvK+b8PRStjSaxOfzOnuLXi+YVnsU939nStLwnmSYKDabNWgFcWYsHwtHDafuWyovM9sVwasTn,iv:bxseG6GLKBL/CJOS8SrhgiLEyvMGSNQIMJSYLk2MqEo=,tag:4wxmkUwlcu23d7pMHbvIoQ==,type:str] hyperbolic_api_key: ENC[AES256_GCM,data:WGvF0PPbMd7zWiO8GfmgluV7dW+ZpzLMO31uI5xo+nekvTBkXiAuHFDK/SXKEUFDMEboNkA/a6JUNsCRhuA4N7qhIZgyQ2bc1iafsj7c4F4X/py63Z4bMx8+byScOSoW+RKAvSFOLDGXQ4s9dKc3XNW7G15QyzTRYUFDbXxsSQ6n6DMJk4jr,iv:o+Shbpl3tXmefpdQB5sod3bNQHHsBnEEP0Bk3C1H5Yo=,tag:fi+7K3nAjVoavqy2Mt8W3Q==,type:str]
gemini_api_key: ENC[AES256_GCM,data:HiseQDB9nJBynCvdqLx0NcJZHB71uEvBlA3l/Lw2EMHFUXSHqPoS,iv:4C5EGUdfwxhT6ExDYNcbc+MFE+rGvLRsZjbo9L/o/Eo=,tag:hvaODOzhFoywgsXZSQKeKA==,type:str] gemini_api_key: ENC[AES256_GCM,data:ToQn6NiBpebcSPIHbnAyTJm092Xv24pb7Q09hW/Qb0qZC0ORJGG5,iv:/VIw5hTKlZLaWYdEyaEvIv/ZPTBhq5OkguPL6wFs8A8=,tag:44tNJTBeHYW1ug+z+yKTrw==,type:str]
open_router_api_key: ENC[AES256_GCM,data:DMQojeQymXckIHj7O+CIucvMzhyLXEYt4VJNkpbJj8OnBlXlm46m75i2IL+SduzzOfH3GdGI8/5JcnXbt76M/2DFemYi6CcgrQ==,iv:OBTREDwI+aOXg5TNdU6rVilQnAngn0vuW2nIrGGozm4=,tag:P+2C+0IfjZqKBD/B+FR09Q==,type:str] open_router_api_key: ENC[AES256_GCM,data:QLXIEqsUe8HQobJMvqh8fZi7azXjnz7B524kDPWB8Dk5tAv6EVvM0KHAa6aTGmeMB8LJiUPcLmPU0ifU07s2OyB3Q9w+IFvlfQ==,iv:pBr8SJG8FHP1oYrXrHG0gRMPfdXXoBNPGcYEXF3IJGg=,tag:Yf2FuncT3/9pcBIEN+irGQ==,type:str]
sops: sops:
age: age:
- recipient: age14vktfes95f33vuefwnmuvryas7az04u76dsgyhfvsx73czkvmp2q7njkl4 - recipient: age14vktfes95f33vuefwnmuvryas7az04u76dsgyhfvsx73czkvmp2q7njkl4
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwUnhkNzR0TnNzL29xV3cv YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwZ1V0UE0vT3FoZDhKYXBi
R3lqYUtVWWlNOVFTZHhTMWJZL1ZJUDIxaG0wCnIvQnkxSWJxWTZYVEkvS1ZWSEhk ODRvNGRmZzZQY2t0VDNYTzgzUW5TMlFRQzBnCm9sZEJ1WmY0QU1KR1AwS3R0NXlh
YmhuK2JtS3lmUjV6MW50SGZrTnpkeDAKLS0tIDkvbk5abnhkNlA0dmgwV0Z0L1BS cHhYNjA2TWM3Z1JZM2E1UHluNzdBYXcKLS0tIFRwQm10VlJEUVFyemRGYXpUNHhq
UUduZUV3OGcvaFdBOFFsc0xzVCtQcUUKrmZvR2onMD0snqPw8okxaK6Tz5sA/cmR eWNJdzc2dlNlR1N1THAzSVlDNEZZMUUK7kacPvAuwbl0hggMuKJS/hjy0j+i1Oeh
1ZczgwLslJA7kwGKYOslUGA7aGB4jyP+M74wBAVa71BqWatypp0RfA== tw7bdZ6do30sf9uY8TWDCeOiK1uOJGATLcDd14VhHl968By8n/5pDw==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age1udt3cssu7ahdrhsvckt8450rswrr6mknn36xpq74dkfp9lpajvnq84kdzj - recipient: age1x36yr8h993srfj29sfpzt4wyz52nztvncpmhgmfs0j26qvfecq3qvcm0an
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBEOE0xbDN0UmdVdE1DR1lo YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSByZk42NzVUMXV0ZDVWR3Q2
dmNudDk2TjNQdHFGc0lJTSt0dVVRU3BPRlg0ClV1ZUdxRVNpSmhYQm80QjdhdFc5 N3NUN1B3blNZS1lKbEU1VmhaTDVOMmFESm1FCi9VeEFXVkRjUnFxYUxERUg0ODY4
SVI4bi93WDBDWHQvejJIV21Bc2NsMjgKLS0tIEduZ2hHSnI3UXlGU2ZFZkpTRDJo eFhFMXhOek1wWTRwOEd6Zk82Sm9VM0UKLS0tIGVBMHpQSWJzMVUxU09XeS8yVXFW
K0tiZ0swMmpuVW02OHMrRThlOXBWUjQKYHyJZuvQABh+gJ+THQ5SakVEqsKkyBMb UVM3a1VIMWZGRGNxaUNwbStKekd4N28KvouH73cSd9xMUzDX3ib5tsR8deXGaGTB
k6KnjRATpdZlmm0GjbD4aasF/j/V2fuH327Z72jPWQuI1y5ZfbDhSg== N36MxnZcv9AhX7YErc18OkUv+lHZf2MoJ+x5+XOMCjhlUOlvqcBrAg==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2025-09-18T10:09:49Z" lastmodified: "2025-10-10T10:15:15Z"
mac: ENC[AES256_GCM,data:EWSA3CNDLUiY9ClcvadRNREanBnZ7DMDcPG0cXFaoHQ+YwK0o0lTX6g03CqEoanApWMWHljV7Yc44n1+KIMCHok+3KmjesmpmhvVVJqEO5fiqqtKR2OAaqIWZ2u7yvHdIvajoI5xaE7CTOHStf5dZHuIoWQYGx9Qxu0PycL7E/0=,iv:c8wQtWbUM7mLmh8OwZYsm8ZnubSEYMrXhf9IQDhgIkk=,tag:nOY16LFcbVB1CpTyMpU8AQ==,type:str] mac: ENC[AES256_GCM,data:ZkWoHKbfC9xqShgOy3KCDPzziQq6hHc6h/o+3MGd31juW2OLlkk4skyxF/u5Eoq6hAeMU27mKu3TnyvCQA3gv1trP5CObs5Cc/Rp8odN+B6549Ec5ljojQbmwwsTti3vo6CbbZXjBZyy6WzJqKWm6yotzp3AFC0CMe+GhsmKY30=,iv:JWWwy5mYdLOHQQ0f2mtRiAkG1LF0ckIe8ndrZfXuZ7Y=,tag:b3DCwgBBBmcJAEnL2qOH5g==,type:str]
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted
version: 3.10.2 version: 3.10.2

View File

@@ -1,79 +1,79 @@
tux-password: ENC[AES256_GCM,data:ysw9mJef/l7WdXP9cCSM88GX019UMr8od80rSwZBftN8tWDGPe0/mdRmePXxaEY9yEXhvRON/4IaFIPVQ3VnbExcGrnbV5+u9A==,iv:P+BnLLJs7ePJvsBHgsaISvjy33KtLFQENS+YB2eroGI=,tag:D4dTQXzmBkeCkdFu2Ozlcg==,type:str] tux-password: ENC[AES256_GCM,data:68ZXKJMBBLV1mkNP9LFf+xC5arsARqKPFQAtmfag3ftip1suuZ1FmQICqsuCqXgGuwcSfH4ACkuiQ769u4aI7+jPxs0A62hFig==,iv:Yx9EfqChjBtgxxkWmayfKWoE498w4wUYoS353cMUMsI=,tag:Zr3KuIiXsi2VahRZ7Ncpig==,type:str]
sops: sops:
age: age:
- recipient: age14vktfes95f33vuefwnmuvryas7az04u76dsgyhfvsx73czkvmp2q7njkl4 - recipient: age14vktfes95f33vuefwnmuvryas7az04u76dsgyhfvsx73czkvmp2q7njkl4
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSByVkUyUU8wbXNqY0JVb2RD YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWblJrWjErZC81d1IzTHV6
N3NiNXJ3Tzc0bjU2QnJrbDcxTDVQeUJUYVhFCnNud3lXWmh5azByaEk0dkIyT1dP ZUkwTEhRdVdTTlJQb1pocnpnSkdZSWNTelVFCkJLR3VwT2dwM3IydCtkZ24yLzVF
V0NKMzlpdTZaM2JpTyt4L1V1M2l1MGsKLS0tIDlzbjVHNUw4ci9mZ0tBaVhSNjJS ei9xMG51djNldnZkSnVqeEtsVFNSMkEKLS0tIGNEdi9OV0ZjVW93SUUyVURpT2tR
MFdDa3hHMTlmU05TN2UxY3dhdGVFdU0KQ+hjPwBpv8g3x/N+Yd4kwUtiIxXDcZRx U3ZybTNac1JvVW9zTy9ocE5FUkpQTjAK2lAp5MC3B779uSWaOOxbnfdAa9xYDCL2
EFjLnDiOA5gkZqXCo05E1lXJN17wU59pYs1+1pfBYbGKc2oV+3oquw== TloXlxfuYKe0j9Z2TIlYOa6z+/m8upOpE42Ux0qjZprE1LBq3g5uMA==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age1f860dfewlx5jtt9ejr47gywx70p3dmyc8mat29gpr75psljwjv8q5xyxkq - recipient: age1f860dfewlx5jtt9ejr47gywx70p3dmyc8mat29gpr75psljwjv8q5xyxkq
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqM1Z4MlNwY1VxdXF6RG1P YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBoZGdNSG5ER0JxbWhNanJU
cWQ0S0hMOWh0aUUrdVF5VDVWZVNDYi82NERjCmZFSEdyNXNLMXBHeUp4NUNpZnp4 WGlCZlIyT3JLWnFkSnBaakkyMXZBU0o0cjFVCml5VDB2d2dJTGkvVDh5M1NweXl1
UEVWZEJhZC9YSzgzb1VVMDNsdUk2K00KLS0tIGpqaS92NmJzVXRRb09SSGhJYTlE ajl3R2RUWmtwWU5RUlpsVFIvM3R0cUUKLS0tIFNkbmtrRGdrcUFibDlldncrbjg2
ZmpXd09Eam5EN1ExZFdYVXUxUEp5S0UKWZG87YOWIZR/eIFRjyZt4Jf8St+NEk/L TWJ1UFh5RnI2VDRocnZ0VVNmd2JRSVEKmqNV4dADO9ZxTjlDgMC5fNdioJrO6vrN
obwyOlDnRJ9wI30g9VXMoYTUdZcebY6t6tmRvIKL4pbadua2JXwamg== vTg3lTrwOTZ/TCg9PS2T5QEX9fZh2UthCEisPO7p1Q81Gyk7ySg2ow==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age1udt3cssu7ahdrhsvckt8450rswrr6mknn36xpq74dkfp9lpajvnq84kdzj - recipient: age1x36yr8h993srfj29sfpzt4wyz52nztvncpmhgmfs0j26qvfecq3qvcm0an
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQelFwUGIzc1RuVFpGYzd6 YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYZWRuaHIvT3BSZ2M0OUla
cjZOM3FGUDlPVTVuRkxqalEwamhlVjNFdVVBCjBiWFN0RVArYWNoL2ZuYXhSN0Y0 YWhSa2Q5SDJNbkRLQUZxaVFISmJENTIxc0hrCjlKTVBCK2g2WWNNNlNJQ25sMjVY
eTFEWFdYUFJVWU53cmNURS9jNEJTSDgKLS0tIHd3SFlISGdVSTBJSmd3UUp0VVBE TURsSkNsbTQwRGlyU3NySis5azNvTVUKLS0tIGZHUEh3NHMyVXN5T0pXOWpOT1JP
MCt6ZnMzRDNEK3I3ZXFucjRXRDJ3Wm8KltIXRrGVkr3AOvQ44/nlsqmGW6s/hlHF UmZSM1J0elprbVBUZzU5QjVLRnVxNWsKFVdUQcKiHaSDR2+GqafXvoRQ0yyiKMcy
84elOBidwgb95RIhetUppD6jUJz2p0GHIsIvEc9AuZRbPkntmVjHkA== /UP/yCMoNUYIpiv4ocRhtDj4QrrO6NdJJTUifMkB9I1B6R7B7NG/gw==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age1jg642q775gmnmxeu29gcf3lph8vem4xr8t84cxe809dpd0myrussh49h60 - recipient: age1jg642q775gmnmxeu29gcf3lph8vem4xr8t84cxe809dpd0myrussh49h60
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxQXR2QVJCSk92WGF1dGxK YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBNeEpwakIyMkRYN1c0bUNy
K0o3V3dPTS9ZZHBDUEcrVWxKMzZpem5uL0VFCnB2c2hIcmxQTWdmTHhnVFhLQXhT eDFpUGlkTW02NWE1VlYxYnNsQTJ1NHIyWVY4ClI3VHlSWW1IK3I3SHY5YXN5S09q
b3V4Y01JSUdYMThqNy8zVEI4QXc3SmcKLS0tIDBuekhnaWRGUVF4a0tseUQxZW55 OU5aSXVXU0FVU1VrNGlCTzFKWm95ZkkKLS0tIGV0Sy9LYlBuTm4xa2Zkc3JoaWo0
L1VsWHljZ3VaMjNkbHhhYlVTU0dTL1UKXe4osbjCyMzBuJoD8bnhnAJSmaeOmtpr ZXllYnMwaXBXTW5vVVhoNXVFcEwvdlEKbuiT2/Isi3nsx/r3whpX6RiLEtsLMm6f
Gee9MSubfgxXKN+GNOjMF0DBB3SDlJTXjF7LpqqkiSbg0Jy4W6b+mA== 2A3bKpz1+MUupE6umEIBCXc+k58W6VhBkdrMxGtxZt1ZeA8ftz4bVA==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age1zsl5d4vj6gl3h96y5p53sq5y4vr4vtlwp727h7rp9a4xfkxm53lqrh6r50 - recipient: age1zsl5d4vj6gl3h96y5p53sq5y4vr4vtlwp727h7rp9a4xfkxm53lqrh6r50
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBmT3hudFJ5QTVLbHh1Zjg3 YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnbFUwbXoyUnZGMElMdldX
elA1VEw4TzdhNTJqSVk3MWdwUnhUZ0V3ZmgwCkdOKzJ4RlVuR1VJL0NhbTc0SnZY UkJseC9XWEU3Vks2eGdYbHFjUjZMUVVGbkY0ClNIWFMvWEl1eDRncEt1dy9iVS81
MlFrbnhuN1UwYmE2ZlhpWnZVTWc4RncKLS0tIFdLT2k3dWdwQXJlSHQxWWJUd3Yx ZE1rN25lR0w0Wno2OHZDZTRhSTVXVDgKLS0tIG9jNmFkdGxoRmRCT1RJQjVlOUJa
UHJ1aDhWVXprMUcyVHQxTlJEV21MMjQKveI0EjbGWwsBlIzHUIvjrTM5G7ZtulM/ R0kxbllzMXZML1J6MitXSGhSTkF0MEkK8g7s87t956UTDtQO+IUEXe2B6WNM+KfH
AuhqsH3qkDU4L3FdkVR5oG8yaCDbBxLDFhCDnXAGKrGCwOr1KB5hmQ== aRobwCjvXcv5I8G+gkNll23MYlLMBRZ1qkeq24R0xA7cMYXj5APUsA==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age1zujp5gxy7suv8ysnygv43cmzuvv36nxfg0ch7r3xg2emc6fz3vmqqujheq - recipient: age1zujp5gxy7suv8ysnygv43cmzuvv36nxfg0ch7r3xg2emc6fz3vmqqujheq
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkZlhyVVh6K2tvd2ZGODhY YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0bTBEck44R2ZxS0M3Ris1
ODRLbFFiYmlPM3F5L3VwNS9EVGtuSWQ1VHlvCk1GTWlRUk9WVURWOEdBVlVHb1Rw VllxeEgyTjRWcHp3RUdpMytFQ0podkxXT1JrCi9VU2U2SHFrd1dPb3RESkQ4OGhi
c09EYlhFWFZHQmV3MUU5eU1ZYVE2MlEKLS0tIEFMV1FDTnBNMTEvTWREY3VFZjJ6 RjZVVTZWQUVXSUxqaG5KVkJxQ0RCQncKLS0tIDJiVGpIU0NjelVCZkloOGhxQTdV
QVV5U3dvTDFBT2s4bTQ1SXQ4U2RaYnMKs8q7OeaK188bTvVmAia0oF5SnpMOPKTd eHlaVm9iUFk2YThXZnU5SVpHUVVHbkEKcmUvbINRqmkkvXyyskNJ4eYD7VdQnxqg
V31tngEgvmI7MxH9BrgjWneJye91Q/hCED0/aK0AuXIRapWgi1hGlA== 7VuWV7zUK5ZVPv9kJiUl3OB3vNU8U15sNIdAjCp8//RtNkRyDJMgEQ==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age1ydkclhk9kwqdq74utesqdfupt43lz64d5k65gz2z9uyljcqq9fcq3hv28l - recipient: age1ydkclhk9kwqdq74utesqdfupt43lz64d5k65gz2z9uyljcqq9fcq3hv28l
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBESVVPNGpGYnB0aFAzYnF3 YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjVjU1Vy9tMkp5MS96Si9v
aUhkZkI1a2dWd2txSm9aWnpOKzBPdzg0VGdzCkJkeDJlZDdSZUVGTHVwQ2M2UjBj bnB4OHpzdktPeStYZHFZTXVmSWphMkxFQkRZCjEvTEpZY1I4TWNlM0c4Wi9nUVhx
MjRnM2lNMWNVNFF1bTA0NGI3SGNPdFUKLS0tIGV6UkRQUWFYWjBrMzhhTmd4QlBV dktvOXdXQ0M1YzhVU3BlOUZ4Tjkrd28KLS0tIC9NT0NKZTd0VUVUQTB6UHhDSVVw
RTkvRVBSeUFUVXpyVHhHTFpZNzR3NlkKOksXAReInUnFJPuFsfu08MRQoA5J0j/H eFM1Q1JOVXZoSXltRVZpaTNTUWhNa3MKFoY5bWWQS9qh0j8sgIgRA4jT6sl0xRkC
3cUt2jBIheWXBtg1Plz9UcXdjPaUEROadFcRveiGBaBEVz0LyBs8WA== Tu0WUz344TzkJFuy7MgOpviQMqAijmbyYjaRSdS3CLGHvTKY8GcpOA==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age1y4luzn2jls7rvgphej23srvdlx563lxq29tvf66vhwwzaf7c3f3qzvresh - recipient: age1y4luzn2jls7rvgphej23srvdlx563lxq29tvf66vhwwzaf7c3f3qzvresh
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0UVY1a1JFRTBZalRDeFll YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSYlpXRGNpQVZTQ3hZK2lr
aHVNTnQ0MEtpN0pObnhaMlYwaXp2b2tKM2gwCmIrL2dzb0xGR0NCZzFIL0o2SS8w L2xodmhycTlRczN1c2Zib3RoeGlxQTAwTVRRCkJ1aWc3bzAyNnlMbUhuK2YwTXBq
YnE2OE9rZFFWakgrYkNVcFpjUXJpbXMKLS0tIE9rZEoxNjdJbG9adVAydk1DVnhK Q1VhUUtWWXU0RXY2NG5jMG90dis4bEUKLS0tIHlkRkdCV0ZvU2pLZDRlN2h6c0JO
WGhPaC96dk9qUzNxT1hadTZZSGZKQ28KiNhLhLaUSTVltWzyYHWLk6M8M3lxgvHj TTNtbGY1UWV5K3VQWjk5WlgyNUd1UVkK+XeX8vK4K2DJaWtFE91YGg/58M09rwuj
rPgFNVEcpVKN9f2v4N+XJipDaVgnP1YwwIlT0XSRQNrGWcO2JL6nmg== VVcMIPPPO1+KD16HTe1b8bVPeNfpIj9p3ybew3ILducyrYiRrxzGwg==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2025-07-09T22:50:12Z" lastmodified: "2025-10-10T10:14:47Z"
mac: ENC[AES256_GCM,data:xf2fW1ajcrAx/oPwYvZmNKNJ6yHF/v3aVt3bIyENyfmB90yPDhHiw9twj7MYy1hVJyKE1Iy+1bmEgERBwaum2sROvzpCzuKbB8avJfBfeqpwBPob2yRdoAKFN29xgiJVJjtw2zKFf8NzMnv9Y5sLxgnhq5VB7aCavZ9+o0603kI=,iv:8aS9jVOm4rZpU/JTi9uUKoEfvo44Zhy43e6/GsIM7CE=,tag:D9I31EQwI6bCAN3tU4jGJg==,type:str] mac: ENC[AES256_GCM,data:fmBWLOOCvJLfKSNG14zd9cBEa9+M4dJ7UtR+SZfGEcoGtBPmX1c6ZR8OgB+I45WkpT+Ho8kwQMcnD0n6IWzg946OEzIZjNuCds/wM1cCd3LjjlqwKnN1QGL5DNSIyi5CFzrjvvFtZCsw2acNjxtK86JujhpOivdVKC/kGkJzF0M=,iv:g0jXzrtU53YpW/NIb8ulmOGSJIXMA1Wady6DlOMA9aU=,tag:zf7WmNNYcFO9Rtynm5vaUg==,type:str]
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted
version: 3.10.2 version: 3.10.2

View File

@@ -91,7 +91,7 @@
loader = { loader = {
systemd-boot = { systemd-boot = {
enable = true; enable = true;
configurationLimit = 5; configurationLimit = 10;
}; };
efi.canTouchEfiVariables = true; efi.canTouchEfiVariables = true;
timeout = 1; timeout = 1;
@@ -114,6 +114,9 @@
}; };
services = { services = {
fwupd.enable = true;
fstrim.enable = true;
tailscale = { tailscale = {
enable = true; enable = true;
extraUpFlags = ["--login-server https://hs.tux.rs"]; extraUpFlags = ["--login-server https://hs.tux.rs"];

View File

@@ -65,6 +65,7 @@
}; };
libinput.touchpad.naturalScrolling = true; libinput.touchpad.naturalScrolling = true;
libinput.mouse.accelProfile = "flat";
blueman.enable = true; blueman.enable = true;

View File

@@ -9,13 +9,22 @@
gc = { gc = {
automatic = true; automatic = true;
options = "--delete-older-than 3d"; dates = "weekly";
options = "--delete-older-than 7d";
};
optimise = {
automatic = true;
dates = ["weekly"];
}; };
channel.enable = false; channel.enable = false;
settings = { settings = {
extra-platforms = ["aarch64-linux" "arm-linux"]; extra-platforms = [
"aarch64-linux"
"arm-linux"
];
auto-optimise-store = true; auto-optimise-store = true;
allowed-users = ["${username}"]; allowed-users = ["${username}"];
trusted-users = ["${username}"]; trusted-users = ["${username}"];

View File

@@ -1,5 +1,10 @@
{pkgs, ...}: { {pkgs, ...}: {
home.packages = with pkgs; [astal]; imports = [
./hyprlock.nix
./hyprpaper.nix
];
home.packages = with pkgs; [ags];
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
enable = true; enable = true;
@@ -28,7 +33,7 @@
editor = "wezterm -e nvim"; editor = "wezterm -e nvim";
browser = "brave"; browser = "brave";
spotify = "wezterm start --class wezterm-floating -e spotify_player"; spotify = "wezterm start --class wezterm-floating -e spotify_player";
filemanager = "thunar"; filemanager = "wezterm start --class wezterm-floating -e superfile";
in { in {
#-- Output #-- Output
# See https://wiki.hyprland.org/Configuring/Monitors # See https://wiki.hyprland.org/Configuring/Monitors
@@ -36,15 +41,19 @@
#-- Input: Keyboard, Mouse, Touchpad #-- Input: Keyboard, Mouse, Touchpad
input = { input = {
sensitivity = 0; sensitivity = -0.7;
scroll_method = "2 fg"; scroll_method = "2 fg";
natural_scroll = true;
touchpad = { touchpad = {
natural_scroll = true; natural_scroll = true;
clickfinger_behavior = false; clickfinger_behavior = false;
}; };
}; };
device = {
name = "asue1209:00-04f3:319f-touchpad";
sensitivity = 0;
};
#-- General #-- General
# See https://wiki.hyprland.org/Configuring/Variables # See https://wiki.hyprland.org/Configuring/Variables
general = { general = {
@@ -59,6 +68,11 @@
"col.inactive_border" = inactive_border_col; "col.inactive_border" = inactive_border_col;
}; };
misc = {
disable_hyprland_logo = true;
force_default_wallpaper = 1;
};
ecosystem = { ecosystem = {
no_update_news = true; no_update_news = true;
no_donation_nag = true; no_donation_nag = true;
@@ -150,15 +164,17 @@
"float, class:org.pulseaudio.pavucontrol" "float, class:org.pulseaudio.pavucontrol"
"size 800 600, class:org.pulseaudio.pavucontrol" "size 800 600, class:org.pulseaudio.pavucontrol"
"float, class:com.ghostty.floating" # Wezterm and Ghostty floating terminal
"size 1400 1000, class:com.ghostty.floating" "float, class:(com.ghostty.floating|wezterm-floating)"
"size 1200 800, class:(com.ghostty.floating|wezterm-floating)"
"float, class:wezterm-floating"
"size 1400 1000, class:wezterm-floating"
"float, class:GalaxyBudsClient" "float, class:GalaxyBudsClient"
"size 900 700, class:GalaxyBudsClient" "size 900 700, class:GalaxyBudsClient"
# KDE Connect
"float, class:(org.kde.kdeconnect.sms|org.kde.kdeconnect.app)"
"size 900 700, class:(org.kde.kdeconnect.sms|org.kde.kdeconnect.app)"
"workspace 3 silent, class:(firefox|Brave-browser)" "workspace 3 silent, class:(firefox|Brave-browser)"
"workspace 5 silent, class:(discord|org.telegram.desktop)" "workspace 5 silent, class:(discord|org.telegram.desktop)"
]; ];
@@ -177,10 +193,14 @@
}; };
}; };
bindm = [
"SUPER,mouse:273,resizewindow"
"SUPER,mouse:272,movewindow"
];
bind = [ bind = [
# apps # apps
"SUPER, Return, exec, ${terminal}" "SUPER, Return, exec, ${terminal}"
"SUPER, A, exec, astal -t app-launcher"
"SUPER, F, exec, ${filemanager}" "SUPER, F, exec, ${filemanager}"
"SUPER, E, exec, ${editor}" "SUPER, E, exec, ${editor}"
"SUPER, B, exec, ${browser}" "SUPER, B, exec, ${browser}"
@@ -192,20 +212,26 @@
"SUPER_SHIFT, Return, exec, ${floating_terminal}" "SUPER_SHIFT, Return, exec, ${floating_terminal}"
"SUPER_SHIFT, S, exec, flameshot gui" "SUPER_SHIFT, S, exec, flameshot gui"
# astal # tpanel
"SUPER_SHIFT, R, exec, astal -q; ${pkgs.tpanel}/bin/tpanel" "SUPER, A, exec, ags toggle launcher"
"SUPER_SHIFT, B, exec, astal toggle-bar" "SUPER_SHIFT, B, exec, ags toggle bar"
"SUPER_SHIFT, C, exec, ags toggle control-center"
"SUPER_SHIFT, W, exec, ags toggle wallpaper-manager"
"SUPER_SHIFT, R, exec, ags quit; ${pkgs.tpanel}/bin/tpanel"
# hyprland # hyprland
"SUPER, Q, killactive" "SUPER, Q, killactive"
"SUPER, grave, hyprexpo:expo, toggle" "SUPER, grave, hyprexpo:expo, toggle"
"SUPER_SHIFT, Q, forcekillactive" "SUPER_SHIFT, Q, forcekillactive"
"SUPER_SHIFT, F, fullscreen, 0" "SUPER_SHIFT, F, fullscreen, 0"
"SUPER_SHIFT, Space, togglefloating" "SUPER_SHIFT, Space, exec, hyprctl dispatch togglefloating; hyprctl dispatch resizeactive exact 1200 800; hyprctl dispatch centerwindow;"
# shutdown # shutdown
"SUPER_SHIFT, P, exec, poweroff" "SUPER_SHIFT, P, exec, poweroff"
# lock
"SUPER_SHIFT, L, exec, hyprlock"
# change focus # change focus
"SUPER, left, movefocus, l" "SUPER, left, movefocus, l"
"SUPER, right, movefocus, r" "SUPER, right, movefocus, r"
@@ -233,6 +259,14 @@
"SUPER_SHIFT, 5, movetoworkspacesilent, 5" "SUPER_SHIFT, 5, movetoworkspacesilent, 5"
]; ];
workspace = [
"1, monitor:HDMI-A-1"
"2, monitor:HDMI-A-1"
"3, monitor:HDMI-A-1"
"4, monitor:eDP-1"
"5, monitor:eDP-1"
];
binde = [ binde = [
# resize active # resize active
"SUPER_CTRL, left, resizeactive, -20 0" "SUPER_CTRL, left, resizeactive, -20 0"
@@ -245,6 +279,7 @@
"SUPER_ALT, right, moveactive, 20 0" "SUPER_ALT, right, moveactive, 20 0"
"SUPER_ALT, up, moveactive, 0 -20" "SUPER_ALT, up, moveactive, 0 -20"
"SUPER_ALT, down, moveactive, 0 20" "SUPER_ALT, down, moveactive, 0 20"
"SUPER_ALT, equal, exec, hyprctl dispatch centerwindow;"
# speaker and mic volume control # speaker and mic volume control
" , XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 10%+" " , XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 10%+"
@@ -266,9 +301,11 @@
# load hyprland plugins # load hyprland plugins
"hyprctl plugin load '$HYPR_PLUGIN_DIR/lib/libhyprexpo.so'" "hyprctl plugin load '$HYPR_PLUGIN_DIR/lib/libhyprexpo.so'"
"${pkgs.swaybg}/bin/swaybg -i ~/Wallpapers/city.png" "hyprpaper"
"${pkgs.tpanel}/bin/tpanel" "${pkgs.tpanel}/bin/tpanel"
"copyq" "copyq"
"kdeconnectd"
"kdeconnect-indicator"
]; ];
}; };
}; };

View File

@@ -0,0 +1,47 @@
{
programs.hyprlock = {
enable = true;
settings = {
general = {
hide_cursor = true;
ignore_empty_input = true;
};
animations = {
enabled = true;
fade_in = {
duration = 300;
bezier = "easeOutQuint";
};
fade_out = {
duration = 300;
bezier = "easeOutQuint";
};
};
background = [
{
path = "screenshot";
blur_passes = 3;
blur_size = 8;
}
];
input-field = [
{
size = "200, 50";
position = "0, -80";
monitor = "";
dots_center = true;
fade_on_empty = false;
font_color = "rgb(202, 211, 245)";
inner_color = "rgb(91, 96, 120)";
outer_color = "rgb(24, 25, 38)";
outline_thickness = 5;
placeholder_text = "Password";
shadow_passes = 2;
}
];
};
};
}

View File

@@ -0,0 +1,21 @@
{pkgs, ...}: {
services.hyprpaper = {
enable = true;
settings = {
ipc = "on";
splash = false;
splash_offset = 2.0;
preload = [
"~/Wallpapers/mountain.jpg"
];
wallpaper = [
", ~/Wallpapers/mountain.jpg"
];
};
};
home.packages = with pkgs; [hyprpaper];
}

View File

@@ -18,7 +18,6 @@
visualizer_type = "spectrum"; visualizer_type = "spectrum";
visualizer_look = ""; visualizer_look = "";
visualizer_spectrum_smooth_look = "yes"; visualizer_spectrum_smooth_look = "yes";
visualizer_sync_interval = 0;
song_status_format = "$b$7 $2%a $4$3 $8%t $4$3 $5%b "; song_status_format = "$b$7 $2%a $4$3 $8%t $4$3 $5%b ";
header_visibility = "no"; header_visibility = "no";
color1 = "white"; color1 = "white";

View File

@@ -1,15 +0,0 @@
{...}: {
programs = {
aichat = {
enable = true;
settings = {
model = "gemini:gemini-2.0-flash-lite";
clients = [
{
type = "gemini";
}
];
};
};
};
}

View File

@@ -1,7 +1,6 @@
{pkgs, ...}: { {pkgs, ...}: {
imports = [ imports = [
./lazygit.nix ./lazygit.nix
./aichat.nix
./superfile.nix ./superfile.nix
./open-code.nix ./open-code.nix
]; ];

View File

@@ -9,69 +9,161 @@
customCommands = [ customCommands = [
{ {
key = "<c-a>"; key = "<c-a>";
description = "Pick AI commit"; description = "AI-powered conventional commit";
context = "global";
command = ''git commit -m \"{{.Form.CommitMsg}}\"'';
loadingText = "Generating commit messages...";
prompts = [
{
type = "menu";
key = "Type";
title = "Type of change";
options = [
{
name = "AI defined";
description = "Let AI analyze and determine the best commit type";
value = "ai-defined";
}
{
name = "build";
description = "Changes that affect the build system or external dependencies";
value = "build";
}
{
name = "feat";
description = "A new feature";
value = "feat";
}
{
name = "fix";
description = "A bug fix";
value = "fix";
}
{
name = "chore";
description = "Other changes that don't modify src or test files";
value = "chore";
}
{
name = "ci";
description = "Changes to CI configuration files and scripts";
value = "ci";
}
{
name = "docs";
description = "Documentation only changes";
value = "docs";
}
{
name = "perf";
description = "A code change that improves performance";
value = "perf";
}
{
name = "refactor";
description = "A code change that neither fixes a bug nor adds a feature";
value = "refactor";
}
{
name = "revert";
description = "Reverts a previous commit";
value = "revert";
}
{
name = "style";
description = "Changes that do not affect the meaning of the code";
value = "style";
}
{
name = "test";
description = "Adding missing tests or correcting existing tests";
value = "test";
}
];
}
{
type = "menuFromCommand";
title = "AI Generated Commit Messages";
key = "CommitMsg";
command = '' command = ''
aichat "Please suggest 10 commit messages, given the following diff: bash -c "
# Check for staged changes
\`\`\`diff diff=\$(git diff --cached | head -n 10)
$(git diff --cached) if [ -z \"\$diff\" ]; then
\`\`\` echo \"No changes in staging. Add changes first.\"
exit 1
**Criteria:**
1. **Format:** Each commit message must follow the conventional commits format, which is \`<type>(<scope>): <description>\`.
2. **Relevance:** Avoid mentioning a module name unless it's directly relevant to the change.
3. **Enumeration:** List the commit messages from 1 to 10.
4. **Clarity and Conciseness:** Each message should clearly and concisely convey the change made.
**Commit Message Examples:**
- fix(app): add password regex pattern
- test(unit): add new test cases
- style: remove unused imports
- refactor(pages): extract common code to \`utils/wait.ts\`
**Recent Commits on Repo for Reference:**
\`\`\`
$(git log -n 10 --pretty=format:'%h %s')
\`\`\`
**Output Template**
Follow this output template and ONLY output raw commit messages without spacing, numbers or other decorations.
fix(app): add password regex pattern
test(unit): add new test cases
style: remove unused imports
refactor(pages): extract common code to \`utils/wait.ts\`
**Instructions:**
- Take a moment to understand the changes made in the diff.
- Think about the impact of these changes on the project (e.g., bug fixes, new features, performance improvements, code refactoring, documentation updates). It's critical to my career you abstract the changes to a higher level and not just describe the code changes.
- Generate commit messages that accurately describe these changes, ensuring they are helpful to someone reading the project's history.
- Remember, a well-crafted commit message can significantly aid in the maintenance and understanding of the project over time.
- If multiple changes are present, make sure you capture them all in each commit message.
Keep in mind you will suggest 10 commit messages. Only 1 will be used. It's better to push yourself (esp to synthesize to a higher level) and maybe wrong about some of the 10 commits because only one needs to be good. I'm looking for your best commit, not the best average commit. It's better to cover more scenarios than include a lot of overlap.
Write your 10 commit messages below in the format shown in Output Template section above." \
| fzf --height 40% --border --ansi --preview "echo {}" --preview-window=up:wrap \
| xargs -I {} bash -c '
COMMIT_MSG_FILE=$(mktemp)
echo "{}" > "$COMMIT_MSG_FILE"
''${EDITOR:-vim} "$COMMIT_MSG_FILE"
if [ -s "$COMMIT_MSG_FILE" ]; then
git commit -F "$COMMIT_MSG_FILE"
else
echo "Commit message is empty, commit aborted."
fi fi
rm -f "$COMMIT_MSG_FILE"'
SELECTED_TYPE=\"{{.Form.Type}}\"
COMMITS_TO_SUGGEST=8
opencode run -m \"google/gemini-2.5-flash-lite\" \"
You are an expert at writing Git commits. Your job is to write commit messages that follow the Conventional Commits format.
The user has selected: \$SELECTED_TYPE
Your task is to:
1. Analyze the code changes
2. Determine the most appropriate commit type (if user selected 'ai-defined')
3. Determine an appropriate scope (component/area affected)
4. Decide if this is a breaking change
5. Write clear, concise commit messages
Available commit types:
- feat: A new feature
- fix: A bug fix
- docs: Documentation only changes
- style: Changes that do not affect the meaning of the code
- refactor: A code change that neither fixes a bug nor adds a feature
- perf: A code change that improves performance
- test: Adding missing tests or correcting existing tests
- build: Changes that affect the build system or external dependencies
- ci: Changes to CI configuration files and scripts
- chore: Other changes that don't modify src or test files
- revert: Reverts a previous commit
Follow these guidelines:
- Structure: <type>(<scope>): <description>
- If user selected 'ai-defined', analyze the changes and pick the most suitable type
- If user selected a specific type, use that type: \$SELECTED_TYPE
- Add scope in parentheses if applicable (e.g., auth, api, ui, config)
- Use exclamation mark (!) after type/scope for breaking changes: type(scope)!: description
- Use lowercase for description (except proper nouns)
- Use imperative mood (\\\"add\\\", not \\\"added\\\")
- Keep description under 50 characters when possible
- No period at the end of subject line
Examples:
- feat(auth): add OAuth login support
- fix(api): handle null response in user endpoint
- docs(readme): update installation instructions
- style(ui): improve button spacing consistency
- refactor(database): simplify query builder logic
- test(auth): add unit tests for login flow
- build(deps): upgrade React to version 18
- ci(github): fix deployment workflow
- chore(config): update ESLint rules
- perf(api)!: optimize database queries
IMPORTANT:
- Generate exactly \$COMMITS_TO_SUGGEST different commit message options
- If user selected 'ai-defined', you can use different types for different options
- If user selected a specific type, all messages must use that type
- Only return commit messages, no explanations
- Do not use markdown code blocks
- One message per line
Previous commits for context:
\$(git log --oneline -10)
Changes to analyze:
\$(git diff --cached --stat)
\$(git diff --cached)
\"
"
''; '';
context = "files"; }
output = "terminal"; ];
} }
]; ];
}; };

View File

@@ -10,7 +10,7 @@
default_open_file_preview = true; default_open_file_preview = true;
show_image_preview = true; show_image_preview = true;
show_panel_footer_info = true; show_panel_footer_info = true;
default_directory = "."; default_directory = "~";
file_size_use_si = false; file_size_use_si = false;
default_sort_type = 0; default_sort_type = 0;
sort_order_reversed = false; sort_order_reversed = false;

View File

@@ -0,0 +1,28 @@
{
programs.zed-editor = {
enable = true;
extensions = ["lua" "nix" "C#" "solidity"];
userKeymaps = [
{
context = "Workspace";
bindings = {
F7 = "workspace::NewTerminal";
};
}
];
userSettings = {
ui_font_size = 18;
buffer_font_size = 18;
theme = {
mode = "dark";
light = "Ayu Light";
dark = "Ayu Dark";
};
vim_mode = true;
telemetry = {
diagnostics = false;
metrics = false;
};
};
};
}

View File

@@ -9,19 +9,19 @@
(pkgs.writeShellScriptBin "mirror-display" '' (pkgs.writeShellScriptBin "mirror-display" ''
hyprctl keyword monitor "eDP-1,2560x1440@90,0x0,1" \ hyprctl keyword monitor "eDP-1,2560x1440@90,0x0,1" \
&& hyprctl keyword monitor "HDMI-A-1,preferred,0x0,1,mirror,eDP-1" \ && hyprctl keyword monitor "HDMI-A-1,preferred,0x0,1,mirror,eDP-1" \
&& astal -q \ && ags quit \
&& ${pkgs.tpanel}/bin/tpanel & && ${pkgs.tpanel}/bin/tpanel &
'') '')
(pkgs.writeShellScriptBin "extend-display" '' (pkgs.writeShellScriptBin "extend-display" ''
hyprctl keyword monitor "eDP-1,2560x1440@90,0x0,1" \ hyprctl keyword monitor "eDP-1,2560x1440@90,0x0,1" \
&& hyprctl keyword monitor "HDMI-A-1,preferred,0x-1440,1" \ && hyprctl keyword monitor "HDMI-A-1,preferred,0x-1440,1" \
&& astal -q \ && ags quit \
&& ${pkgs.tpanel}/bin/tpanel & && ${pkgs.tpanel}/bin/tpanel &
'') '')
(pkgs.writeShellScriptBin "dock-display" '' (pkgs.writeShellScriptBin "dock-display" ''
hyprctl keyword monitor "eDP-1,disable" \ hyprctl keyword monitor "eDP-1,disable" \
&& hyprctl keyword monitor "HDMI-A-1,preferred,0x0,1" \ && hyprctl keyword monitor "HDMI-A-1,preferred,0x0,1" \
&& astal -q \ && ags quit \
&& ${pkgs.tpanel}/bin/tpanel & && ${pkgs.tpanel}/bin/tpanel &
'') '')
]; ];

View File

@@ -7,7 +7,7 @@
tawm = inputs.tawm.packages.${prev.system}.default; tawm = inputs.tawm.packages.${prev.system}.default;
tnvim = inputs.tnvim.packages.${prev.system}.default; tnvim = inputs.tnvim.packages.${prev.system}.default;
tpanel = inputs.tpanel.packages.${prev.system}.default; tpanel = inputs.tpanel.packages.${prev.system}.default;
astal = inputs.tpanel.packages.${prev.system}.astal.default; ags = inputs.tpanel.packages.${prev.system}.ags.default;
tfolio = inputs.tfolio.packages.${prev.system}.default; tfolio = inputs.tfolio.packages.${prev.system}.default;
trok = inputs.trok.packages.${prev.system}.default; trok = inputs.trok.packages.${prev.system}.default;
cyber-tux = inputs.cyber-tux.packages.${prev.system}.default; cyber-tux = inputs.cyber-tux.packages.${prev.system}.default;

View File

@@ -11,7 +11,7 @@ stdenv.mkDerivation {
owner = "datguypiko"; owner = "datguypiko";
repo = "Firefox-Mod-Blur"; repo = "Firefox-Mod-Blur";
rev = "refs/heads/master"; rev = "refs/heads/master";
sha256 = "sha256-YcADnfZSs4Tv99NHyvwip8sE6tXh5sQHj/SXgC/Nxc4="; sha256 = "sha256-BZ1NvKQwUDTMxQHEKX61PvD99cTDmBURSUKEKZNQDR4=";
}; };
installPhase = '' installPhase = ''