mirror of
https://github.com/tomasriveral/nixos.git
synced 2026-08-12 02:28:37 +02:00
snapshot pre-cleanup-2026-05-23T19-39-41Z
This commit is contained in:
@@ -24,22 +24,27 @@
|
||||
import-tree.url = "github:vic/import-tree"; # imports ./modules recursively
|
||||
};
|
||||
outputs = inputs @ { flake-parts, ... }:
|
||||
/*@ inputs: let
|
||||
unfreePkgs = [
|
||||
"hplip"
|
||||
"vivify.vim"
|
||||
"cheatsheet.nvim"
|
||||
];
|
||||
|
||||
mkUnfreePredicate = pkg:
|
||||
builtins.elem (nixpkgs.lib.getName pkg) unfreePkgs;
|
||||
|
||||
pkgs-unstable = import nixpkgs-unstable {
|
||||
inherit system;
|
||||
|
||||
config.allowUnfreePredicate = mkUnfreePredicate;
|
||||
};
|
||||
in */
|
||||
flake-parts.lib.mkFlake { inherit inputs; }
|
||||
(inputs.import-tree ./modules);
|
||||
({
|
||||
flake = let
|
||||
system = "x86_64-linux";
|
||||
unfreePkgs = [
|
||||
"hplip"
|
||||
"vivify.vim"
|
||||
"cheatsheet.nvim"
|
||||
];
|
||||
mkUnfreePredicate = pkg:
|
||||
builtins.elem (inputs.nixpkgs.lib.getName pkg) unfreePkgs;
|
||||
mkPkgs = nixpkgsInput:
|
||||
import nixpkgsInput {
|
||||
inherit system;
|
||||
config.allowUnfreePredicate = mkUnfreePredicate;
|
||||
};
|
||||
pkgs = mkPkgs inputs.nixpkgs;
|
||||
pkgs-unstable = mkPkgs inputs.nixpkgs-unstable;
|
||||
in {
|
||||
inherit pkgs pkgs-unstable;
|
||||
};
|
||||
}
|
||||
// (inputs.import-tree ./modules));
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ inputs, ... }: {
|
||||
{ ... }: {
|
||||
flake.nixosModules.anki = { pkgs, ... }: {
|
||||
environment.systemPackages = [
|
||||
(pkgs.anki.withAddons [
|
||||
|
||||
@@ -3,8 +3,7 @@
|
||||
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.
|
||||
pkgs-unstable.tor-browser
|
||||
self.packages.custom-librewolfprofiles
|
||||
(pkgs.callPackage ../../modules/scripts/librewolfprofiles.nix {}) # fzf librewolf profile selector
|
||||
self.packages.${pkgs.system}.custom-librewolfprofiles
|
||||
];
|
||||
};
|
||||
flake.homeModules.librewolf = { ... }: {
|
||||
@@ -645,35 +644,4 @@
|
||||
};
|
||||
};
|
||||
};
|
||||
flake.packages.custom-librewolfprofiles = { pkgs, ... }:
|
||||
# fzf librewolf profile selector
|
||||
pkgs.writeShellApplication {
|
||||
name = "custom-librewolfprofiles";
|
||||
runtimeInputs = with pkgs; [
|
||||
zsh
|
||||
fzf
|
||||
];
|
||||
text = ''
|
||||
# List of profiles
|
||||
profiles=("work" "other" "private window")
|
||||
|
||||
# Use fzf to select
|
||||
selected=$(printf "%s\n" "''${profiles[@]}" | fzf --height 6 --reverse --prompt="Select LibreWolf profile:")
|
||||
|
||||
# If user cancels, exit
|
||||
[[ -z "$selected" ]] && exit 0
|
||||
|
||||
# Launch LibreWolf detached, keeping environment
|
||||
if [[ "$selected" == "private window" ]]; then
|
||||
setsid librewolf --private-window --no-remote >/dev/null 2>&1 &
|
||||
pkill -f "kitty.*Select LibreWolf profile"
|
||||
else
|
||||
setsid librewolf -P "$selected" --no-remote >/dev/null 2>&1 &
|
||||
pkill -f "kitty.*Select LibreWolf profile"
|
||||
fi
|
||||
|
||||
# Exit the kitty terminal after selection
|
||||
exit
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
self.packages.${pkgs.system}.custom-dontkillsteam # kill app (if not steam or tomato-c
|
||||
self.packages.${pkgs.system}.custom-killall # kill all windows except focused window
|
||||
xdg-utils
|
||||
home-manager
|
||||
];
|
||||
# enable hyprland WM
|
||||
programs.hyprland = {
|
||||
|
||||
@@ -1,11 +1,17 @@
|
||||
{ self, ...}: {
|
||||
{ pkgs-unstable, ...}: { # for some reason perSystem can't expose pkgs-unstable so we need to expose it here
|
||||
# -----------------------------------------------------
|
||||
# Here are a bunch of scripts that interact with hyprland
|
||||
# Some are still used. Some are broken. Some are deprecated. But I do still keep them in case I want to go back to old tools
|
||||
# -----------------------------------------------------
|
||||
perSystem = { pkgs, ... }: let
|
||||
wallpaper1 = ../../assets/wallpaper1.jpg;
|
||||
wallpaper2 = ../../assets/wallpaper2.jpg;
|
||||
wallpaper3 = ../../assets/wallpaper3.jpg;
|
||||
wallpaper4 = ../../assets/wallpaper4.jpg;
|
||||
wallpaper5 = ../../assets/wallpaper5.jpg;
|
||||
in {
|
||||
# kills the app, but when it's steam or custom-pomodoro
|
||||
flake.packages.custom-dontkillsteam = { pkgs, ... }:
|
||||
pkgs.writeShellApplication {
|
||||
packages.custom-dontkillsteam = pkgs.writeShellApplication {
|
||||
name = "custom-dontkillsteam";
|
||||
runtimeInputs = with pkgs; [
|
||||
hyprland
|
||||
@@ -21,12 +27,11 @@
|
||||
|
||||
'';
|
||||
};
|
||||
flake.packages.custom-killall = { pkgs, pkgs-unstable, ...}:
|
||||
pkgs.writeShellApplication {
|
||||
packages.custom-killall = pkgs.writeShellApplication {
|
||||
name = "custom-killall";
|
||||
runtimeInputs = with pkgs; [
|
||||
pkgs-unstable.hyprland
|
||||
jq
|
||||
runtimeInputs = [
|
||||
pkgs.hyprland # for some reason pkgs-unstable doesn't work here
|
||||
pkgs.jq
|
||||
];
|
||||
text = ''
|
||||
active_workspace_id=$(hyprctl activeworkspace -j | jq -r '.id')
|
||||
@@ -39,15 +44,7 @@
|
||||
xargs -r kill
|
||||
'';
|
||||
};
|
||||
flake.packages.custom-wallpaper = { pkgs, ... }:
|
||||
let
|
||||
wallpaper1 = ../../assets/wallpaper1.jpg;
|
||||
wallpaper2 = ../../assets/wallpaper2.jpg;
|
||||
wallpaper3 = ../../assets/wallpaper3.jpg;
|
||||
wallpaper4 = ../../assets/wallpaper4.jpg;
|
||||
wallpaper5 = ../../assets/wallpaper5.jpg;
|
||||
in
|
||||
pkgs.writeShellApplication {
|
||||
packages.custom-wallpaper = pkgs.writeShellApplication {
|
||||
name = "custom-wallpaper";
|
||||
runtimeInputs = with pkgs; [
|
||||
socat
|
||||
@@ -84,8 +81,7 @@
|
||||
socat -U - UNIX-CONNECT:"$XDG_RUNTIME_DIR"/hypr/"$HYPRLAND_INSTANCE_SIGNATURE"/.socket2.sock | while read -r line; do handle "$line"; done
|
||||
'';
|
||||
};
|
||||
flake.packages.custom-launch = { pkgs, ... }:
|
||||
pkgs.writeShellApplication {
|
||||
packages.custom-launch = pkgs.writeShellApplication {
|
||||
# used for the terminal autostart. Needs to get cleared and recall fastfetch so that the bar from oh-my-zsh get resized
|
||||
# unused
|
||||
name = "custom-launch";
|
||||
@@ -98,4 +94,4 @@
|
||||
zsh
|
||||
'';
|
||||
};
|
||||
}
|
||||
};}
|
||||
|
||||
@@ -11,8 +11,8 @@
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
flake.packages.custom-checkKdrive = { pkgs, ... }:
|
||||
pkgs.writeShellApplication {
|
||||
perSystem = { pkgs, ... }: {
|
||||
packages.custom-checkKdrive = pkgs.writeShellApplication {
|
||||
name = "custom-checkKdrive";
|
||||
runtimeInputs = with pkgs; [
|
||||
rclone
|
||||
@@ -46,8 +46,7 @@
|
||||
fi
|
||||
'';
|
||||
};
|
||||
flake.packages.custom-mountkdrive = { pkgs, ... }:
|
||||
pkgs.writeShellApplication {
|
||||
packages.custom-mountkdrive = pkgs.writeShellApplication {
|
||||
name = "custom-mountkdrive";
|
||||
runtimeInputs = with pkgs; [
|
||||
rclone
|
||||
@@ -67,4 +66,4 @@
|
||||
fi
|
||||
'';
|
||||
};
|
||||
}
|
||||
};}
|
||||
|
||||
@@ -26,8 +26,8 @@
|
||||
};
|
||||
};
|
||||
};
|
||||
flake.packages.custom-obsidianbackup = {pkgs, ...}:
|
||||
pkgs.writeShellApplication {
|
||||
perSystem = {pkgs, ...}: {
|
||||
packages.custom-obsidianbackup = pkgs.writeShellApplication {
|
||||
name = "custom-obsidianbackup";
|
||||
runtimeInputs = with pkgs; [
|
||||
rclone
|
||||
@@ -84,8 +84,7 @@
|
||||
'';
|
||||
};
|
||||
# this might be broken after dendritic nix. As it searched for the obsidian.nix to get list of vaults
|
||||
flake.packages.custom-obsidianvaults = {pkgs, ...}:
|
||||
pkgs.writeShellApplication {
|
||||
packages.custom-obsidianbvaults = pkgs.writeShellApplication {
|
||||
name = "custom-obsidianvaults";
|
||||
runtimeInputs = with pkgs; [
|
||||
zsh
|
||||
@@ -123,4 +122,4 @@
|
||||
exit
|
||||
'';
|
||||
};
|
||||
}
|
||||
};}
|
||||
|
||||
@@ -13,9 +13,9 @@
|
||||
recursive = true;
|
||||
};
|
||||
};
|
||||
flake.packages.QS-notifycache = {writeShellApplication, ...}:
|
||||
perSystem = {pkgs, ...}: {
|
||||
# creates and maintains cache file for the notification history
|
||||
writeShellApplication {
|
||||
packages.QS-notifycache = pkgs.writeShellApplication {
|
||||
name = "QS-notifycache";
|
||||
text = ''
|
||||
CACHE="$HOME/.cache/notify_history"
|
||||
@@ -25,8 +25,7 @@
|
||||
echo "Notification history initialized at $(date)" >> "$CACHE"
|
||||
'';
|
||||
};
|
||||
flake.packages.QS-notifyhistory = {writeShellApplication, ...}:
|
||||
writeShellApplication {
|
||||
packages.QS-notifyhistory = pkgs.writeShellApplication {
|
||||
name = "QS-notifyhistory";
|
||||
text = ''
|
||||
app="$1"
|
||||
@@ -51,8 +50,7 @@
|
||||
} >> "$HOME/.cache/notify_history"
|
||||
'';
|
||||
};
|
||||
flake.packages.QS-sysinfo = { pkgs, ... }:
|
||||
pkgs.writeShellApplication {
|
||||
packages.QS-sysinfo = pkgs.writeShellApplication {
|
||||
name = "QS-sysinfo";
|
||||
runtimeInputs = with pkgs; [
|
||||
ripgrep
|
||||
@@ -122,4 +120,4 @@
|
||||
echo "{\"cpu\":\"$cpu\",\"temp\":\"$temp\",\"fan\":\"$fan\",\"mem\":\"$mem\",\"disk\":\"$disk\",\"power\":\"$power\",\"down\":\"$down_speed\",\"up\":\"$up_speed\"}"
|
||||
'';
|
||||
};
|
||||
}
|
||||
};}
|
||||
|
||||
@@ -694,8 +694,8 @@
|
||||
'';
|
||||
};
|
||||
};
|
||||
flake.packages.custom-weatherwaybar = { pkgs, ... }:
|
||||
pkgs.writeShellApplication {
|
||||
perSystem = { pkgs, ... }: {
|
||||
packages.custom-weatherwaybar = pkgs.writeShellApplication {
|
||||
name = "custom-weatherwaybar";
|
||||
runtimeInputs = with pkgs; [
|
||||
curl
|
||||
@@ -713,4 +713,4 @@
|
||||
"$TEXT1" "$TEXT2" "$TEXT3"
|
||||
'';
|
||||
};
|
||||
}
|
||||
};}
|
||||
|
||||
@@ -53,10 +53,10 @@
|
||||
};
|
||||
# };
|
||||
};
|
||||
flake.packages.batteryNotify = { pkgs, ... }: let
|
||||
perSystem = { pkgs, ... }: let
|
||||
NotifySound = ../../assets/battery_notify.mp3;
|
||||
in
|
||||
pkgs.writeShellApplication {
|
||||
in {
|
||||
packages.custom-batterynotify = pkgs.writeShellApplication {
|
||||
# taken and adapted https://github.com/miniMinn24/Battery_Notify with MIT License
|
||||
|
||||
name = "custom-batterynotify";
|
||||
@@ -122,10 +122,7 @@
|
||||
done
|
||||
'';
|
||||
};
|
||||
flake.packages.batteryWarning = { pkgs, ...}: let
|
||||
NotifySound = ../../assets/battery_notify.mp3;
|
||||
in
|
||||
pkgs.writeShellApplication {
|
||||
packages.custom-batterywarning = pkgs.writeShellApplication {
|
||||
# taken and adapted https://github.com/miniMinn24/Battery_Notify with MIT License
|
||||
name = "custom-batterywarning";
|
||||
runtimeInputs = with pkgs; [
|
||||
@@ -165,13 +162,12 @@
|
||||
done
|
||||
'';
|
||||
};
|
||||
flake.packages.qtbatticon = { pkgs, ... }:
|
||||
# because cbatticon, batticonplus and other things didn't work.
|
||||
# chatGpt did this.
|
||||
# https://chatgpt.com/c/69da11b3-ba24-8331-b7b0-a58a72e69d42
|
||||
# at your risk and perils
|
||||
# click on the icon to get a notification with state, percentage and wattage
|
||||
pkgs.stdenv.mkDerivation {
|
||||
packages.qtbatticon = pkgs.stdenv.mkDerivation {
|
||||
pname = "qtbatticon";
|
||||
version = "1.0";
|
||||
|
||||
@@ -336,8 +332,7 @@
|
||||
'';
|
||||
};
|
||||
# This was replaced by caelestia shell's Game Mode
|
||||
flake.packages.custom-performance = { pkgs, ...}:
|
||||
pkgs.writeShellApplication {
|
||||
packages.custom-performance = pkgs.writeShellApplication {
|
||||
name = "custom-performance";
|
||||
runtimeInputs = with pkgs; [
|
||||
hyprland
|
||||
@@ -367,8 +362,7 @@
|
||||
'';
|
||||
};
|
||||
# Old script that was used for the battery. Might not work.
|
||||
flake.packages.custom-olddeprecatedbatterynotify = { pkgs, ... }:
|
||||
pkgs.writeShellApplication {
|
||||
packages.custom-olddeprecatedbatterynotify = pkgs.writeShellApplication {
|
||||
name = "custom-olddeprecatedbatterynotify";
|
||||
|
||||
runtimeInputs = with pkgs; [
|
||||
@@ -433,7 +427,7 @@
|
||||
sleep "$INTERVAL"
|
||||
done
|
||||
'';
|
||||
};
|
||||
};};
|
||||
flake.homeModules.cbatticon = { ... }: {
|
||||
# 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.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{ inputs, ...}: {
|
||||
flake.nixosModule.bluetooth = {pkgs, ...}: {
|
||||
{ ...}: {
|
||||
flake.nixosModules.bluetooth = {pkgs, ...}: {
|
||||
hardware.bluetooth.enable = true;
|
||||
environment.systemPackages = with pkgs; [
|
||||
blueman # GTK-based Bluetooth Manager
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
{ ... }: {
|
||||
flake.nixosModule.disk = { pkgs, ... }: {
|
||||
flake.nixosModules.disk = { pkgs, ... }: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
gnome-disk-utility
|
||||
udiskie
|
||||
];
|
||||
};
|
||||
flake.nixosModule.disk-laptop = { ... }: {
|
||||
flake.nixosModules.disk-laptop = { ... }: {
|
||||
# i found swap necessary when running nixpkgs review
|
||||
swapDevices = [
|
||||
{
|
||||
|
||||
+36
-12
@@ -1,7 +1,13 @@
|
||||
{ inputs, self, ...}: {
|
||||
flake.nixosConfiguration.laptop = inputs.nixpkgs.lib.nixosSystem {
|
||||
flake.nixosConfigurations.laptop = inputs.nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = {
|
||||
inherit (self) pkgs pkgs-unstable;
|
||||
};
|
||||
modules = with self.nixosModules; [
|
||||
# keep this alphabetically organised
|
||||
#inputs.home-manager.nixosModules.home-manager
|
||||
inputs.home-manager.nixosModules.default
|
||||
# keep this alphabetically organised
|
||||
anki
|
||||
audioAndMedia
|
||||
autoCleanup-laptop
|
||||
@@ -24,6 +30,7 @@
|
||||
IO
|
||||
kdrive
|
||||
latex
|
||||
laptop
|
||||
ly
|
||||
mullvad
|
||||
networking
|
||||
@@ -34,11 +41,20 @@
|
||||
printer
|
||||
udev
|
||||
user
|
||||
];
|
||||
};
|
||||
flake.homeConfiguration.tomasr = inputs.home-manager.lib.homeManagerConfiguration {
|
||||
];};
|
||||
flake.homeConfigurations.tomasr = inputs.home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = import inputs.nixpkgs { system = "x86_64-linux"; };
|
||||
pkgs-unstable = import inputs.nixpkgs-unstable { system = "x86_64-linux"; };
|
||||
|
||||
# system = "x86_64-linux";
|
||||
#specialArgs = {
|
||||
# inherit (self) pkgs pkgs-unstable;
|
||||
#};
|
||||
extraSpecialArgs = {
|
||||
pkgs-unstable =
|
||||
import inputs.nixpkgs-unstable {
|
||||
system = "x86_64-linux";
|
||||
};
|
||||
};
|
||||
modules = with self.homeModules; [
|
||||
anki
|
||||
cursor
|
||||
@@ -58,8 +74,8 @@
|
||||
sbb-tui
|
||||
ssh
|
||||
thunderbird
|
||||
tomasrModule
|
||||
vivify
|
||||
tomasr
|
||||
vivify
|
||||
zoxide
|
||||
zsh
|
||||
zsh-laptop
|
||||
@@ -74,19 +90,27 @@
|
||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||
system.stateVersion = "25.11"; # Did you read the comment?
|
||||
|
||||
home-manager.users.USERNAME = self.homeModules.USERNAMEModule;
|
||||
#home-manager.users.tomasr = self.home.Configurations.tomasr;
|
||||
#home-manager.nixosModule.home-manager.users.tomasr = self.homeConfigurations.tomasr;
|
||||
home-manager.users.tomasr = {
|
||||
imports = [
|
||||
self.homeModules.tomasr
|
||||
];
|
||||
};
|
||||
};
|
||||
flake.nixosModules.home-manager-laptop = { ... }: {
|
||||
flake.nixosModules.home-manager-laptop = { pkgs, ... }: {
|
||||
imports = [
|
||||
inputs.home-manager.nixosModules.default # import official home-manager NixOS module
|
||||
];
|
||||
|
||||
|
||||
# Warning. Git is used in case I break everything up. It already saved me once
|
||||
environment.systemPackages = [ pkgs.git ];
|
||||
home-manager = {
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
};
|
||||
};
|
||||
flake.homeModules.tomasrModule = { ... }: {
|
||||
flake.homeModules.tomasr = { ... }: {
|
||||
imports = [
|
||||
inputs.caelestia-shell.homeManagerModules.default
|
||||
];
|
||||
|
||||
@@ -0,0 +1,120 @@
|
||||
}[[{ inputs, self, ...}: {
|
||||
flake.nixosConfigurations.laptop = inputs.nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = {
|
||||
inherit (self) pkgs pkgs-unstable;
|
||||
};
|
||||
modules = with self.nixosModules; [
|
||||
# keep this alphabetically organised
|
||||
anki
|
||||
audioAndMedia
|
||||
autoCleanup-laptop
|
||||
autoUpdate-laptop
|
||||
battery-laptop
|
||||
bluetooth
|
||||
bootloader-laptop
|
||||
browsers
|
||||
caelestia
|
||||
development
|
||||
documentation
|
||||
disk
|
||||
disk-laptop
|
||||
fonts
|
||||
games
|
||||
hardware-configuration-laptop
|
||||
hardwareUtils-laptop
|
||||
home-manager-laptop
|
||||
hyprland
|
||||
IO
|
||||
kdrive
|
||||
latex
|
||||
laptop
|
||||
ly
|
||||
mullvad
|
||||
networking
|
||||
notifications
|
||||
office
|
||||
#ollama
|
||||
otherUtils
|
||||
printer
|
||||
udev
|
||||
user
|
||||
];
|
||||
flake.homeConfiguration.tomasr = inputs.home-manager.lib.homeManagerConfiguration {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = {
|
||||
inherit (self) pkgs pkgs-unstable;
|
||||
};
|
||||
modules = with self.homeModules; [
|
||||
anki
|
||||
cursor
|
||||
eza
|
||||
fastfetch
|
||||
git
|
||||
gtk
|
||||
hyprland
|
||||
hyprland-laptop
|
||||
kitty
|
||||
librewolf
|
||||
mullvad
|
||||
neovim
|
||||
oh-my-zsh
|
||||
ripgrep
|
||||
rofi
|
||||
sbb-tui
|
||||
ssh
|
||||
thunderbird
|
||||
tomasr
|
||||
vivify
|
||||
zoxide
|
||||
zsh
|
||||
zsh-laptop
|
||||
];
|
||||
};
|
||||
flake.nixosModules.laptop = { ... }: {
|
||||
# This value determines the NixOS release from which the default
|
||||
# settings for stateful data, like file locations and database versions
|
||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||
# this value at the release version of the first install of this system.
|
||||
# Before changing this value read the documentation for this option
|
||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||
system.stateVersion = "25.11"; # Did you read the comment?
|
||||
|
||||
home-manager.users.tomasr = self.homeModules.tomasr;
|
||||
};
|
||||
flake.nixosModules.home-manager-laptop = { ... }: {
|
||||
imports = [
|
||||
inputs.home-manager.nixosModules.default # import official home-manager NixOS module
|
||||
];
|
||||
|
||||
home-manager = {
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
};
|
||||
};
|
||||
flake.homeModules.tomasr = { ... }: {
|
||||
imports = [
|
||||
inputs.caelestia-shell.homeManagerModules.default
|
||||
];
|
||||
home.username = "tomasr";
|
||||
home.homeDirectory = "/home/tomasr";
|
||||
|
||||
home.sessionVariables = {
|
||||
EDITOR = "neovim";
|
||||
TERMINAL = "kitty";
|
||||
};
|
||||
|
||||
# Required for Home Manager
|
||||
home.stateVersion = "25.11"; # match your Home Manager release
|
||||
# This value determines the Home Manager release that your configuration is
|
||||
# compatible with. This helps avoid breakage when a new Home Manager release
|
||||
# introduces backwards incompatible changes.
|
||||
#
|
||||
# You should not change this value, even if you update Home Manager. If you do
|
||||
# want to update the value, then make sure to first check the Home Manager
|
||||
# release notes.
|
||||
|
||||
# Let Home Manager install and manage itself.
|
||||
programs.home-manager.enable = true;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{ inputs, ... }: {
|
||||
|
||||
flake.modules.nixos.common = { ... }: {
|
||||
|
||||
imports = [ inputs.home-manager.nixosModules.default ];
|
||||
};
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
{ ... }: {
|
||||
flake.nixModules.user = {
|
||||
flake.nixosModules.user = {
|
||||
pkgs,
|
||||
pkgs-unstable,
|
||||
...
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{ ... }: {
|
||||
flake.packages.custom-bottom = { pkgs, ... }:
|
||||
pkgs.writeShellApplication {
|
||||
perSystem = { pkgs, ... }: {
|
||||
packages.custom-bottom = pkgs.writeShellApplication {
|
||||
name = "custom-bottom";
|
||||
runtimeInputs = with pkgs; [
|
||||
kitty
|
||||
@@ -10,4 +10,5 @@
|
||||
kitty --class "custom-bottom" -o font_size=10 --name "custom-bottom" -e btm --theme gruvbox --disable-click --disable_advanced_kill --enable_cache_memory -g -R -T
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{ ... }: {
|
||||
flake.packages.custom-colorpicker = { pkgs, ... }:
|
||||
pkgs.writeShellApplication {
|
||||
|
||||
perSystem = { pkgs, ... }: {
|
||||
packages.custom-colorpicker = pkgs.writeShellApplication {
|
||||
# useless. Just use hyprpicker
|
||||
name = "custom-colorpicker";
|
||||
runtimeInputs = with pkgs; [
|
||||
@@ -70,4 +71,5 @@
|
||||
pkill -RTMIN+1 waybar
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{ ... }: {
|
||||
flake.packages.custom-cowsay = { pkgs, ... }:
|
||||
pkgs.writeShellApplication {
|
||||
perSystem = { pkgs, ... }: {
|
||||
packages.custom-cowsay = pkgs.writeShellApplication {
|
||||
name = "custom-cowsay";
|
||||
runtimeInputs = with pkgs; [
|
||||
cowsay
|
||||
@@ -80,4 +80,4 @@
|
||||
'';
|
||||
# reduce terminal size for actually
|
||||
};
|
||||
}
|
||||
};}
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
{ ... }: {
|
||||
perSystem = { pkgs, ... }: {
|
||||
# fzf librewolf profile selector
|
||||
packages.custom-librewolfprofiles = pkgs.writeShellApplication {
|
||||
name = "custom-librewolfprofiles";
|
||||
runtimeInputs = with pkgs; [
|
||||
zsh
|
||||
fzf
|
||||
];
|
||||
text = ''
|
||||
# List of profiles
|
||||
profiles=("work" "other" "private window")
|
||||
|
||||
# Use fzf to select
|
||||
selected=$(printf "%s\n" "''${profiles[@]}" | fzf --height 6 --reverse --prompt="Select LibreWolf profile:")
|
||||
|
||||
# If user cancels, exit
|
||||
[[ -z "$selected" ]] && exit 0
|
||||
|
||||
# Launch LibreWolf detached, keeping environment
|
||||
if [[ "$selected" == "private window" ]]; then
|
||||
setsid librewolf --private-window --no-remote >/dev/null 2>&1 &
|
||||
pkill -f "kitty.*Select LibreWolf profile"
|
||||
else
|
||||
setsid librewolf -P "$selected" --no-remote >/dev/null 2>&1 &
|
||||
pkill -f "kitty.*Select LibreWolf profile"
|
||||
fi
|
||||
|
||||
# Exit the kitty terminal after selection
|
||||
exit
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,10 +1,10 @@
|
||||
{ ... }:
|
||||
{
|
||||
flake.packages.custom-syllabes = { pkgs, ... }:
|
||||
perSystem = { pkgs, ... }: {
|
||||
# counts how many syllabes in a string.
|
||||
# not perfect. Does not handle silents e in french
|
||||
# but that's what I use for writing poetry
|
||||
pkgs.writers.writePython3Bin "custom-syllabes" {
|
||||
packages.custom-syllabes = pkgs.writers.writePython3Bin "custom-syllabes" {
|
||||
libraries = with pkgs; [
|
||||
python3Packages.pyphen
|
||||
];
|
||||
@@ -27,4 +27,4 @@
|
||||
|
||||
print(f"{total} ({'/'.join(chunks)})")
|
||||
'';
|
||||
}
|
||||
};}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ ... }:
|
||||
{
|
||||
flake.packages.custom-tomato = { pkgs, ... }:
|
||||
pkgs.writeShellApplication {
|
||||
perSystem = { pkgs, ...}: {
|
||||
packages.custom-tomato = pkgs.writeShellApplication {
|
||||
name = "custom-tomato";
|
||||
runtimeInputs = with pkgs; [
|
||||
kitty
|
||||
@@ -11,4 +11,5 @@
|
||||
kitty --class "custom-pomodoro" --name "custom-pomodoro" -e tomato
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ ... }:
|
||||
{
|
||||
flake.packages.custom-weather = { pkgs, ... }:
|
||||
pkgs.writeShellApplication {
|
||||
perSystem = { pkgs, ... }: {
|
||||
packages.custom-weather = pkgs.writeShellApplication {
|
||||
name = "custom-weather";
|
||||
runtimeInputs = with pkgs; [
|
||||
curl
|
||||
@@ -13,4 +13,4 @@
|
||||
done
|
||||
'';
|
||||
};
|
||||
}
|
||||
};}
|
||||
|
||||
@@ -1,16 +1,10 @@
|
||||
{ ... }: {
|
||||
flake.packages.dejaManuallyDerived = {
|
||||
lib,
|
||||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
nix-update-script,
|
||||
versionCheckHook,
|
||||
}:
|
||||
buildGoModule (finalAttrs: {
|
||||
perSystem = { pkgs, pkgs-unstable, ...}: {
|
||||
packages.dejaManuallyDerived = pkgs-unstable.buildGoModule (finalAttrs: {
|
||||
pname = "deja";
|
||||
version = "0.2.6";
|
||||
__structuredAttrs = true;
|
||||
src = fetchFromGitHub {
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "Giammarco-Ferranti";
|
||||
repo = "deja";
|
||||
tag = "v${finalAttrs.version}";
|
||||
@@ -27,17 +21,17 @@
|
||||
|
||||
doCheck = true;
|
||||
|
||||
nativeCheckInputs = [versionCheckHook];
|
||||
nativeCheckInputs = [pkgs.versionCheckHook];
|
||||
|
||||
passthru.updateScript = nix-update-script {};
|
||||
passthru.updateScript = pkgs.nix-update-script {};
|
||||
|
||||
meta = {
|
||||
description = "Predictive inline shell autosuggestions for zsh";
|
||||
homepage = "https://github.com/Giammarco-Ferranti/deja";
|
||||
license = lib.licenses.mit;
|
||||
platforms = lib.platforms.unix;
|
||||
maintainers = with lib.maintainers; [tomasrivera];
|
||||
license = pkgs.lib.licenses.mit;
|
||||
platforms = pkgs.lib.platforms.unix;
|
||||
maintainers = with pkgs.lib.maintainers; [tomasrivera];
|
||||
mainProgram = "deja";
|
||||
};
|
||||
});
|
||||
}
|
||||
};}
|
||||
|
||||
@@ -1,20 +1,14 @@
|
||||
{ ... }: {
|
||||
flake.packages.sbb-tuiManuallyDerived = {
|
||||
lib,
|
||||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
nix-update-script,
|
||||
versionCheckHook,
|
||||
}:
|
||||
buildGoModule (finalAttrs: {
|
||||
perSystem = { pkgs, pkgs-unstable, ... }: {
|
||||
packages.sbb-tuiManuallyDerived = pkgs-unstable.buildGoModule (finalAttrs: {
|
||||
pname = "sbb-tui";
|
||||
version = "1.14.2";
|
||||
__structuredAttrs = true;
|
||||
src = fetchFromGitHub {
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "Necrom4";
|
||||
repo = "sbb-tui";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = lib.fakeHash;
|
||||
hash = pkgs.lib.fakeHash;
|
||||
};
|
||||
|
||||
vendorHash = "sha256-K4DOu3rfSlKAa5JNKCzWWpnWZlXXxtN5Po7p1Spqe1w=";
|
||||
@@ -29,17 +23,17 @@
|
||||
|
||||
doCheck = true;
|
||||
|
||||
nativeCheckInputs = [versionCheckHook];
|
||||
nativeCheckInputs = [pkgs.versionCheckHook];
|
||||
|
||||
passthru.updateScript = nix-update-script {};
|
||||
passthru.updateScript = pkgs.nix-update-script {};
|
||||
|
||||
meta = {
|
||||
description = "TUI client for Switzerland's public transport timetables, inspired by SBB/CFF/FFS app";
|
||||
homepage = "https://github.com/Necrom4/sbb-tui";
|
||||
license = lib.licenses.mit;
|
||||
platforms = lib.platforms.unix;
|
||||
maintainers = with lib.maintainers; [tomasrivera];
|
||||
license = pkgs.lib.licenses.mit;
|
||||
platforms = pkgs.lib.platforms.unix;
|
||||
maintainers = with pkgs.lib.maintainers; [tomasrivera];
|
||||
mainProgram = "sbb-tui";
|
||||
};
|
||||
});
|
||||
}
|
||||
}; }
|
||||
|
||||
@@ -1,28 +1,17 @@
|
||||
{ ... }: {
|
||||
flake.packages.vivifyManuallyDerived = {
|
||||
lib,
|
||||
stdenv,
|
||||
nix-update-script,
|
||||
fetchYarnDeps,
|
||||
fetchFromGitHub,
|
||||
yarnConfigHook,
|
||||
npmHooks,
|
||||
nodejs,
|
||||
zip,
|
||||
file,
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
perSystem = { pkgs, nodejs, ... }: {
|
||||
packages.vivifyManuallyDerived = pkgs.stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "vivify";
|
||||
version = "0.14.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "jannis-baum";
|
||||
repo = "Vivify";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-CszMG+c0bNHfXWqcI3b4iGpeFJ+FmzHDzxflPS+wEe0=";
|
||||
};
|
||||
|
||||
yarnOfflineCache = fetchYarnDeps {
|
||||
yarnOfflineCache = pkgs.fetchYarnDeps {
|
||||
yarnLock = "${finalAttrs.src}/yarn.lock";
|
||||
hash = "sha256-svgEanFiBSQn0TdTuB0CnLR71lkANABEaDiKB+Vc0Rc=";
|
||||
};
|
||||
@@ -33,13 +22,13 @@
|
||||
yarn install
|
||||
|
||||
substituteInPlace node_modules/.bin/tsc \
|
||||
--replace-fail '/usr/bin/env node' '${lib.getExe nodejs}'
|
||||
--replace-fail '/usr/bin/env node' '${pkgs.lib.getExe nodejs}'
|
||||
|
||||
substituteInPlace node_modules/.bin/webpack \
|
||||
--replace-fail '/usr/bin/env node' '${lib.getExe nodejs}'
|
||||
--replace-fail '/usr/bin/env node' '${pkgs.lib.getExe nodejs}'
|
||||
|
||||
substituteInPlace node_modules/.bin/postject \
|
||||
--replace-fail '/usr/bin/env node' '${lib.getExe nodejs}'
|
||||
--replace-fail '/usr/bin/env node' '${pkgs.lib.getExe nodejs}'
|
||||
|
||||
make VIV_VERSION=${finalAttrs.version} linux
|
||||
|
||||
@@ -49,14 +38,14 @@
|
||||
|
||||
wrapProgram $out/bin/viv \
|
||||
--prefix PATH : ${
|
||||
lib.makeBinPath [
|
||||
nodejs
|
||||
file
|
||||
pkgs.lib.makeBinPath [
|
||||
pkgs.nodejs
|
||||
pkgs.file
|
||||
]
|
||||
}
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
nativeBuildInputs = with pkgs; [
|
||||
yarnConfigHook
|
||||
npmHooks.npmInstallHook
|
||||
zip
|
||||
@@ -69,7 +58,7 @@
|
||||
# (segmentation fault)
|
||||
dontStrip = true;
|
||||
|
||||
passthru.updateScript = nix-update-script {};
|
||||
passthru.updateScript = pkgs.nix-update-script {};
|
||||
|
||||
meta = {
|
||||
description = "Live Markdown viewer";
|
||||
@@ -80,10 +69,10 @@
|
||||
'';
|
||||
homepage = "https://github.com/jannis-baum/Vivify";
|
||||
changelog = "https://github.com/jannis-baum/Vivify/releases/tag/v${finalAttrs.src.tag}";
|
||||
license = lib.licenses.gpl3;
|
||||
maintainers = with lib.maintainers; [skohtv];
|
||||
platforms = lib.platforms.linux;
|
||||
license = pkgs.lib.licenses.gpl3;
|
||||
maintainers = with pkgs.lib.maintainers; [skohtv];
|
||||
platforms = pkgs.lib.platforms.linux;
|
||||
mainProgram = "viv";
|
||||
};
|
||||
});
|
||||
}
|
||||
};}
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
systems = [
|
||||
"x86_64-linux"
|
||||
#"aarch64-linux"
|
||||
#"x86_64-darwin"
|
||||
#"aarch64-darwin"
|
||||
];
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{inputs, ...}: {
|
||||
flake.nixosModules.test = { pkgs, ...}: {
|
||||
programs.firefox.enable = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
vim
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -41,8 +41,8 @@
|
||||
source = "${pkgs.gpu-screen-recorder}/bin/gsr-kms-server";
|
||||
};
|
||||
};
|
||||
flake.packages.custom-changeAudioOutput = { pkgs, ...}:
|
||||
pkgs.writeShellApplication {
|
||||
perSystem = { pkgs, ...}: {
|
||||
packages.custom-changeAudioOutput = pkgs.writeShellApplication {
|
||||
name = "custom-changeAudioOutput";
|
||||
runtimeInputs = with pkgs; [
|
||||
fzf
|
||||
@@ -57,4 +57,4 @@
|
||||
pkill -f "kitty.*Select audio output"
|
||||
'';
|
||||
};
|
||||
}
|
||||
};}
|
||||
|
||||
@@ -44,8 +44,8 @@
|
||||
};
|
||||
};
|
||||
};
|
||||
flake.packages.custom-cleanNix-laptop = {pkgs, ...}:
|
||||
pkgs.writeShellApplication {
|
||||
perSystem = { pkgs, ... }: {
|
||||
packages.custom-cleanNix-laptop = pkgs.writeShellApplication {
|
||||
name = "custom-cleanNix";
|
||||
|
||||
runtimeInputs = with pkgs; [
|
||||
@@ -115,4 +115,4 @@
|
||||
rm -f "$ERROR_FILE"
|
||||
'';
|
||||
};
|
||||
}
|
||||
};}
|
||||
|
||||
@@ -44,8 +44,8 @@
|
||||
};
|
||||
};
|
||||
};
|
||||
flake.packages.custom-autoupdate-laptop = {pkgs, ...}:
|
||||
pkgs.writeShellApplication {
|
||||
perSystem = {pkgs, ...}: {
|
||||
packages.custom-autoupdate-laptop = pkgs.writeShellApplication {
|
||||
name = "custom-autoupdate";
|
||||
|
||||
runtimeInputs = with pkgs; [
|
||||
@@ -106,4 +106,4 @@
|
||||
rm -f "$ERROR_FILE"
|
||||
'';
|
||||
};
|
||||
}
|
||||
};}
|
||||
|
||||
@@ -13,8 +13,8 @@
|
||||
self.packages.${pkgs.system}.custom-checkKdrive # check if kdrive is set up with rclone
|
||||
];
|
||||
};
|
||||
flake.packages.custom-checkMatrix = { pkgs, ...}:
|
||||
pkgs.writeShellApplication {
|
||||
perSystem = { pkgs, ...}: {
|
||||
packages.custom-checkMatrix = pkgs.writeShellApplication {
|
||||
name = "custom-checkMatrix";
|
||||
|
||||
runtimeInputs = with pkgs; [
|
||||
@@ -33,8 +33,7 @@
|
||||
fi
|
||||
'';
|
||||
};
|
||||
flake.packages.custom-gitnotify = { pkgs, ...}:
|
||||
pkgs.writeShellApplication {
|
||||
packages.custom-gitnotify = pkgs.writeShellApplication {
|
||||
name = "custom-gitnotify";
|
||||
runtimeInputs = with pkgs; [
|
||||
git
|
||||
@@ -59,4 +58,4 @@
|
||||
fi
|
||||
'';
|
||||
};
|
||||
}
|
||||
};}
|
||||
|
||||
@@ -14,8 +14,8 @@
|
||||
self.packages.${pkgs.system}.custom-manix
|
||||
];
|
||||
};
|
||||
flake.packages.custom-man = { pkgs, ... }:
|
||||
pkgs.writeShellApplication {
|
||||
perSystem = { pkgs, ... }: {
|
||||
packages.custom-man = pkgs.writeShellApplication {
|
||||
name = "custom-man";
|
||||
runtimeInputs = with pkgs; [
|
||||
man
|
||||
@@ -52,8 +52,7 @@
|
||||
| xargs man
|
||||
'';
|
||||
};
|
||||
flake.packages.custom-manix = { pkgs, ... }:
|
||||
pkgs.writeShellApplication {
|
||||
packages.custom-manix = pkgs.writeShellApplication {
|
||||
name = "custom-manix";
|
||||
runtimeInputs = with pkgs; [
|
||||
manix
|
||||
@@ -90,4 +89,4 @@
|
||||
| xargs manix
|
||||
'';
|
||||
};
|
||||
}
|
||||
};}
|
||||
|
||||
@@ -35,10 +35,10 @@
|
||||
statix
|
||||
];
|
||||
};
|
||||
flake.packages.custom-trimmer = { pkgs, ... }:
|
||||
perSystem = { pkgs, ... }: {
|
||||
# https://gist.github.com/MaxwellDupre/3077cd229490cf93ecab08ef2a79c852
|
||||
# better garbage collector
|
||||
pkgs.writeShellApplication {
|
||||
packages.custom-trimmer = pkgs.writeShellApplication {
|
||||
name = "custom-trimmer";
|
||||
runtimeInputs = with pkgs; [
|
||||
nix
|
||||
@@ -298,4 +298,4 @@
|
||||
|
||||
'';
|
||||
};
|
||||
}
|
||||
};}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ ... }: {
|
||||
{ self, ... }: {
|
||||
flake.nixosModules.otherUtils = # try to keep packages here at a minium. Preferably use a dedicated file
|
||||
{
|
||||
pkgs,
|
||||
@@ -19,8 +19,8 @@
|
||||
mailcap
|
||||
fuzzel
|
||||
usbutils # used for lsusb
|
||||
(pkgs.callPackage ../../modules/scripts/tomato.nix {})
|
||||
(pkgs.callPackage ../../modules/scripts/syllabes.nix {}) # python script to get number of syllabes in french
|
||||
self.packages.${pkgs.system}.custom-tomato
|
||||
self.packages.${pkgs.system}.custom-syllabes
|
||||
pkgs-unstable.bitwarden-desktop
|
||||
fluffychat # matrix client
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user