Merge pull request #9 from tomasriveral/laptop

Laptop
This commit is contained in:
2026-05-18 19:39:28 +02:00
committed by GitHub
91 changed files with 470 additions and 560 deletions
+9 -9
View File
@@ -164,15 +164,15 @@ If you **dont have the physical macropad**, the table below shows which keybi
| Macropad Key | Linked Action (Hyprland keybinding) | | Macropad Key | Linked Action (Hyprland keybinding) |
| ------------ | -------------------------------------------- | | ------------ | -------------------------------------------- |
| Row 1, Col 1 | Kill all apps except focused (`Ctrl+$mod+6`) | | Row 1, Col 1 | Kill all apps except focused (`Ctrl+$mod+6`) |
| Row 2, Col 1 | Performance mode (`Ctrl+Alt+7`) | | Row 1, Col 2 | Performance mode (`Ctrl+Alt+7`) |
| Row 3, Col 1 | Do not disturb (`Ctrl+$mod+4` | | Row 1, Col 3 | Do not disturb (`Ctrl+$mod+4` |
| Row 4, Col 1 | Notification center (`Ctrl+Alt+1`) | | Row 1, Col 4 | Notification center (`Ctrl+Alt+1`) |
| Row 3, Col 2 | Special characters (`Ctrl+$mod+3`) | | Row 2, Col 1 | Pulseaudio control (`Ctrl+$mod+3`) |
| Row 3, Col 3 | Color picker (`Ctrl+Alt+8`) | | Row 2, Col 2 | Change audio output (`Ctrl+Alt+Shift+0`) |
| Row 4, Col 1 | Notification center toggle (`Ctrl+Alt+1`) | | Row 2, Col 3 | Special characters (`Ctrl+$mod+3`) |
| Row 4, Col 2 | System monitor (`Ctrl+Alt+2`) | | Row 2, Col 4 | Color picker (`Ctrl+Alt+8`) |
| Row 4, Col 3 | Pomodoro timer (`Ctrl+Alt+0`) | | Row 3, Col 1 | Pomodoro timer (`Ctrl+Alt+0`) |
| Row 4, Col 6 | Launch Anki (`Ctrl+Alt+9`) | | Row 4, Col 1 | Launch Anki (`Ctrl+Alt+9`) |
> Positions are labeled as `[row, column]` starting from top-left `[1,1]`. > Positions are labeled as `[row, column]` starting from top-left `[1,1]`.
> Each macro calls a script or application from this configuration. > Each macro calls a script or application from this configuration.
Generated
+16 -16
View File
@@ -11,11 +11,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1778125502, "lastModified": 1778644647,
"narHash": "sha256-QAAO9RCR6byVJi50l8RMVJWzrsNYbXonfR6tqU93vIQ=", "narHash": "sha256-iQIu4b5by8B3qKeigungSIgRoJg9HS1NiIZwqIbCGYk=",
"owner": "caelestia-dots", "owner": "caelestia-dots",
"repo": "cli", "repo": "cli",
"rev": "7b8a4281aa8b2b12745de531cce0c65d87aea2e5", "rev": "2ce6213698d1cfa15b4b067d35c3cda634f443dd",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -33,11 +33,11 @@
"quickshell": "quickshell" "quickshell": "quickshell"
}, },
"locked": { "locked": {
"lastModified": 1778381004, "lastModified": 1778986249,
"narHash": "sha256-JwIlrajiY74obxyTMu/Ym6wOEQaCjpHwfziPK+E5u3Q=", "narHash": "sha256-6vIBRLIy41LDrm/ahTcrEj6pBB+oji7bP/5RY9Or0GA=",
"owner": "caelestia-dots", "owner": "caelestia-dots",
"repo": "shell", "repo": "shell",
"rev": "2ca4ad4a434e91e73504debd5225e66dc5ebb2b6", "rev": "cf18cea3dad28ddda2f151b1b42a66f2fba1f84a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -53,11 +53,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1778606796, "lastModified": 1778905220,
"narHash": "sha256-P2krpSkFVYJ89bgsnAZ9RtQiGwiTW77sfSJp9SEDscM=", "narHash": "sha256-ox/5IHc8uwy6UTw6N7Shp6uCHIgu/S2PsWeuXsOHSo8=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "e1fd7350f4410972bcb8c42a697d8c924ffe642a", "rev": "d1686dc7d36cbd1234cb226ad6ef97e882716acb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -119,11 +119,11 @@
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1778794387, "lastModified": 1778869304,
"narHash": "sha256-BL04pOS9453Awkeb9f90XBJXBSkWxN+vB7HIgnL0iMM=", "narHash": "sha256-30sZNZoA1cqF5JNO9fVX+wgiQYjB7HJqqJ4ztCDeBZE=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "8a1b0127302ea51e05bf4ea5a291743fac442406", "rev": "d233902339c02a9c334e7e593de68855ad26c4cb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -157,11 +157,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1778222427, "lastModified": 1778488696,
"narHash": "sha256-6GFiP611nEJvtm+m03sMyfaVIJ9QOCi//hS+PPKyyPA=", "narHash": "sha256-QSWgYuZUCNUJ/cxmaq83WkcT7lHQDDfsPVgH+96kIl0=",
"ref": "refs/heads/master", "ref": "refs/heads/master",
"rev": "d1760ed1f31c02a95b37a9bf4084129c829ebe7f", "rev": "7d1c9a9c6721606b129829134d6f614f015621e2",
"revCount": 817, "revCount": 818,
"type": "git", "type": "git",
"url": "https://git.outfoxxed.me/outfoxxed/quickshell" "url": "https://git.outfoxxed.me/outfoxxed/quickshell"
}, },
+3 -8
View File
@@ -15,17 +15,13 @@
inputs.nixpkgs.follows = "nixpkgs-unstable"; inputs.nixpkgs.follows = "nixpkgs-unstable";
}; };
microPlugins-vivify = { microPlugins-vivify = {
url = "git+https://codeberg.org/gibbert/micro-vivify"; url = "git+https://codeberg.org/gibbert/micro-vivify";
flake = false; flake = false;
}; };
}; };
outputs = { outputs = {
self,
nixpkgs, nixpkgs,
nixpkgs-unstable, nixpkgs-unstable,
home-manager,
nixos-grub-themes,
caelestia-shell,
... ...
} @ inputs: let } @ inputs: let
system = "x86_64-linux"; system = "x86_64-linux";
@@ -41,10 +37,9 @@
pkgs-unstable = import nixpkgs-unstable { pkgs-unstable = import nixpkgs-unstable {
inherit system; inherit system;
config.allowUnfreePredicate = mkUnfreePredicate; config.allowUnfreePredicate = mkUnfreePredicate;
}; };
in { in {
nixosConfigurations = { nixosConfigurations = {
laptop = nixpkgs.lib.nixosSystem { laptop = nixpkgs.lib.nixosSystem {
+8 -8
View File
@@ -3,10 +3,6 @@
# and in the NixOS manual (accessible by running nixos-help). # and in the NixOS manual (accessible by running nixos-help).
{ {
# nixd says that those attributes are not used. The are used in the imported file. Do not remove. # nixd says that those attributes are not used. The are used in the imported file. Do not remove.
config,
pkgs,
pkgs-unstable,
libs,
inputs, inputs,
... ...
}: { }: {
@@ -18,13 +14,16 @@
#../../modules/nixos/ly.nix #../../modules/nixos/ly.nix
../../modules/nixos/ly.nix ../../modules/nixos/ly.nix
../../modules/nixos/anki.nix ../../modules/nixos/anki.nix
../../modules/nixos/nixUtils.nix ../../hostsModules/laptop/nixos/nixUtils.nix ../../modules/nixos/nixUtils.nix
../../hostsModules/laptop/nixos/nixUtils.nix
../../hostsModules/laptop/nixos/udev.nix ../../hostsModules/laptop/nixos/udev.nix
../../modules/nixos/disk.nix ../../hostsModules/laptop/nixos/disk.nix ../../modules/nixos/disk.nix
../../hostsModules/laptop/nixos/disk.nix
../../modules/nixos/printer.nix ../../modules/nixos/printer.nix
../../hostsModules/laptop/nixos/ollama.nix # llm config ../../hostsModules/laptop/nixos/ollama.nix # llm config
../../modules/nixos/mullvad.nix # vpn config ../../modules/nixos/mullvad.nix # vpn config
../../hostsModules/laptop/nixos/autoUpdate.nix # auto update the flakes. Handles notification via libnotify and matrix-commander-rs ../../hostsModules/laptop/nixos/autoUpdate.nix # auto update the flakes. Handles notification via libnotify and matrix-commander-rs
../../hostsModules/laptop/nixos/autoCleanup.nix # uses alexandra deadnix and statix to clean the whole config
../../hostsModules/laptop/nixos/bootloader.nix ../../hostsModules/laptop/nixos/bootloader.nix
../../hostsModules/laptop/nixos/networking.nix # firewall, ssh, networkmanager, etc. ../../hostsModules/laptop/nixos/networking.nix # firewall, ssh, networkmanager, etc.
../../modules/nixos/bluetooth.nix ../../modules/nixos/bluetooth.nix
@@ -35,7 +34,8 @@
../../modules/nixos/fonts.nix ../../modules/nixos/fonts.nix
../../modules/nixos/latex.nix ../../modules/nixos/latex.nix
../../modules/nixos/development.nix ../../modules/nixos/development.nix
../../modules/nixos/user.nix ../../hostsModules/laptop/nixos/user.nix ../../modules/nixos/user.nix
../../hostsModules/laptop/nixos/user.nix
../../modules/nixos/notifications.nix ../../modules/nixos/notifications.nix
../../modules/nixos/browser.nix ../../modules/nixos/browser.nix
../../modules/nixos/theme.nix # install theming packages and some quickshell stuff ../../modules/nixos/theme.nix # install theming packages and some quickshell stuff
@@ -43,7 +43,7 @@
../../modules/nixos/otherUtils.nix ../../modules/nixos/otherUtils.nix
../../modules/nixos/office.nix ../../modules/nixos/office.nix
]; ];
# This value determines the NixOS release from which the default # This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions # settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave # on your system were taken. Its perfectly fine and recommended to leave
-1
View File
@@ -4,7 +4,6 @@
{ {
config, config,
lib, lib,
pkgs,
modulesPath, modulesPath,
... ...
}: { }: {
+1 -6
View File
@@ -1,9 +1,4 @@
{ {inputs, ...}: {
config,
pkgs,
inputs,
...
}: {
# every import imports a specific module for an app. This module contains the enabling of this app and its settings. # every import imports a specific module for an app. This module contains the enabling of this app and its settings.
# So if you want to add an home-manager app create a module which enables it and configures it and import it. # So if you want to add an home-manager app create a module which enables it and configures it and import it.
imports = [ imports = [
@@ -1,11 +1,4 @@
{ _: {
config,
pkgs,
pkgs-unstable,
...
}:
{
wayland.windowManager.hyprland.settings = { wayland.windowManager.hyprland.settings = {
exec-once = [ exec-once = [
"qtbatticon" # custom battery tray "qtbatticon" # custom battery tray
+3 -7
View File
@@ -1,12 +1,8 @@
{ _: {
config,
pkgs,
...
}: {
programs.zsh = { programs.zsh = {
shellAliases = { shellAliases = {
snrt = "git -C ~/nixos add -A && time sudo nixos-rebuild test --flake ~/nixos/#laptop"; snrt = "git -C ~/nixos add -A && time sudo nixos-rebuild test --flake ~/nixos/#laptop && pkill shell || true && pkill caelestia-shell || true && caelestia-shell -n > /dev/null 2>&1 & disown";
snrs = "git -C ~/nixos add -A && time sudo nixos-rebuild switch --flake ~/nixos/#laptop"; snrs = "git -C ~/nixos add -A && time sudo nixos-rebuild switch --flake ~/nixos/#laptop && pkill shell || true && pkill caelestia-shell || true && caelestia-shell -n > /dev/null 2>&1 & disown";
}; };
}; };
} }
+45
View File
@@ -0,0 +1,45 @@
{pkgs, ...}: {
# Ensure your script is available system-wide
environment.systemPackages = [
(pkgs.callPackage ../scripts/cleanNix.nix {})
];
users.users.tomasr = {
linger = true; # lingering is required
};
systemd.user.services.custom-cleanNix = {
description = "NixOS configuration auto cleanup";
serviceConfig = {
Type = "oneshot";
ExecStart = "/run/current-system/sw/bin/custom-cleanNix";
# safety for long rebuilds
TimeoutStartSec = "45min";
TimeoutStopSec = "10min";
# avoid overlap
RemainAfterExit = true;
# tweaks that should make the system run normally during the rebuilds
Nice = 10;
IOSchedulingClass = "best-effort";
IOSchedulingPriority = 7;
};
};
# Systemd USER timer
systemd.user.timers.custom-cleanNix = {
wantedBy = ["timers.target"];
timerConfig = {
OnCalendar = "Sat *-*-* 20:00:00"; # runs saturday night. If for whatever reason something breaks. I have whole sunday to fix it.
Persistent = true; # if it happens during shutted down
# avoids thundering herd on boot
RandomizedDelaySec = "2h";
};
};
}
+3 -5
View File
@@ -1,12 +1,10 @@
{ pkgs, ... }: {pkgs, ...}: {
{
# Ensure your script is available system-wide # Ensure your script is available system-wide
environment.systemPackages = [ environment.systemPackages = [
(pkgs.callPackage ../scripts/autoUpdate.nix {}) (pkgs.callPackage ../scripts/autoUpdate.nix {})
]; ];
users.users.tomasr = { users.users.tomasr = {
linger = true; # lingering is required linger = true; # lingering is required
}; };
systemd.user.services.custom-autoupdate = { systemd.user.services.custom-autoupdate = {
@@ -33,7 +31,7 @@
# Systemd USER timer # Systemd USER timer
systemd.user.timers.custom-autoupdate = { systemd.user.timers.custom-autoupdate = {
wantedBy = [ "timers.target" ]; wantedBy = ["timers.target"];
timerConfig = { timerConfig = {
OnCalendar = "Fri *-*-* 20:00:00"; # runs friday night. If for whatever reason something breaks. I have whole week-end to fix it. OnCalendar = "Fri *-*-* 20:00:00"; # runs friday night. If for whatever reason something breaks. I have whole week-end to fix it.
+2 -1
View File
@@ -2,7 +2,8 @@
{ {
lib, lib,
config, config,
...}: ...
}:
# we just activate tlp unconditonally # we just activate tlp unconditonally
#let #let
# cfg = config.custom; # cfg = config.custom;
+1 -2
View File
@@ -2,8 +2,7 @@
inputs, inputs,
pkgs, pkgs,
... ...
}: }: {
{
# grub theme # grub theme
boot.loader.grub = { boot.loader.grub = {
theme = inputs.nixos-grub-themes.packages.${pkgs.system}.nixos; # if you want to use nixos grub theme theme = inputs.nixos-grub-themes.packages.${pkgs.system}.nixos; # if you want to use nixos grub theme
+3 -9
View File
@@ -1,13 +1,7 @@
{ _: {
config,
pkgs,
pkgs-unstable,
libs,
inputs,
...
}: {
# i found swap necessary when running nixpkgs review # i found swap necessary when running nixpkgs review
swapDevices = [{ swapDevices = [
{
device = "/swapfile"; device = "/swapfile";
size = 16384; # 16 GB size = 16384; # 16 GB
} }
+1 -5
View File
@@ -1,8 +1,4 @@
{ {pkgs, ...}: {
pkgs,
...
}:
{
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
# used for the framework 16 laptop # used for the framework 16 laptop
framework-tool framework-tool
+5 -10
View File
@@ -1,14 +1,9 @@
{ {pkgs, ...}: {
pkgs,
...
}:
{
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
wget wget
networkmanagerapplet # NetworkManager control applet networkmanagerapplet # NetworkManager control applet
inetutils # collections of network programs such as telnet inetutils # collections of network programs such as telnet
];
];
#networking.Name = "nixos"; # Define your hostname. #networking.Name = "nixos"; # Define your hostname.
#networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. #networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
+1 -4
View File
@@ -1,7 +1,4 @@
{ _: {
...
}:
{
# nixpkgs-review crashed my laptop multiple times. # nixpkgs-review crashed my laptop multiple times.
nix.settings.max-jobs = 2; nix.settings.max-jobs = 2;
nix.settings.cores = 2; nix.settings.cores = 2;
+8 -8
View File
@@ -1,7 +1,4 @@
{ {pkgs-unstable, ...}: {
pkgs-unstable,
...
}: {
services.ollama = { services.ollama = {
enable = true; enable = true;
package = pkgs-unstable.ollama-vulkan; package = pkgs-unstable.ollama-vulkan;
@@ -11,15 +8,18 @@
#loadModels = [ "mistral:7b" ]; # don't forget the :xxxxx for ex: "mixtral" don't work #loadModels = [ "mistral:7b" ]; # don't forget the :xxxxx for ex: "mixtral" don't work
#syncModels = true; #syncModels = true;
}; };
systemd.services.ollama.serviceConfig.ExecStartPost = [ # use this to auto download models systemd.services.ollama.serviceConfig.ExecStartPost = [
"${pkgs-unstable.ollama-vulkan}/bin/ollama pull mistral:7b" # use this to auto download models
"${pkgs-unstable.ollama-vulkan}/bin/ollama pull mistral:7b"
]; ];
/*services.open-webui = { /*
services.open-webui = {
enable = true; enable = true;
port = 8080; port = 8080;
environment = { environment = {
OLLAMA_BASE_URL = "http://127.0.0.1:11434"; OLLAMA_BASE_URL = "http://127.0.0.1:11434";
WEBUI_AUTH = "True"; WEBUI_AUTH = "True";
}; };
};*/ };
*/
} }
+1 -5
View File
@@ -1,8 +1,4 @@
{ _: {
config,
pkgs,
...
}: {
# udev with only the necessary rules. See udev.nix to get all the rules # udev with only the necessary rules. See udev.nix to get all the rules
services.udev.extraRules = '' services.udev.extraRules = ''
# adapted from here https://wiki.nixos.org/wiki/Keychron_M6 # adapted from here https://wiki.nixos.org/wiki/Keychron_M6
+1 -4
View File
@@ -1,7 +1,4 @@
# configuration is in ../../../modules/nixos/user.nix # configuration is in ../../../modules/nixos/user.nix
{ _: {
...
}:
{
home-manager.users.tomasr = ../../../hosts/laptop/home.nix; home-manager.users.tomasr = ../../../hosts/laptop/home.nix;
} }
-1
View File
@@ -4,7 +4,6 @@
# at your risk and perils # at your risk and perils
# click on the icon to get a notification with state, percentage and wattage # click on the icon to get a notification with state, percentage and wattage
{ {
lib,
stdenv, stdenv,
qt6, qt6,
pkg-config, pkg-config,
+6 -7
View File
@@ -1,7 +1,4 @@
{ {pkgs, ...}:
pkgs,
...
}:
pkgs.writeShellApplication { pkgs.writeShellApplication {
name = "custom-autoupdate"; name = "custom-autoupdate";
@@ -29,8 +26,8 @@ pkgs.writeShellApplication {
# update lock only # update lock only
nix flake update --flake "$FLAKE_DIR" nix flake update --flake "$FLAKE_DIR"
if sudo nixos-rebuild switch --flake "$FLAKE" 2> "$ERROR_FILE"; then if sudo /run/current-system/sw/bin/nixos-rebuild switch --flake "$FLAKE" 2> "$ERROR_FILE"; then # use /run/.../bin/ uses the sudoless rule
if ! git -C "$FLAKE_DIR" diff --quiet -- flake.lock; then if ! git -C "$FLAKE_DIR" diff --quiet -- flake.lock; then
git -C "$FLAKE_DIR" add flake.lock git -C "$FLAKE_DIR" add flake.lock
git -C "$FLAKE_DIR" commit -m "flake.lock: autoupdate-$TIME" git -C "$FLAKE_DIR" commit -m "flake.lock: autoupdate-$TIME"
@@ -57,7 +54,9 @@ pkgs.writeShellApplication {
git -C "$FLAKE_DIR" reset --hard "pre-autoupdate-$TIME" git -C "$FLAKE_DIR" reset --hard "pre-autoupdate-$TIME"
fi fi
git -C "$FLAKE_DIR" tag -d "pre-autoupdate-$TIME" # removes the tag
rm -f "$ERROR_FILE" rm -f "$ERROR_FILE"
''; '';
} }
+1 -2
View File
@@ -1,5 +1,4 @@
{ pkgs }: {pkgs}:
pkgs.writeShellApplication { pkgs.writeShellApplication {
name = "custom-checkMatrix"; name = "custom-checkMatrix";
+71
View File
@@ -0,0 +1,71 @@
{pkgs, ...}:
pkgs.writeShellApplication {
name = "custom-cleanNix";
runtimeInputs = with pkgs; [
git
nixos-rebuild
matrix-commander-rs
libnotify
alejandra
deadnix
];
text = ''
set -e
FLAKE_DIR="/home/tomasr/nixos"
FLAKE="$FLAKE_DIR#laptop"
TIME=$(date -u +"%Y-%m-%dT%H-%M-%SZ")
ERROR_FILE=$(mktemp)
# snapshot current state
git -C "$FLAKE_DIR" add -A
git -C "$FLAKE_DIR" commit --allow-empty -m "snapshot pre-cleanup-$TIME"
git -C "$FLAKE_DIR" tag "pre-cleanup-$TIME" HEAD
# the echos are to separate what each one is doing. Just for curiosity
echo "deadnix scans your Nix code and removes or reports unused (dead) variables and bindings"
deadnix --edit "$FLAKE_DIR" # removes unused code
echo "--------------------------------------------------------------"
echo "statix lints your Nix code to find stylistic issues, bad patterns, and potential mistakes."
statix fix "$FLAKE_DIR" # check other linting issues
echo "--------------------------------------------------------------"
echo "alejandra formats your Nix code consistently according to a strict, opinionated style."
alejandra "$FLAKE_DIR" # formats the config
echo "--------------------------------------------------------------"
if sudo /run/current-system/sw/bin/nixos-rebuild switch --flake "$FLAKE" 2> "$ERROR_FILE"; then # use /run/.../bin/ uses the sudoless rule
if ! git -C "$FLAKE_DIR" diff --quiet HEAD; then
git -C "$FLAKE_DIR" add -A
git -C "$FLAKE_DIR" commit -m "Auto: cleanup-$TIME"
git -C "$FLAKE_DIR" push
notify-send "Nix auto cleanup" "Everything OK"
matrix-commander-rs --verbose -m "Nix auto cleanup. Everything OK.<br><a href=\"https://matrix.to/#/@notificationbot_0000:matrix.org\">@notificationbot_0000</a>" \
--html \
-r "\!7j-78_02dHROeLj4Ns8F12eo4IiZGv4zNsQ_1-WlyIU"
else
notify-send "Nix auto cleanup" "No changes"
git -C "$FLAKE_DIR" push
fi
else
ERROR_MSG=$(cat "$ERROR_FILE")
notify-send -u critical "Nix auto cleanup" "FAILED"
matrix-commander-rs --verbose -m "Nix auto cleanup failed.<br>Error: <pre>$ERROR_MSG</pre><br><a href=\"https://matrix.to/#/@notificationbot_0000:matrix.org\">@notificationbot_0000</a>" \
--html \
-r "\!7j-78_02dHROeLj4Ns8F12eo4IiZGv4zNsQ_1-WlyIU"
git -C "$FLAKE_DIR" reset --hard "pre-cleanup-$TIME"
fi
git -C "$FLAKE_DIR" tag -d "pre-cleanup-$TIME" # removes the tag
rm -f "$ERROR_FILE"
'';
}
-1
View File
@@ -1,5 +1,4 @@
# OLD Deprecated. # OLD Deprecated.
{ {
config, config,
pkgs, pkgs,
+1 -5
View File
@@ -1,8 +1,4 @@
{ _: {
config,
pkgs,
...
}: {
programs.anki = { programs.anki = {
# we enable system wide with nixpkgs because it offers some addon configuration. We just use this for some config # we enable system wide with nixpkgs because it offers some addon configuration. We just use this for some config
#enable = true; #enable = true;
+1 -5
View File
@@ -1,8 +1,4 @@
{ _: {
config,
pkgs,
...
}: {
services.batsignal = { services.batsignal = {
enable = true; enable = true;
}; };
+4 -10
View File
@@ -1,17 +1,11 @@
{ _: let
config,
pkgs,
pkgs-unstable,
caelestia-shell,
...
}: let
sisyphe = ../../assets/sisyphe.gif; sisyphe = ../../assets/sisyphe.gif;
pepe-music = ../../assets/pepe-music.gif; pepe-music = ../../assets/pepe-music.gif;
in { in {
home.file.".local/state/caelestia/wallpaper/path.txt" = { # dummy file. Does nothing. Prevent an error home.file.".local/state/caelestia/wallpaper/path.txt" = {
# dummy file. Does nothing. Prevent an error
enable = true; enable = true;
text = "${sisyphe}"; text = "${sisyphe}";
}; };
home.file.".face" = { home.file.".face" = {
# this is were caelestia will search for profiles pictures # this is were caelestia will search for profiles pictures
@@ -516,7 +510,7 @@ in {
}; };
theme = { theme = {
enableTerm = false; # we do it manually by adapting our kitty config enableTerm = false; # we do it manually by adapting our kitty config
enableHypr = true; enableHypr = false; # this seems to add the splash
enableDiscord = true; enableDiscord = true;
enableSpicetify = true; enableSpicetify = true;
enableFuzzel = true; #what's that? enableFuzzel = true; #what's that?
+1 -5
View File
@@ -1,11 +1,7 @@
# don't works. some GTK error. I let it here if someday, someone is interest in this shit. # don't works. some GTK error. I let it here if someday, someone is interest in this shit.
# ChatGPT half baked a replacement that works on my system. # ChatGPT half baked a replacement that works on my system.
# see ../qt/qtbatticon # see ../qt/qtbatticon
{ _: {
config,
pkgs,
...
}: {
services.cbatticon = { services.cbatticon = {
enable = true; enable = true;
lowLevelPercent = 20; lowLevelPercent = 20;
+1 -5
View File
@@ -1,8 +1,4 @@
{ {pkgs, ...}: {
config,
pkgs,
...
}: {
home.pointerCursor = { home.pointerCursor = {
hyprcursor.enable = true; hyprcursor.enable = true;
enable = true; enable = true;
+1 -5
View File
@@ -1,8 +1,4 @@
{ _:
config,
pkgs,
...
}:
# ls replacement # ls replacement
# see ./zsh.nix for the alias (usefull to se default flags) # see ./zsh.nix for the alias (usefull to se default flags)
{ {
+1 -5
View File
@@ -1,8 +1,4 @@
{ _: {
config,
pkgs,
...
}: {
# Adapted from https://github.com/dacrab/fastfetch-config/blob/main/config.jsonc # Adapted from https://github.com/dacrab/fastfetch-config/blob/main/config.jsonc
programs.fastfetch = { programs.fastfetch = {
enable = true; enable = true;
+1 -5
View File
@@ -1,8 +1,4 @@
{ _: {
config,
pkgs,
...
}: {
programs.git = { programs.git = {
enable = true; enable = true;
settings = { settings = {
+1 -5
View File
@@ -1,8 +1,4 @@
{ {pkgs, ...}: {
config,
pkgs,
...
}: {
# gtk config # gtk config
gtk.theme = { gtk.theme = {
enable = true; enable = true;
+1 -5
View File
@@ -1,8 +1,4 @@
{ _: {
config,
pkgs,
...
}: {
services.hypridle = { services.hypridle = {
enable = true; enable = true;
settings = { settings = {
+17 -18
View File
@@ -1,9 +1,4 @@
{ {pkgs-unstable, ...}: let
config,
pkgs,
pkgs-unstable,
...
}: let
wallpaper = ../../assets/wallpaper1.jpg; wallpaper = ../../assets/wallpaper1.jpg;
in { in {
#refer to https://wiki.hypr.land/Nix/Hyprland-on-Home-Manager/ #refer to https://wiki.hypr.land/Nix/Hyprland-on-Home-Manager/
@@ -161,8 +156,9 @@ in {
"Ctrl+Alt, 1, exec, caelestia shell drawers toggle sidebar" "Ctrl+Alt, 1, exec, caelestia shell drawers toggle sidebar"
"Ctrl+$mod, 4, exec, caelestia shell notifs toggleDnd" "Ctrl+$mod, 4, exec, caelestia shell notifs toggleDnd"
"Ctrl+$mod, 3, exec, pavucontrol" # pos 1 2 audiocontrol "Ctrl+$mod, 3, exec, pavucontrol" # pos 1 2 audiocontrol
"Ctrl+$mod, 5, exec, gnome-characters" # pos 2 2 special chars "Ctrl+Shift+Alt, 0, exec, kitty --hold --class \"custom-changeAudioOutput\" --name \"Select audio output\" zsh -c \"custom-changeAudioOutput\"" # pos 2 2 change audio output fzf
"Ctrl+Alt, 8, exec, hyprpicker | tee >(wl-copy) | cliphist store" # pos 3 2 colorpicker "Ctrl+$mod, 5, exec, gnome-characters" # pos 3 2 special chars
"Ctrl+Alt, 8, exec, hyprpicker | tee >(wl-copy) | cliphist store" # pos 4 2 colorpicker
"Ctrl+Alt, 0, exec, custom-tomato" # pos 1 3 pomodoro app "Ctrl+Alt, 0, exec, custom-tomato" # pos 1 3 pomodoro app
"Ctrl+Alt, 2, exec, custom-bottom" # pos 2 3 btm (like htop but cleaner) "Ctrl+Alt, 2, exec, custom-bottom" # pos 2 3 btm (like htop but cleaner)
"Ctrl+Alt, 9, exec, anki" "Ctrl+Alt, 9, exec, anki"
@@ -212,12 +208,12 @@ in {
#"wl-paste --type image --watch cliphist store" # clipboard store image data #"wl-paste --type image --watch cliphist store" # clipboard store image data
"custom-batterynotify" "custom-batterynotify"
"custom-batterywarning" "custom-batterywarning"
"birdtray" # thunderbird tray app #"birdtray" # thunderbird tray app # curently broken
#wallpapers/b #wallpapers/b
"swww img ${wallpaper}" "swww img ${wallpaper}"
"swww-daemon" "swww-daemon"
"sleep 1 && custom-wallpaper" "sleep 1 && custom-wallpaper"
"sleep 5 && custom-checkKdrive && custom-mountkdrive" # checks if the remote works and mount it "custom-checkKdrive && custom-mountkdrive" # checks if the remote works and mount it
#"waybar" #"waybar"
"custom-gitnotify" "custom-gitnotify"
"custom-checkMatrix" # checks if matrix-commander-rs is connected which is important for other stuff "custom-checkMatrix" # checks if matrix-commander-rs is connected which is important for other stuff
@@ -328,6 +324,7 @@ in {
# theme # theme
decoration = { decoration = {
dim_special = 0.3; dim_special = 0.3;
rounding = 18;
blur = { blur = {
special = true; special = true;
enabled = true; enabled = true;
@@ -338,8 +335,8 @@ in {
}; };
}; };
general = { general = {
gaps_in = 3; gaps_in = 5;
gaps_out = 8; gaps_out = 15;
border_size = 4; border_size = 4;
"col.active_border" = "rgba(ca6702ff) rgba(ecd3a0ff) 45deg"; "col.active_border" = "rgba(ca6702ff) rgba(ecd3a0ff) 45deg";
"col.inactive_border" = "rgba(f1dca7d9) rgba(ffe1a8d9) 45deg"; "col.inactive_border" = "rgba(f1dca7d9) rgba(ffe1a8d9) 45deg";
@@ -372,8 +369,8 @@ in {
"2, layout:scrolling, layoutopt:direction:right" "2, layout:scrolling, layoutopt:direction:right"
"name:special, layout:scrolling" "name:special, layout:scrolling"
# used for smart gaps along some windowrules # used for smart gaps along some windowrules
"w[tv1], gapsout:1, gapsin:1" #"w[tv1], gapsout:1, gapsin:1"
"f[1], gapsout:1, gapsin:1" #"f[1], gapsout:1, gapsin:1"
]; ];
# █░█░█ █ █▄░█ █▀▄ █▀█ █░█░█   █▀█ █░█ █░░ █▀▀ █▀ # █░█░█ █ █▄░█ █▀▄ █▀█ █░█░█   █▀█ █░█ █░░ █▀▀ █▀
@@ -432,13 +429,15 @@ in {
"float on, match:class ^(vlc)$" "float on, match:class ^(vlc)$"
"float on, match:class ^(eog)$" "float on, match:class ^(eog)$"
"float on, size 400 175, match:class ^(custom-librewolfprofiles)$" "float on, size 400 175, match:class ^(custom-librewolfprofiles)$"
"float on, size 1050 200, match:class ^(custom-changeAudioOutput)$"
"float on, size 400 175, match:class ^(custom-obsidianvaults)$" "float on, size 400 175, match:class ^(custom-obsidianvaults)$"
"float on, size 600 600, match:initial_class ^(custom-pomodoro)$" "float on, size 600 600, match:initial_class ^(custom-pomodoro)$"
"float on, size 1500 800, match:initial_class ^(custom-bottom)$" "float on, size 1500 800, match:initial_class ^(custom-bottom)$"
"border_size 2, match:float 0, match:workspace w[tv1]" # smart gaps/border is ugly with caelestia-shell
"rounding 1, match:float 0, match:workspace w[tv1]" #"border_size 2, match:float 0, match:workspace w[tv1]"
"border_size 2, match:float 0, match:workspace f[1]" #"rounding 1, match:float 0, match:workspace w[tv1]"
"rounding 1, match:float 0, match:workspace f[1]" #"border_size 2, match:float 0, match:workspace f[1]"
#"rounding 1, match:float 0, match:workspace f[1]"
]; ];
# add a float for tomato when in kitty # add a float for tomato when in kitty
#"plugin:imgborders:noimgborders, tag:noborder" #"plugin:imgborders:noimgborders, tag:noborder"
+1 -5
View File
@@ -1,8 +1,4 @@
{ _: {
config,
pkgs,
...
}: {
programs.kitty = { programs.kitty = {
enable = true; enable = true;
#font.name = nerd-fonts._0xproto; #font.name = nerd-fonts._0xproto;
+5 -9
View File
@@ -1,9 +1,5 @@
# adapted from https://github.com/contre95/dotfiles/blob/main/dotfiles/nixos/programs/librewolf.nix # adapted from https://github.com/contre95/dotfiles/blob/main/dotfiles/nixos/programs/librewolf.nix
{ _: {
pkgs,
config,
...
}: {
home.sessionVariables = { home.sessionVariables = {
MOZ_ENABLE_WAYLAND = 1; MOZ_ENABLE_WAYLAND = 1;
MOZ_USE_XINPUT2 = 1; MOZ_USE_XINPUT2 = 1;
@@ -138,7 +134,7 @@
}; };
"uBlock0@raymondhill.net" = { "uBlock0@raymondhill.net" = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi"; install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
installation_mode = "blocked"; installation_mode = "force_installed";
}; };
"{08d5243b-4236-4a27-984b-1ded22ce01c3}" = { "{08d5243b-4236-4a27-984b-1ded22ce01c3}" = {
install_url = "https://addons.mozilla.org/firefox/downloads/file/3729287/gruvboxgruvboxgruvboxgruvboxgr-1.0.xpi"; install_url = "https://addons.mozilla.org/firefox/downloads/file/3729287/gruvboxgruvboxgruvboxgruvboxgr-1.0.xpi";
@@ -310,19 +306,19 @@
} }
{ {
name = "Signs of AI writing"; name = "Signs of AI writing";
tags = [ "ai" "write"]; tags = ["ai" "write"];
keyword = "AI writing"; keyword = "AI writing";
url = "https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing"; url = "https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing";
} }
{ {
name = "nixpkgs-review-gha"; name = "nixpkgs-review-gha";
tags = [ "nixpkgs-review" "gha" ]; tags = ["nixpkgs-review" "gha"];
keyword = "nixpkgs-review"; keyword = "nixpkgs-review";
url = "https://github.com/tomasriveral/nixpkgs-review-gha/actions/workflows/review.yml"; url = "https://github.com/tomasriveral/nixpkgs-review-gha/actions/workflows/review.yml";
} }
{ {
name = "nixpkgs tracker"; name = "nixpkgs tracker";
tags = [ "nixpkgs" "tracker" ]; tags = ["nixpkgs" "tracker"];
keyword = "nixpkgs tracker"; keyword = "nixpkgs tracker";
url = "https://nixpk.gs/pr-tracker.html"; url = "https://nixpk.gs/pr-tracker.html";
} }
+17 -19
View File
@@ -1,6 +1,4 @@
{ {
config,
pkgs,
pkgs-unstable, pkgs-unstable,
inputs, inputs,
... ...
@@ -21,26 +19,26 @@
enable = true; enable = true;
force = true; force = true;
text = '' text = ''
local buffer = import("micro/buffer") local buffer = import("micro/buffer")
local shell = import("micro/shell") local shell = import("micro/shell")
function vivifyOpen(buf) function vivifyOpen(buf)
local cursor = buf:GetActiveCursor() local cursor = buf:GetActiveCursor()
local line = cursor.Loc.Y + 1 local line = cursor.Loc.Y + 1
shell.ExecCommand("viv", string.format("%s:%d", buf.AbsPath, line)) shell.ExecCommand("viv", string.format("%s:%d", buf.AbsPath, line))
end end
function onBufferOpen(buf) function onBufferOpen(buf)
if os.getenv("MICRO_VIVIFY") ~= "1" then if os.getenv("MICRO_VIVIFY") ~= "1" then
return return
end end
-- only run for real files (not help/log/etc) -- only run for real files (not help/log/etc)
if buf.Type.Kind == buffer.BTDefault then if buf.Type.Kind == buffer.BTDefault then
vivifyOpen(buf) vivifyOpen(buf)
end end
end end
''; '';
}; };
} }
+1 -3
View File
@@ -1,7 +1,5 @@
# see also ../nixos/mullvad.nix # see also ../nixos/mullvad.nix
{ _: {
...
}: {
programs.mullvad-vpn = { programs.mullvad-vpn = {
enable = true; enable = true;
# see https://github.com/mullvad/mullvadvpn-app/blob/main/desktop/packages/mullvad-vpn/src/main/gui-settings.ts for options # see https://github.com/mullvad/mullvadvpn-app/blob/main/desktop/packages/mullvad-vpn/src/main/gui-settings.ts for options
+9 -14
View File
@@ -1,9 +1,4 @@
{ {pkgs-unstable, ...}: {
config,
pkgs,
pkgs-unstable,
...
}: {
programs.neovim = { programs.neovim = {
enable = true; enable = true;
vimAlias = false; vimAlias = false;
@@ -257,7 +252,7 @@
vim.keymap.set("n", "<leader>e<Tab>", function() vim.keymap.set("n", "<leader>e<Tab>", function()
local clients = vim.lsp.get_clients({ name = "ltex" }) local clients = vim.lsp.get_clients({ name = "ltex" })
if #clients > 0 then if #clients > 0 then
-- Stop LTeX -- Stop LTeX
for _, client in ipairs(clients) do for _, client in ipairs(clients) do
@@ -336,26 +331,26 @@
cmd = { "ltex-ls-plus" }, cmd = { "ltex-ls-plus" },
filetypes = { "markdown", "text", "tex", "plaintex" }, filetypes = { "markdown", "text", "tex", "plaintex" },
on_attach = on_attach, on_attach = on_attach,
settings = { settings = {
ltex = { ltex = {
language = "fr", language = "fr",
enabled = { enabled = {
"markdown", "markdown",
"text", "text",
"tex", "tex",
"plaintex", "plaintex",
}, },
completionEnabled = true, completionEnabled = true,
diagnosticSeverity = "information", diagnosticSeverity = "information",
additionalRules = { additionalRules = {
enablePickyRules = false, enablePickyRules = false,
motherTongue = "fr", motherTongue = "fr",
}, },
dictionary = { dictionary = {
["fr"] = { ["fr"] = {
"icelle", "icelle",
@@ -483,9 +478,9 @@
vim.keymap.set("n", "t", function() vim.keymap.set("n", "t", function()
local line = vim.api.nvim_get_current_line() local line = vim.api.nvim_get_current_line()
local result = vim.fn.system({ "custom-syllabes" }, line) local result = vim.fn.system({ "custom-syllabes" }, line)
print(vim.trim(result)) print(vim.trim(result))
end, { desc = "Count syllables (current line)" }) end, { desc = "Count syllables (current line)" })
-- ========================= -- =========================
+1 -5
View File
@@ -1,8 +1,4 @@
{ _: {
config,
pkgs,
...
}: {
programs.obsidian = { programs.obsidian = {
enable = true; enable = true;
+1 -5
View File
@@ -1,8 +1,4 @@
{ _: {
config,
pkgs,
...
}: {
programs.oh-my-posh = { programs.oh-my-posh = {
enable = true; enable = true;
enableZshIntegration = true; enableZshIntegration = true;
+1 -5
View File
@@ -1,8 +1,4 @@
{ _: {
config,
pkgs,
...
}: {
programs.zsh.oh-my-zsh = { programs.zsh.oh-my-zsh = {
enable = true; enable = true;
theme = "jonathan"; theme = "jonathan";
@@ -1,6 +1,4 @@
{ _:
...
}:
# see ../../docs/printing.md # see ../../docs/printing.md
{ {
home.file.".local/share/applications/org.quickshell.desktop" = { home.file.".local/share/applications/org.quickshell.desktop" = {
@@ -27,6 +25,6 @@
Icon=printer Icon=printer
Categories=Utility; Categories=Utility;
StartupNotify=true StartupNotify=true
''; '';
}; };
} }
+1 -4
View File
@@ -1,7 +1,4 @@
{ _: {
...
}:
{
home.username = "tomasr"; home.username = "tomasr";
home.homeDirectory = "/home/tomasr"; home.homeDirectory = "/home/tomasr";
+1 -5
View File
@@ -1,9 +1,5 @@
# pulled from https://codeberg.org/zacoons/rivendell-hyprdots # pulled from https://codeberg.org/zacoons/rivendell-hyprdots
{ _: {
config,
pkgs,
...
}: {
qt.enable = true; qt.enable = true;
programs.quickshell = { programs.quickshell = {
systemd.enable = true; systemd.enable = true;
+1 -4
View File
@@ -1,7 +1,4 @@
{ {pkgs-unstable, ...}: {
pkgs-unstable,
...
}: {
programs.rclone = { programs.rclone = {
enable = true; enable = true;
package = pkgs-unstable.rclone; package = pkgs-unstable.rclone;
+1 -5
View File
@@ -1,8 +1,4 @@
{ _: {
config,
pkgs,
...
}: {
programs.ripgrep = { programs.ripgrep = {
enable = true; enable = true;
arguments = [ arguments = [
+1 -5
View File
@@ -1,8 +1,4 @@
{ _: {
config,
pkgs,
...
}: {
programs.rofi = { programs.rofi = {
enable = true; enable = true;
theme = "gruvbox-dark-hard"; theme = "gruvbox-dark-hard";
+22 -25
View File
@@ -1,32 +1,29 @@
{ _: {
pkgs-unstable,
...
}: {
home.packages = [ home.packages = [
#pkgs-unstable.sbb-tui #pkgs-unstable.sbb-tui
]; ];
home.file.".config/sbb-tui/config.yaml" = { home.file.".config/sbb-tui/config.yaml" = {
enable = true; enable = true;
# Gruvbox (from https://github.com/Necrom4/sbb-tui/blob/master/docs/themes.md) # Gruvbox (from https://github.com/Necrom4/sbb-tui/blob/master/docs/themes.md)
text = '' text = ''
ui: ui:
nerdfont: true nerdfont: true
theme: theme:
text: "#EBDBB2" text: "#EBDBB2"
textMuted: "#928374" textMuted: "#928374"
error: "#FB4934" error: "#FB4934"
warning: "#FB4934" warning: "#FB4934"
borderFocused: "#FABD2F" borderFocused: "#FABD2F"
borderUnfocused: "#504945" borderUnfocused: "#504945"
badgeKeyFg: "#282828" badgeKeyFg: "#282828"
badgeKeyBg: "#FABD2F" badgeKeyBg: "#FABD2F"
badgeVehicleFg: "#EBDBB2" badgeVehicleFg: "#EBDBB2"
badgeVehicleBg: "#458588" badgeVehicleBg: "#458588"
badgeModelFg: "#282828" badgeModelFg: "#282828"
badgeModelBg: "#FB4934" badgeModelBg: "#FB4934"
badgeCompanyFg: "#282828" badgeCompanyFg: "#282828"
badgeCompanyBg: "#EBDBB2" badgeCompanyBg: "#EBDBB2"
logo: "#EBDBB2" logo: "#EBDBB2"
''; '';
}; };
} }
+1 -5
View File
@@ -1,8 +1,4 @@
{ _: {
config,
pkgs,
...
}: {
programs.ssh = { programs.ssh = {
enable = true; enable = true;
enableDefaultConfig = false; # will be removed in the futur. Removes evaluation warning enableDefaultConfig = false; # will be removed in the futur. Removes evaluation warning
+1 -5
View File
@@ -1,8 +1,4 @@
{ _: {
config,
pkgs,
...
}: {
programs.swaylock = { programs.swaylock = {
enable = true; enable = true;
settings = { settings = {
+1 -5
View File
@@ -1,8 +1,4 @@
{ _: {
config,
pkgs,
...
}: {
services.swaync = { services.swaync = {
enable = true; enable = true;
}; };
+1 -5
View File
@@ -1,8 +1,4 @@
{ _: {
config,
pkgs,
...
}: {
programs.thunderbird = { programs.thunderbird = {
enable = true; enable = true;
profiles.tomasr = { profiles.tomasr = {
+18 -21
View File
@@ -1,26 +1,23 @@
{ {pkgs-unstable, ...}: {
pkgs-unstable,
...
}: {
home.file.".config/vivify/config.json" = { home.file.".config/vivify/config.json" = {
enable = true; enable = true;
text = '' text = ''
{ {
"browserOptions": { "browserOptions": {
"name": "qutebrowser", "name": "qutebrowser",
"arguments": ["-T"] "arguments": ["-T"]
} }
}''; }'';
}; };
home.packages = [ home.packages = [
pkgs-unstable.vivify pkgs-unstable.vivify
]; ];
programs.qutebrowser = { programs.qutebrowser = {
enable = true; enable = true;
settings = { settings = {
auto_save.session = false; auto_save.session = false;
changelog_after_upgrade = "never"; changelog_after_upgrade = "never";
content.cookies.accept = "never"; content.cookies.accept = "never";
};
}; };
};
} }
+1 -5
View File
@@ -1,8 +1,4 @@
{ _: {
config,
pkgs,
...
}: {
programs.waybar = { programs.waybar = {
enable = true; enable = true;
settings = [ settings = [
+1 -5
View File
@@ -1,8 +1,4 @@
{ _: let
config,
pkgs,
...
}: let
wallpaper = ../../assets/wallpaper1.jpg; wallpaper = ../../assets/wallpaper1.jpg;
lock = ../../assets/lock.png; lock = ../../assets/lock.png;
lock-hover = ../../assets/lock-hover.png; lock-hover = ../../assets/lock-hover.png;
+1 -5
View File
@@ -1,8 +1,4 @@
{ _: {
config,
pkgs,
...
}: {
programs.zoxide = { programs.zoxide = {
enable = true; enable = true;
enableZshIntegration = true; enableZshIntegration = true;
+1 -5
View File
@@ -1,8 +1,4 @@
{ _: {
config,
pkgs,
...
}: {
programs.zsh = { programs.zsh = {
enable = true; enable = true;
autosuggestion.enable = true; autosuggestion.enable = true;
+1 -1
View File
@@ -1,4 +1,4 @@
{...}: { _: {
services.displayManager.ly = { services.displayManager.ly = {
enable = true; enable = true;
settings = { settings = {
+1 -5
View File
@@ -1,8 +1,4 @@
{ {pkgs, ...}: {
pkgs,
...
}:
{
# Configure keymap in X11 # Configure keymap in X11
services.xserver.xkb = { services.xserver.xkb = {
layout = "ch"; layout = "ch";
+1 -5
View File
@@ -1,8 +1,4 @@
{ {pkgs, ...}: {
config,
pkgs,
...
}: {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
(pkgs.anki.withAddons [ (pkgs.anki.withAddons [
(pkgs.ankiAddons.recolor.withConfig { (pkgs.ankiAddons.recolor.withConfig {
+2 -6
View File
@@ -1,9 +1,4 @@
{ {pkgs, ...}: {
pkgs,
pkgs-unstable,
...
}:
{
# Enable sound with pipewire. # Enable sound with pipewire.
services.pulseaudio.enable = false; services.pulseaudio.enable = false;
security.rtkit.enable = true; security.rtkit.enable = true;
@@ -20,6 +15,7 @@
#media-session.enable = true; #media-session.enable = true;
}; };
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
(pkgs.callPackage ../../modules/scripts/changeAudioOutput.nix {})
kdePackages.okular kdePackages.okular
kdePackages.dolphin kdePackages.dolphin
pulseaudio # sound server pulseaudio # sound server
+1 -5
View File
@@ -1,8 +1,4 @@
{ {pkgs, ...}: {
pkgs,
...
}:
{
hardware.bluetooth.enable = true; hardware.bluetooth.enable = true;
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
blueman # GTK-based Bluetooth Manager blueman # GTK-based Bluetooth Manager
+1 -2
View File
@@ -4,8 +4,7 @@
pkgs, pkgs,
pkgs-unstable, pkgs-unstable,
... ...
}: }: {
{
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
chromium # used only to flash the firmware on my framework laptop 16 (keyboard.frame.work) as only chromium based browser support webHID. chromium # used only to flash the firmware on my framework laptop 16 (keyboard.frame.work) as only chromium based browser support webHID.
pkgs-unstable.tor-browser pkgs-unstable.tor-browser
+2 -3
View File
@@ -2,8 +2,7 @@
pkgs, pkgs,
pkgs-unstable, pkgs-unstable,
... ...
}: }: {
{
programs.nix-ld.enable = true; #Run unpatched dynamic binaries on NixOS. For example lets run ./a.out from gcc programs.nix-ld.enable = true; #Run unpatched dynamic binaries on NixOS. For example lets run ./a.out from gcc
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
gcc gcc
@@ -16,7 +15,7 @@
scipy scipy
])) ]))
python313Packages.pygments # used for ccat (comment of colorize plugin from oh-my-zsh) python313Packages.pygments # used for ccat (comment of colorize plugin from oh-my-zsh)
pkg-config pkg-config
gdb gdb
raylib raylib
glfw # raylib and some dependecies glfw # raylib and some dependecies
+2 -6
View File
@@ -1,8 +1,4 @@
{ {pkgs, ...}: {
pkgs,
...
}:
{
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
gnome-disk-utility gnome-disk-utility
udiskie # removable disk automounter for udisks udiskie # removable disk automounter for udisks
@@ -10,6 +6,6 @@
]; ];
# removes rclone error # removes rclone error
programs.fuse.userAllowOther = true; programs.fuse.userAllowOther = true;
programs.fuse.enable = true; programs.fuse.enable = true;
} }
+3 -6
View File
@@ -1,11 +1,8 @@
{ {pkgs, ...}: {
pkgs,
...
}:
{
documentation.man.generateCaches = true; # used for the man script documentation.man.generateCaches = true; # used for the man script
environment.pathsToLink = [ # see https://wiki.nixos.org/wiki/Documentation_Gaps#How_do_manpages_work?_Or:_environment.pathsToLink_and_buildEnv environment.pathsToLink = [
# see https://wiki.nixos.org/wiki/Documentation_Gaps#How_do_manpages_work?_Or:_environment.pathsToLink_and_buildEnv
"/share/applications" "/share/applications"
"/share/xdg-desktop-portal" "/share/xdg-desktop-portal"
]; ];
+1 -5
View File
@@ -1,8 +1,4 @@
{ {pkgs, ...}: {
pkgs,
...
}:
{
# fonts # fonts
fonts.packages = with pkgs; [ fonts.packages = with pkgs; [
nerd-fonts._0xproto nerd-fonts._0xproto
+1 -5
View File
@@ -1,8 +1,4 @@
{ {pkgs, ...}: {
pkgs,
...
}:
{
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
texlab texlab
ltex-ls-plus ltex-ls-plus
+1 -1
View File
@@ -1,4 +1,4 @@
{...}: { _: {
# a minimal ly config as the big config (ly.nix) didnt worked # a minimal ly config as the big config (ly.nix) didnt worked
services.displayManager.ly = { services.displayManager.ly = {
enable = true; enable = true;
+1 -4
View File
@@ -1,8 +1,5 @@
# see also ../home-manager/mullvad.nix # see also ../home-manager/mullvad.nix
{ {pkgs-unstable, ...}: {
pkgs-unstable,
...
}: {
services.mullvad-vpn = { services.mullvad-vpn = {
enable = true; enable = true;
package = pkgs-unstable.mullvad-vpn; package = pkgs-unstable.mullvad-vpn;
+9 -7
View File
@@ -21,12 +21,14 @@
nix.settings.experimental-features = ["nix-command" "flakes"]; nix.settings.experimental-features = ["nix-command" "flakes"];
environment.systemPackages = with pkgs-unstable; [ environment.systemPackages = with pkgs-unstable; [
nixpkgs-review nixpkgs-review
nixfmt-tree nixfmt-tree
treefmt treefmt
nixd nixd
deadnix deadnix
alejandra alejandra
vimPluginsUpdater # used for building plugins vimPluginsUpdater # used for building plugins
nix-index
statix
]; ];
} }
+1 -6
View File
@@ -1,9 +1,5 @@
# notifications server is set by caelestia-shell. See ../home-manager/caelestia.nix # notifications server is set by caelestia-shell. See ../home-manager/caelestia.nix
{ {pkgs, ...}: {
pkgs,
...
}:
{
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
libnotify # Library that sends desktop notifications to a notification daemon libnotify # Library that sends desktop notifications to a notification daemon
socat # Utility for bidirectional data transfer between two independent data channels (used to communicate between hyprland and swww to change wallpapers dinamically) socat # Utility for bidirectional data transfer between two independent data channels (used to communicate between hyprland and swww to change wallpapers dinamically)
@@ -15,6 +11,5 @@
(pkgs.callPackage ../../hostsModules/laptop/scripts/checkMatrix.nix {}) (pkgs.callPackage ../../hostsModules/laptop/scripts/checkMatrix.nix {})
(pkgs.callPackage ../../modules/scripts/gitnotify.nix {}) # check if git is set up (pkgs.callPackage ../../modules/scripts/gitnotify.nix {}) # check if git is set up
(pkgs.callPackage ../../modules/scripts/checkKdrive.nix {}) # check if kdrive is set up with rclone (pkgs.callPackage ../../modules/scripts/checkKdrive.nix {}) # check if kdrive is set up with rclone
]; ];
} }
+1 -5
View File
@@ -1,8 +1,4 @@
{ {pkgs, ...}: {
pkgs,
...
}:
{
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
libreoffice libreoffice
birdtray birdtray
+1 -2
View File
@@ -3,8 +3,7 @@
pkgs, pkgs,
pkgs-unstable, pkgs-unstable,
... ...
}: }: {
{
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
gnome-calculator gnome-calculator
snapshot snapshot
+15 -19
View File
@@ -1,15 +1,11 @@
{ {pkgs, ...}: {
config,
pkgs,
...
}: {
#https://wiki.nixos.org/wiki/Printing #https://wiki.nixos.org/wiki/Printing
services.avahi = { services.avahi = {
enable = true; enable = true;
nssmdns4 = true; nssmdns4 = true;
openFirewall = true; openFirewall = true;
}; };
# Enable CUPS to print documents. # Enable CUPS to print documents.
services.printing = { services.printing = {
enable = true; enable = true;
@@ -23,21 +19,21 @@
]; ];
}; };
services.ipp-usb.enable = true; services.ipp-usb.enable = true;
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
kdePackages.print-manager kdePackages.print-manager
ghostscript ghostscript
hplipWithPlugin hplipWithPlugin
]; ];
hardware.printers = { hardware.printers = {
ensurePrinters = [ ensurePrinters = [
{ {
name = "HP_OfficeJet_Pro_7740"; name = "HP_OfficeJet_Pro_7740";
location = "Home"; location = "Home";
deviceUri = "hp:/usb/OfficeJet_Pro_7740_series"; deviceUri = "hp:/usb/OfficeJet_Pro_7740_series";
model = "drv:///hp/hpcups.drv/hp-officejet_pro_7740_series.ppd"; model = "drv:///hp/hpcups.drv/hp-officejet_pro_7740_series.ppd";
} }
]; ];
ensureDefaultPrinter = "HP_OfficeJet_Pro_7740"; ensureDefaultPrinter = "HP_OfficeJet_Pro_7740";
}; };
} }
+2 -6
View File
@@ -1,14 +1,10 @@
# most of the themeing are in the home-manager modules. This just installs some packages needed # most of the themeing are in the home-manager modules. This just installs some packages needed
{ {pkgs, ...}: {
pkgs,
...
}:
{
qt.enable = true; qt.enable = true;
# to resolve this https://wiki.nixos.org/wiki/Home_Manager#I_cannot_set_GNOME_or_Gtk_themes_via_Home_Manager # to resolve this https://wiki.nixos.org/wiki/Home_Manager#I_cannot_set_GNOME_or_Gtk_themes_via_Home_Manager
programs.dconf.enable = true; programs.dconf.enable = true;
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
swww #wallpaper daemon swww #wallpaper daemon
gruvbox-gtk-theme gruvbox-gtk-theme
+12 -5
View File
@@ -3,8 +3,7 @@
pkgs-unstable, pkgs-unstable,
inputs, inputs,
... ...
}: }: {
{
services.dbus.enable = true; services.dbus.enable = true;
security.polkit.enable = true; security.polkit.enable = true;
home-manager = { home-manager = {
@@ -42,13 +41,21 @@
services.upower.enable = true; services.upower.enable = true;
# removes need for password for nixos-rebuild # removes need for password for nixos-rebuild
security.sudo.extraRules = [ security.sudo.extraRules = [
{ {
users = [ "tomasr" ]; users = ["tomasr"];
commands = [ commands = [
{ {
command = "/run/current-system/sw/bin/nixos-rebuild"; command = "/run/current-system/sw/bin/nixos-rebuild";
options = [ "NOPASSWD" ]; options = ["NOPASSWD"];
}
{
command = "${pkgs.nixos-rebuild}/bin/nixos-rebuild";
options = ["NOPASSWD"];
}
{
command = "${pkgs-unstable.nixos-rebuild}/bin/nixos-rebuild";
options = ["NOPASSWD"];
} }
]; ];
} }
+2 -3
View File
@@ -3,8 +3,7 @@
pkgs-unstable, pkgs-unstable,
pkgs, pkgs,
... ...
}: }: {
{
# Enable the X11 windowing system. # Enable the X11 windowing system.
services.xserver.enable = true; services.xserver.enable = true;
@@ -27,7 +26,7 @@
xwayland.enable = true; xwayland.enable = true;
}; };
xdg.portal = { xdg.portal = {
enable = true; enable = true;
extraPortals = [ extraPortals = [
pkgs.xdg-desktop-portal-wlr pkgs.xdg-desktop-portal-wlr
+1 -6
View File
@@ -7,9 +7,7 @@
extra-cmake-modules, extra-cmake-modules,
shared-mime-info, shared-mime-info,
wrapQtAppsHook, wrapQtAppsHook,
qtbase, qtbase,
karchive, karchive,
kcompletion, kcompletion,
kconfig, kconfig,
@@ -24,9 +22,7 @@
ktextwidgets, ktextwidgets,
kxmlgui, kxmlgui,
syntax-highlighting, syntax-highlighting,
gsl, gsl,
poppler, poppler,
fftw, fftw,
hdf5, hdf5,
@@ -41,7 +37,6 @@
qtserialport, qtserialport,
discount, discount,
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "labplot"; pname = "labplot";
version = "2.10.1"; version = "2.10.1";
@@ -121,7 +116,7 @@ stdenv.mkDerivation rec {
lgpl3Plus lgpl3Plus
mit mit
]; ];
maintainers = [ "tomasriveral" ]; maintainers = ["tomasriveral"];
mainProgram = "labplot2"; mainProgram = "labplot2";
platforms = lib.platforms.unix; platforms = lib.platforms.unix;
}; };
+6 -6
View File
@@ -1,10 +1,10 @@
{ lib {
, python3Packages lib,
, fetchFromGitLab python3Packages,
, frhyme fetchFromGitLab,
, haspirater frhyme,
haspirater,
}: }:
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "plint"; pname = "plint";
+5 -6
View File
@@ -3,9 +3,8 @@
buildGoModule, buildGoModule,
fetchFromGitHub, fetchFromGitHub,
nix-update-script, nix-update-script,
versionCheckHook versionCheckHook,
}: }:
buildGoModule (finalAttrs: { buildGoModule (finalAttrs: {
pname = "sbb-tui"; pname = "sbb-tui";
version = "1.14.2"; version = "1.14.2";
@@ -24,21 +23,21 @@ buildGoModule (finalAttrs: {
"-w" "-w"
"-X main.version=${finalAttrs.version}" "-X main.version=${finalAttrs.version}"
]; ];
allowGoReference = true; allowGoReference = true;
doCheck = true; doCheck = true;
nativeCheckInputs = [ versionCheckHook ]; nativeCheckInputs = [versionCheckHook];
passthru.updateScript = nix-update-script { }; passthru.updateScript = nix-update-script {};
meta = { meta = {
description = "TUI client for Switzerland's public transport timetables, inspired by SBB/CFF/FFS app"; description = "TUI client for Switzerland's public transport timetables, inspired by SBB/CFF/FFS app";
homepage = "https://github.com/Necrom4/sbb-tui"; homepage = "https://github.com/Necrom4/sbb-tui";
license = lib.licenses.mit; license = lib.licenses.mit;
platforms = lib.platforms.unix; platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ tomasrivera ]; maintainers = with lib.maintainers; [tomasrivera];
mainProgram = "sbb-tui"; mainProgram = "sbb-tui";
}; };
}) })
+7 -8
View File
@@ -10,7 +10,6 @@
zip, zip,
file, file,
}: }:
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "vivify"; pname = "vivify";
version = "0.14.0"; version = "0.14.0";
@@ -49,11 +48,11 @@ stdenv.mkDerivation (finalAttrs: {
wrapProgram $out/bin/viv \ wrapProgram $out/bin/viv \
--prefix PATH : ${ --prefix PATH : ${
lib.makeBinPath [ lib.makeBinPath [
nodejs nodejs
file file
] ]
} }
''; '';
nativeBuildInputs = [ nativeBuildInputs = [
@@ -69,7 +68,7 @@ stdenv.mkDerivation (finalAttrs: {
# (segmentation fault) # (segmentation fault)
dontStrip = true; dontStrip = true;
passthru.updateScript = nix-update-script { }; passthru.updateScript = nix-update-script {};
meta = { meta = {
description = "Live Markdown viewer"; description = "Live Markdown viewer";
@@ -81,7 +80,7 @@ stdenv.mkDerivation (finalAttrs: {
homepage = "https://github.com/jannis-baum/Vivify"; homepage = "https://github.com/jannis-baum/Vivify";
changelog = "https://github.com/jannis-baum/Vivify/releases/tag/v${finalAttrs.src.tag}"; changelog = "https://github.com/jannis-baum/Vivify/releases/tag/v${finalAttrs.src.tag}";
license = lib.licenses.gpl3; license = lib.licenses.gpl3;
maintainers = with lib.maintainers; [ skohtv ]; maintainers = with lib.maintainers; [skohtv];
platforms = lib.platforms.linux; platforms = lib.platforms.linux;
mainProgram = "viv"; mainProgram = "viv";
}; };
+2 -3
View File
@@ -3,7 +3,6 @@
buildGoModule, buildGoModule,
fetchFromGitHub, fetchFromGitHub,
}: }:
buildGoModule { buildGoModule {
pname = "z13ctl"; pname = "z13ctl";
version = "1.1.6"; version = "1.1.6";
@@ -17,7 +16,7 @@ buildGoModule {
vendorHash = "sha256-ftkcianIR36PNAoMOVuk4lUr7goWUcHhjyNseUraJU0="; vendorHash = "sha256-ftkcianIR36PNAoMOVuk4lUr7goWUcHhjyNseUraJU0=";
subPackages = [ "." ]; subPackages = ["."];
__structuredAttrs = true; __structuredAttrs = true;
@@ -27,6 +26,6 @@ buildGoModule {
license = licenses.asl20; license = licenses.asl20;
platforms = platforms.linux; platforms = platforms.linux;
mainProgram = "z13ctl"; mainProgram = "z13ctl";
maintainers = with maintainers; [ badheuristic ]; maintainers = with maintainers; [badheuristic];
}; };
} }
+22
View File
@@ -0,0 +1,22 @@
{
writeShellApplication,
fzf,
pulseaudio,
jq,
...
}:
writeShellApplication {
name = "custom-changeAudioOutput";
runtimeInputs = [
fzf
pulseaudio
jq
];
text = ''
select=$(pactl -f json list sinks | jq -r '.[].name' | fzf)
if [[ -n "$select" ]]; then
pactl set-default-sink "$select"
fi
pkill -f "kitty.*Select audio output"
'';
}
+21 -13
View File
@@ -13,21 +13,29 @@ writeShellApplication {
libnotify libnotify
]; ];
text = '' text = ''
set +e
output=$(rclone lsd kdrive: 2>&1) # waits for an internet connection. It pings both Google DNS and Cloudfare dns in case one of them is down
status=$? until ping -c1 -W1 1.1.1.1 >/dev/null 2>&1 || \
ping -c1 -W1 8.8.8.8 >/dev/null 2>&1
do
sleep 1
done
set -e set +e
if [ $status -eq 0 ]; then output=$(rclone lsd kdrive: 2>&1)
echo "kdrive OK" status=$?
else
echo "kdrive rclone failed with error: $output" set -e
notify-send "rclone kdrive failed" "$output"
matrix-commander-rs --verbose -m "rclone kdrive failed.<br>Error: <pre>$output</pre><br><a href=\"https://matrix.to/#/@notificationbot_0000:matrix.org\">@notificationbot_0000</a>" \ if [ $status -eq 0 ]; then
--html \ echo "kdrive OK"
-r "\!7j-78_02dHROeLj4Ns8F12eo4IiZGv4zNsQ_1-WlyIU" else
fi echo "kdrive rclone failed with error: $output"
notify-send "rclone kdrive failed" "$output"
matrix-commander-rs --verbose -m "rclone kdrive failed.<br>Error: <pre>$output</pre><br><a href=\"https://matrix.to/#/@notificationbot_0000:matrix.org\">@notificationbot_0000</a>" \
--html \
-r "\!7j-78_02dHROeLj4Ns8F12eo4IiZGv4zNsQ_1-WlyIU"
fi
''; '';
} }
-1
View File
@@ -1,7 +1,6 @@
{ {
writeShellApplication, writeShellApplication,
zsh, zsh,
kitty,
fzf, fzf,
... ...
}: }:
+1 -7
View File
@@ -1,11 +1,5 @@
# used for the terminal autostart. Needs to get cleared and recall fastfetch so that the bar from oh-my-zsh get resized # used for the terminal autostart. Needs to get cleared and recall fastfetch so that the bar from oh-my-zsh get resized
{ {writeShellApplication, ...}:
writeShellApplication,
hyprland,
gawk,
libnotify,
...
}:
writeShellApplication { writeShellApplication {
name = "custom-performance"; name = "custom-performance";
runtimeInputs = [ runtimeInputs = [
+26 -18
View File
@@ -1,29 +1,33 @@
{ pkgs, python3Packages, ... }: {
pkgs,
python3Packages,
...
}:
pkgs.writers.writePython3Bin "custom-syllabes" { pkgs.writers.writePython3Bin "custom-syllabes" {
libraries = [ libraries = [
python3Packages.pyphen python3Packages.pyphen
]; ];
} '' } ''
import sys import sys
import pyphen import pyphen
dic = pyphen.Pyphen(lang="fr") dic = pyphen.Pyphen(lang="fr")
text = sys.stdin.read().strip() text = sys.stdin.read().strip()
chunks = [] chunks = []
total = 0 total = 0
for w in text.split(): for w in text.split():
hyphenated = dic.inserted(w) hyphenated = dic.inserted(w)
parts = hyphenated.split("-") parts = hyphenated.split("-")
chunks.append("/".join(parts)) chunks.append("/".join(parts))
total += len(parts) total += len(parts)
print(f"{total} ({'/'.join(chunks)})") print(f"{total} ({'/'.join(chunks)})")
'' ''
/* used IPA but had a deprecated dependency /*
used IPA but had a deprecated dependency
{ pkgs, python3Packages, ... }: { pkgs, python3Packages, ... }:
pkgs.writers.writePython3Bin "custom-syllabes" { pkgs.writers.writePython3Bin "custom-syllabes" {
@@ -56,8 +60,10 @@ for word in text.split():
chunks.append(f"{word}/{ipa}") chunks.append(f"{word}/{ipa}")
print(f"{total} ({' | '.join(chunks)})") print(f"{total} ({' | '.join(chunks)})")
''*/ ''
/*{ pkgs, ... }: */
/*
{ pkgs, ... }:
let let
lexique = pkgs.fetchurl { lexique = pkgs.fetchurl {
@@ -170,4 +176,6 @@ def main():
if __name__ == "__main__": if __name__ == "__main__":
main() main()
''*/ ''
*/
@@ -12,7 +12,7 @@
"{+KC_LCTL}{+KC_LALT}7{-KC_LALT}{-KC_LCTL}", "{+KC_LCTL}{+KC_LALT}7{-KC_LALT}{-KC_LCTL}",
"{+KC_LCTL}{+KC_LALT}8{-KC_LALT}{-KC_LCTL}", "{+KC_LCTL}{+KC_LALT}8{-KC_LALT}{-KC_LCTL}",
"{+KC_LCTL}{+KC_LALT}9{-KC_LALT}{-KC_LCTL}", "{+KC_LCTL}{+KC_LALT}9{-KC_LALT}{-KC_LCTL}",
"", "{+KC_LCTL}{+KC_LSFT}{+KC_LALT}0{-KC_LALT}{-KC_LSFT}{-KC_LCTL}",
"", "",
"", "",
"", "",
@@ -25,19 +25,19 @@
"MACRO(0)", "MACRO(0)",
"MACRO(9)", "MACRO(9)",
"KC_NO", "KC_NO",
"MACRO(5)", "MACRO(10)",
"MACRO(1)", "MACRO(1)",
"KC_NO", "KC_NO",
"KC_NO", "KC_NO",
"KC_NO", "KC_NO",
"MACRO(5)",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"MACRO(8)", "MACRO(8)",
"KC_NO", "KC_NO",
"KC_NO", "KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"KC_NO",
"MACRO(6)", "MACRO(6)",
"MACRO(7)", "MACRO(7)",
"KC_NO", "KC_NO",