1

Compare commits

..

8 Commits

8 changed files with 377 additions and 80 deletions

View File

@ -8,6 +8,16 @@ sudo nixos-rebuild <type> --flake .#<flake>
$ type: echo -e "switch\nbuild\nboot" $ type: echo -e "switch\nbuild\nboot"
$ flake: echo -e "nixinator\nnixtop" $ flake: echo -e "nixinator\nnixtop"
% nixos
# Rebuild the system using nh
nh os <mode>
$ mode: echo -e "switch\nbuild\nboot"
% nixos
# Clean the nix store
nh clean <mode>
$ mode: echo -e "all\nuser"
% nixos % nixos
# Find out why a package is included in the closure when building the system derivation # Find out why a package is included in the closure when building the system derivation
nix why-depends /run/current-system nixpkgs#<package> nix why-depends /run/current-system nixpkgs#<package>
@ -22,6 +32,35 @@ $ executable: bash -c "compgen -c"
ldd $(readlink -f $(which <executable>)) ldd $(readlink -f $(which <executable>))
$ executable: bash -c "compgen -c" $ executable: bash -c "compgen -c"
% nixos
# Browse closures in the nix store sorted by size
nix-tree
% nixos
# Search in nixpkgs
nps -e "<package>"
% nixos
# Search in nixpkgs, nur, nixos and home-manager
nix-search-tv print --indexes 'nixos,home-manager,nixpkgs,nur' | fzf --preview 'nix-search-tv preview {}' --scheme history
% nixos
# Compare the current NixOS generation to another one
nvd diff /run/current-system ./result
% nixos
# Generate a nix fetcher section
nurl "<url>"
% nixos
# Generate a nix fetcher section for a specific revision
nurl "<url>" "<rev>"
% nixos
# Run an unpatched binary on NixOS
nix-alien-ld -- <binary>
$ binary: eza -f -1
; =========================== ; ===========================
; SYSTEMD ; SYSTEMD
; =========================== ; ===========================
@ -104,6 +143,37 @@ xdg-mime query default <mimetype>
xdg-mime query default $(file --mime-type <file> | awk -F' ' '{print $2}') xdg-mime query default $(file --mime-type <file> | awk -F' ' '{print $2}')
$ file: eza -f -1 $ file: eza -f -1
% ouch
# Extract an archive
ouch decompress "<archive>"
$ archive: eza -f -1
% pastel
# Generate a color
pastel color <color>
$ color: pastel list
% pastel
# Generate an adjacent color
pastel color <color> | pastel <mode>
$ color: pastel list
$ mode: echo -e "complement\ntextcolor"
% pastel
# Generate a color gradient
pastel gradient <a> <b> | pastel format hex
$ a: pastel list
$ b: pastel list
% ripdrag
# Drag & drop file from the terminal
ripdrag <file>
$ file: eza -1
% nvidia-smi
# Monitor Nvidia GPUs
watch -d -c -n 0.5 nvidia-smi
; =========================== ; ===========================
; CODE ; CODE
; =========================== ; ===========================
@ -138,7 +208,11 @@ yt-dlp -f 'ba' --extract-audio --audio-format mp3 "<url>"
% spotdl % spotdl
# Download spotify playlist # Download spotify playlist
spotdl --config /home/christoph/.spotdl/config.json --user-auth --format m4a --bitrate disable --threads 24 --generate-lrc --m3u "<name>" download "<url>" mkdir -p "<name>" && cd "<name>" && spotdl --client-id (cat /home/christoph/.secrets/spotify_client_id) --client-secret (cat /home/christoph/.secrets/spotify_client_secret) --user-auth --cookie-file /home/christoph/.secrets/youtube_music_cookies --format opus --bitrate disable --threads 24 --m3u "<name>" download "<url>" && cd ..
% spotdl
# Download spotify item
mkdir -p "<name>" && cd "<name>" && spotdl --client-id (cat /home/christoph/.secrets/spotify_client_id) --client-secret (cat /home/christoph/.secrets/spotify_client_secret) --user-auth --cookie-file /home/christoph/.secrets/youtube_music_cookies --format opus --bitrate disable --threads 24 download "<url>" && cd ..
; =========================== ; ===========================
; FFMPEG ; FFMPEG

193
flake.lock generated
View File

@ -135,6 +135,27 @@
"type": "github" "type": "github"
} }
}, },
"devshell_2": {
"inputs": {
"nixpkgs": [
"nix-topology",
"nixpkgs"
]
},
"locked": {
"lastModified": 1728330715,
"narHash": "sha256-xRJ2nPOXb//u1jaBnDP56M7v5ldavjbtR6lfGqSvcKg=",
"owner": "numtide",
"repo": "devshell",
"rev": "dd6b80932022cea34a019e2bb32f6fa9e494dfef",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "devshell",
"type": "github"
}
},
"emacs-overlay": { "emacs-overlay": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -204,6 +225,22 @@
} }
}, },
"flake-compat_4": { "flake-compat_4": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_5": {
"locked": { "locked": {
"lastModified": 1696426674, "lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
@ -263,6 +300,24 @@
"inputs": { "inputs": {
"systems": "systems_3" "systems": "systems_3"
}, },
"locked": {
"lastModified": 1726560853,
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_2": {
"inputs": {
"systems": "systems_4"
},
"locked": { "locked": {
"lastModified": 1731533236, "lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
@ -277,7 +332,7 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils_2": { "flake-utils_3": {
"locked": { "locked": {
"lastModified": 1667395993, "lastModified": 1667395993,
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
@ -338,6 +393,28 @@
"type": "github" "type": "github"
} }
}, },
"gitignore_3": {
"inputs": {
"nixpkgs": [
"nix-topology",
"pre-commit-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"gnim": { "gnim": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -1026,6 +1103,26 @@
"type": "github" "type": "github"
} }
}, },
"musnix": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1741303672,
"narHash": "sha256-eRKbKccBu3PK/oJpmUuLo+0v45d0SEjosE8tVsHbpeA=",
"owner": "musnix",
"repo": "musnix",
"rev": "d56a15f30329f304151e4e05fa82264d127da934",
"type": "github"
},
"original": {
"owner": "musnix",
"repo": "musnix",
"type": "github"
}
},
"naersk": { "naersk": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_5" "nixpkgs": "nixpkgs_5"
@ -1103,6 +1200,29 @@
"type": "github" "type": "github"
} }
}, },
"nix-topology": {
"inputs": {
"devshell": "devshell_2",
"flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs"
],
"pre-commit-hooks": "pre-commit-hooks_3"
},
"locked": {
"lastModified": 1744142264,
"narHash": "sha256-h5KyodobZm8dx/HSNN+basgdmjxrQxudjrss4gAQpZk=",
"owner": "oddlama",
"repo": "nix-topology",
"rev": "f49121cbbf4a86c560638ade406d99ee58deb7aa",
"type": "github"
},
"original": {
"owner": "oddlama",
"repo": "nix-topology",
"type": "github"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1722073938, "lastModified": 1722073938,
@ -1203,7 +1323,7 @@
"nixpkgs" "nixpkgs"
], ],
"nuschtosSearch": "nuschtosSearch", "nuschtosSearch": "nuschtosSearch",
"systems": "systems_4" "systems": "systems_5"
}, },
"locked": { "locked": {
"lastModified": 1751492444, "lastModified": 1751492444,
@ -1221,8 +1341,8 @@
}, },
"nps": { "nps": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_4", "flake-compat": "flake-compat_5",
"flake-utils": "flake-utils_2", "flake-utils": "flake-utils_3",
"naersk": "naersk", "naersk": "naersk",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
@ -1265,7 +1385,7 @@
}, },
"nuschtosSearch": { "nuschtosSearch": {
"inputs": { "inputs": {
"flake-utils": "flake-utils", "flake-utils": "flake-utils_2",
"ixx": "ixx", "ixx": "ixx",
"nixpkgs": [ "nixpkgs": [
"nixvim", "nixvim",
@ -1334,6 +1454,33 @@
"type": "github" "type": "github"
} }
}, },
"pre-commit-hooks_3": {
"inputs": {
"flake-compat": "flake-compat_4",
"gitignore": "gitignore_3",
"nixpkgs": [
"nix-topology",
"nixpkgs"
],
"nixpkgs-stable": [
"nix-topology",
"nixpkgs"
]
},
"locked": {
"lastModified": 1730797577,
"narHash": "sha256-SrID5yVpyUfknUTGWgYkTyvdr9J1LxUym4om3SVGPkg=",
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"rev": "1864030ed24a2b8b4e4d386a5eeaf0c5369e50a9",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"ags": "ags", "ags": "ags",
@ -1343,13 +1490,16 @@
"home-manager": "home-manager", "home-manager": "home-manager",
"hypr-dynamic-cursors": "hypr-dynamic-cursors", "hypr-dynamic-cursors": "hypr-dynamic-cursors",
"hyprland-plugins": "hyprland-plugins", "hyprland-plugins": "hyprland-plugins",
"musnix": "musnix",
"nix-alien": "nix-alien", "nix-alien": "nix-alien",
"nix-flatpak": "nix-flatpak", "nix-flatpak": "nix-flatpak",
"nix-topology": "nix-topology",
"nixpkgs": "nixpkgs_4", "nixpkgs": "nixpkgs_4",
"nixvim": "nixvim", "nixvim": "nixvim",
"nps": "nps", "nps": "nps",
"nur": "nur", "nur": "nur",
"spicetify-nix": "spicetify-nix", "spicetify-nix": "spicetify-nix",
"unityhub-pinned": "unityhub-pinned",
"v4l2loopback-pinned": "v4l2loopback-pinned" "v4l2loopback-pinned": "v4l2loopback-pinned"
} }
}, },
@ -1358,7 +1508,7 @@
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
"systems": "systems_5" "systems": "systems_6"
}, },
"locked": { "locked": {
"lastModified": 1751171964, "lastModified": 1751171964,
@ -1449,6 +1599,37 @@
"type": "github" "type": "github"
} }
}, },
"systems_6": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"unityhub-pinned": {
"locked": {
"lastModified": 1751747067,
"narHash": "sha256-EjdnadZ90Q0sUWhz/owDik9fHSXw7ho/rsrsYGCDH2U=",
"owner": "huantianad",
"repo": "nixpkgs",
"rev": "9542b0bc7701e173a10e6977e57bbba68bb3051f",
"type": "github"
},
"original": {
"owner": "huantianad",
"repo": "nixpkgs",
"rev": "9542b0bc7701e173a10e6977e57bbba68bb3051f",
"type": "github"
}
},
"v4l2loopback-pinned": { "v4l2loopback-pinned": {
"locked": { "locked": {
"lastModified": 1748124733, "lastModified": 1748124733,

View File

@ -5,6 +5,9 @@
# It depends on "inputs" that are passed as arguments to the "outputs" function. # It depends on "inputs" that are passed as arguments to the "outputs" function.
# The inputs' git revisions get locked in the flake.lock file, making the outputs deterministic. # The inputs' git revisions get locked in the flake.lock file, making the outputs deterministic.
inputs = { inputs = {
# Just for shell.nix
devshell.url = "github:numtide/devshell";
# Nixpkgs # Nixpkgs
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
hardware.url = "github:nixos/nixos-hardware"; hardware.url = "github:nixos/nixos-hardware";
@ -13,55 +16,64 @@
home-manager.url = "github:nix-community/home-manager"; home-manager.url = "github:nix-community/home-manager";
home-manager.inputs.nixpkgs.follows = "nixpkgs"; home-manager.inputs.nixpkgs.follows = "nixpkgs";
# Nix User Repository (e.g. Firefox addons)
nur.url = "github:nix-community/NUR";
nur.inputs.nixpkgs.follows = "nixpkgs";
# Nix Package Search - nps
nps.url = "github:OleMussmann/nps";
nps.inputs.nixpkgs.follows = "nixpkgs";
# Run unpatched binaries on NixOS
nix-alien.url = "github:thiagokokada/nix-alien";
nix-alien.inputs.nixpkgs.follows = "nixpkgs";
# NeoVim <3 # NeoVim <3
nixvim.url = "github:nix-community/nixvim"; nixvim.url = "github:nix-community/nixvim";
nixvim.inputs.nixpkgs.follows = "nixpkgs"; nixvim.inputs.nixpkgs.follows = "nixpkgs";
# Emacs nightly
emacs-overlay.url = "github:nix-community/emacs-overlay";
emacs-overlay.inputs.nixpkgs.follows = "nixpkgs";
# Declarative Flatpak
nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=latest";
# nix-flatpak.inputs.nixpkgs.follows = "nixpkgs"; # nix-flatpak doesn't have this
# HyprPlugins # HyprPlugins
hyprland-plugins.url = "github:hyprwm/hyprland-plugins"; hyprland-plugins.url = "github:hyprwm/hyprland-plugins";
hyprland-plugins.inputs.nixpkgs.follows = "nixpkgs"; hyprland-plugins.inputs.nixpkgs.follows = "nixpkgs";
hypr-dynamic-cursors.url = "github:VirtCode/hypr-dynamic-cursors"; hypr-dynamic-cursors.url = "github:VirtCode/hypr-dynamic-cursors";
hypr-dynamic-cursors.inputs.nixpkgs.follows = "nixpkgs"; hypr-dynamic-cursors.inputs.nixpkgs.follows = "nixpkgs";
# Nix User Repository (e.g. Firefox addons) # Realtime audio
nur.url = "github:nix-community/NUR"; musnix.url = "github:musnix/musnix";
nur.inputs.nixpkgs.follows = "nixpkgs"; musnix.inputs.nixpkgs.follows = "nixpkgs";
# Spicetify nix-topology.url = "github:oddlama/nix-topology";
spicetify-nix.url = "github:Gerg-L/spicetify-nix"; nix-topology.inputs.nixpkgs.follows = "nixpkgs";
spicetify-nix.inputs.nixpkgs.follows = "nixpkgs";
# Ags for widgets (this was a terrible idea) # Ags for widgets (this was a terrible idea)
ags.url = "github:Aylur/ags"; ags.url = "github:Aylur/ags";
ags.inputs.nixpkgs.follows = "nixpkgs"; ags.inputs.nixpkgs.follows = "nixpkgs";
# Nix Package Search - nps # Spicetify
nps.url = "github:OleMussmann/nps"; spicetify-nix.url = "github:Gerg-L/spicetify-nix";
nps.inputs.nixpkgs.follows = "nixpkgs"; spicetify-nix.inputs.nixpkgs.follows = "nixpkgs";
# Declarative Flatpak
nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=latest";
# nix-flatpak.inputs.nixpkgs.follows = "nixpkgs"; # nix-flatpak doesn't have this
# Creates an environment containing required libraries for an executable
nix-alien.url = "github:thiagokokada/nix-alien";
nix-alien.inputs.nixpkgs.follows = "nixpkgs";
# Emacs nightly
emacs-overlay.url = "github:nix-community/emacs-overlay";
emacs-overlay.inputs.nixpkgs.follows = "nixpkgs";
# Pinned versions # Pinned versions
v4l2loopback-pinned.url = "github:nixos/nixpkgs/4684fd6b0c01e4b7d99027a34c93c2e09ecafee2"; v4l2loopback-pinned.url = "github:nixos/nixpkgs/4684fd6b0c01e4b7d99027a34c93c2e09ecafee2";
unityhub-pinned.url = "github:huantianad/nixpkgs/9542b0bc7701e173a10e6977e57bbba68bb3051f";
# Just for shell.nix
devshell.url = "github:numtide/devshell";
}; };
# Outputs is a function that takes the inputs as arguments. # Outputs is a function that takes the inputs as arguments.
# To handle extra arguments we use the @ inputs pattern. # To handle extra arguments we use the @ inputs pattern.
# It gives the name "inputs" to the ... ellipses. # It gives the name "inputs" to the ... ellipses.
outputs = {nixpkgs, ...} @ inputs: let outputs = {
self,
nixpkgs,
...
} @ inputs: let
# Our configuration is buildable on the following system/platform. # Our configuration is buildable on the following system/platform.
# Configs can support more than a single system simultaneously, # Configs can support more than a single system simultaneously,
# e.g. NixOS (linux) and MacOS (darwin) or Arm. # e.g. NixOS (linux) and MacOS (darwin) or Arm.
@ -89,12 +101,15 @@
inputs.devshell.overlays.default inputs.devshell.overlays.default
inputs.nur.overlays.default inputs.nur.overlays.default
inputs.emacs-overlay.overlay inputs.emacs-overlay.overlay
inputs.nix-topology.overlays.default
# TODO: Check if this works # https://github.com/NixOS/nixpkgs/issues/418451
# TODO: Remove after OBS is fixed: https://github.com/obsproject/obs-studio/pull/11906 (final: prev: {
# (final: prev: { unityhub_pinned_3_13 = import inputs.unityhub-pinned {
# v4l2loopback = inputs.v4l2loopback-pinned.pkgs.v4l2loopback; config.allowUnfree = true;
# }) localSystem = {inherit (prev) system;};
};
})
# All my own overlays # All my own overlays
(import ./overlays {inherit nixpkgs inputs;}) (import ./overlays {inherit nixpkgs inputs;})
@ -118,6 +133,18 @@
# Local shell for NixFlake directory # Local shell for NixFlake directory
devShells."${system}".default = import ./shell.nix {inherit pkgs;}; devShells."${system}".default = import ./shell.nix {inherit pkgs;};
# TODO: Add my homelab configs into this flake, then add a topology config for each host
# Output that generates a system topology diagram
# topology = import inputs.nix-topology {
# inherit pkgs; # Only this package set must include nix-topology.overlays.default
# modules = [
# # Your own file to define global topology. Works in principle like a nixos module but uses different options.
# # ./topology.nix
# # Inline module to inform topology of your existing NixOS hosts.
# {nixosConfigurations = self.nixosConfigurations;}
# ];
# };
# We give each configuration a (host)name to choose a configuration when rebuilding. # We give each configuration a (host)name to choose a configuration when rebuilding.
# This makes it easy to add different configurations (e.g. for a laptop). # This makes it easy to add different configurations (e.g. for a laptop).
# Usage: sudo nixos-rebuild switch --flake .#nixinator # Usage: sudo nixos-rebuild switch --flake .#nixinator
@ -136,13 +163,19 @@
inherit system mylib; inherit system mylib;
hostname = "nixinator"; hostname = "nixinator";
username = "christoph"; username = "christoph";
extraModules = []; extraModules = [
# TODO:
# inputs.nix-topology.nixosModules.default
];
}; };
nixtop = mylib.nixos.mkNixosConfigWithHomeManagerModule { nixtop = mylib.nixos.mkNixosConfigWithHomeManagerModule {
inherit system mylib; inherit system mylib;
hostname = "nixtop"; hostname = "nixtop";
username = "christoph"; username = "christoph";
extraModules = []; extraModules = [
# TODO:
# inputs.nix-topology.nixosModules.default
];
}; };
# These configurations don't include HM. # These configurations don't include HM.

View File

@ -68,7 +68,7 @@ rec {
hyprland = { hyprland = {
enable = true; enable = true;
dunst.enable = false; # Disable for hyprpanel dunst.enable = !config.modules.hyprpanel.enable; # Disable for hyprpanel
theme = "Foggy-Lake"; # Three-Bears theme = "Foggy-Lake"; # Three-Bears
keybindings = { keybindings = {
@ -111,7 +111,6 @@ rec {
"nextcloud --background" "nextcloud --background"
"keepassxc" "keepassxc"
"ferdium" "ferdium"
"kdeconnect-indicator"
]; ];
}; };
@ -219,8 +218,7 @@ rec {
neovide = true; neovide = true;
}; };
nnn.enable = false; nnn.enable = false; # Use yazi
rmpc.enable = true; rmpc.enable = true;
rofi = { rofi = {
@ -229,7 +227,7 @@ rec {
theme = "Foggy-Lake"; theme = "Foggy-Lake";
}; };
waybar.enable = false; waybar.enable = false; # Use hyprpanel
zathura.enable = true; zathura.enable = true;
}; };
@ -347,10 +345,21 @@ rec {
unzip # Unzip stuff unzip # Unzip stuff
progress # Find coreutils processes and show their progress progress # Find coreutils processes and show their progress
tokei # Text file statistics in a project tokei # Text file statistics in a project
nvd # nix rebuild diff
ripdrag # drag & drop from terminal ripdrag # drag & drop from terminal
playerctl # media player control playerctl # media player control
pastel # color tools pastel # color tools
nvd # nix rebuild diff
nix-search-tv # search nixpkgs, nur, nixos options and homemanager options
nix-tree # Browse the nix store sorted by size (gdu for closures)
nurl # Generate nix fetcher sections based on URLs
# Run unpatched binaries on NixOS
# Sets NIX_LD_LIBRARY_PATH and NIX_LD variables for nix-ld.
# Start dynamically linked executable using "nix-alien-ld -- <Executable>".
inputs.nix-alien.packages.${system}.nix-alien
# Search nixpkgs
inputs.nps.packages.${system}.default
# Hardware/Software info # Hardware/Software info
pciutils # lspci pciutils # lspci
@ -492,7 +501,8 @@ rec {
import = { import = {
write = true; # Write metadata to files write = true; # Write metadata to files
copy = true; # Move files to the music directory when importing copy = false; # Copy files to the music directory when importing
move = true; # Move files to the music directory when importing
log = "${home.homeDirectory}/Music/.beetslog.txt"; log = "${home.homeDirectory}/Music/.beetslog.txt";
}; };
@ -1007,7 +1017,10 @@ rec {
}; };
services = { services = {
kdeconnect.enable = nixosConfig.programs.kdeconnect.enable; # Only the system package sets up the firewall kdeconnect = {
enable = nixosConfig.programs.kdeconnect.enable; # Only the system package sets up the firewall
indicator = nixosConfig.programs.kdeconnect.enable;
};
mpd = { mpd = {
enable = true; enable = true;

View File

@ -113,7 +113,9 @@
# jetbrains.webstorm # jetbrains.webstorm
# Unity Stuff # Unity Stuff
# unityhub # TODO: Disable until https://github.com/NixOS/nixpkgs/issues/418451 is closed # unityhub
unityhub_pinned_3_13.unityhub # TODO: Remove after https://github.com/NixOS/nixpkgs/issues/418451
rider rider
dotnetCore dotnetCore
mono mono

View File

@ -181,6 +181,8 @@ in {
(abbrify pkgs.lazygit {lg = "lazygit";}) (abbrify pkgs.lazygit {lg = "lazygit";})
(abbrify pkgs.nix-search-tv {search = "nix-search-tv print --indexes 'nixos,home-manager,nixpkgs,nur' | fzf --preview 'nix-search-tv preview {}' --scheme history";})
# Doesn't work with abbrify because I have nnn.override... # Doesn't work with abbrify because I have nnn.override...
(lib.optionalAttrs config.modules.nnn.enable {n = "nnncd -a";}) (lib.optionalAttrs config.modules.nnn.enable {n = "nnncd -a";})
(lib.optionalAttrs config.modules.nnn.enable {np = "nnncd -a -P p";}) (lib.optionalAttrs config.modules.nnn.enable {np = "nnncd -a -P p";})

View File

@ -68,9 +68,6 @@
"$mainMod CTRL, k" = ["movewindow, u"]; "$mainMod CTRL, k" = ["movewindow, u"];
"$mainMod CTRL, d" = ["movewindow, d"]; "$mainMod CTRL, d" = ["movewindow, d"];
# Special workspace
"$mainMod, x" = ["togglespecialworkspace"];
# TODO: Somehow write this more compact? Try to use workspace 0 instead of 10... # TODO: Somehow write this more compact? Try to use workspace 0 instead of 10...
"$mainMod, 1" = ["workspace, 1"]; "$mainMod, 1" = ["workspace, 1"];
"$mainMod, 2" = ["workspace, 2"]; "$mainMod, 2" = ["workspace, 2"];
@ -82,6 +79,7 @@
"$mainMod, 8" = ["workspace, 8"]; "$mainMod, 8" = ["workspace, 8"];
"$mainMod, 9" = ["workspace, 9"]; "$mainMod, 9" = ["workspace, 9"];
"$mainMod, 0" = ["workspace, 10"]; "$mainMod, 0" = ["workspace, 10"];
"$mainMod, x" = ["togglespecialworkspace"];
"$mainMod SHIFT, 1" = ["movetoworkspace, 1"]; "$mainMod SHIFT, 1" = ["movetoworkspace, 1"];
"$mainMod SHIFT, 2" = ["movetoworkspace, 2"]; "$mainMod SHIFT, 2" = ["movetoworkspace, 2"];
@ -93,6 +91,7 @@
"$mainMod SHIFT, 8" = ["movetoworkspace, 8"]; "$mainMod SHIFT, 8" = ["movetoworkspace, 8"];
"$mainMod SHIFT, 9" = ["movetoworkspace, 9"]; "$mainMod SHIFT, 9" = ["movetoworkspace, 9"];
"$mainMod SHIFT, 0" = ["movetoworkspace, 10"]; "$mainMod SHIFT, 0" = ["movetoworkspace, 10"];
"$mainMod SHIFT, x" = ["movetoworkspace, special"];
# Reset workspaces to the defined configuration in hyprland.workspaces: # Reset workspaces to the defined configuration in hyprland.workspaces:
# [ # [
@ -112,23 +111,25 @@
"$mainMod, mouse:273" = ["resizewindow"]; "$mainMod, mouse:273" = ["resizewindow"];
}; };
always-exec = [ always-exec = builtins.concatLists [
# "dunst" # Notifications (lib.optionals hyprland.dunst.enable ["dunst"]) # Notifications
"wl-paste -t text --watch clipman store --no-persist" [
"wl-paste -p -t text --watch clipman store -P --histpath=\"~/.local/share/clipman-primary.json\"" "wl-paste -t text --watch clipman store --no-persist"
"hyprctl setcursor Bibata-Modern-Classic 16" "wl-paste -p -t text --watch clipman store -P --histpath=\"~/.local/share/clipman-primary.json\""
"hyprsunset --identity" "hyprctl setcursor Bibata-Modern-Classic 16"
"hyprsunset --identity"
# HACK: Hyprland doesn't set the xwayland/x11 keymap correctly # HACK: Hyprland doesn't set the xwayland/x11 keymap correctly
"setxkbmap -layout ${hyprland.kb-layout} -variant ${hyprland.kb-variant} -model pc104" "setxkbmap -layout ${hyprland.kb-layout} -variant ${hyprland.kb-variant} -model pc104"
# HACK: Flatpak doesn't find applications in the system PATH # HACK: Flatpak doesn't find applications in the system PATH
"systemctl --user import-environment PATH && systemctl --user restart xdg-desktop-portal.service" "systemctl --user import-environment PATH && systemctl --user restart xdg-desktop-portal.service"
# Provide a polkit authentication UI. # Provide a polkit authentication UI.
# This is used for example when running systemd commands without root. # This is used for example when running systemd commands without root.
"${pkgs.kdePackages.polkit-kde-agent-1}/libexec/polkit-kde-authentication-agent-1" "${pkgs.kdePackages.polkit-kde-agent-1}/libexec/polkit-kde-authentication-agent-1"
# "systemctl --user start hyprpolkitagent.service" # "systemctl --user start hyprpolkitagent.service"
]
]; ];
in { in {
options.modules.hyprland = import ./options.nix {inherit lib mylib;}; options.modules.hyprland = import ./options.nix {inherit lib mylib;};
@ -159,7 +160,7 @@ in {
x11.enable = true; x11.enable = true;
package = pkgs.bibata-cursors; package = pkgs.bibata-cursors;
name = "Bibata-Modern-Classic"; name = "Bibata-Modern-Classic";
size = 16; size = 32;
}; };
packages = with pkgs; [ packages = with pkgs; [

View File

@ -411,29 +411,20 @@ with mylib.networking; {
# Empty since we basically only need git + editor which is enabled below # Empty since we basically only need git + editor which is enabled below
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
iw iw
# iPhone tethering + mounting
libimobiledevice
ifuse
usbmuxd
mprocs # run multiple processes in single terminal window, screen alternative mprocs # run multiple processes in single terminal window, screen alternative
parted # partition manager parted # partition manager
procs # Better ps procs # Better ps
procps # pgrep, pkill procps # pgrep, pkill
killall
slirp4netns # user network namespaces slirp4netns # user network namespaces
wireguard-tools wireguard-tools
man-pages man-pages
man-pages-posix man-pages-posix
# Sets NIX_LD_LIBRARY_PATH and NIX_LD variables for nix-ld # iPhone tethering + mounting
# Start dynamically linked executable using "nix-alien-ld -- <Executable>" libimobiledevice
inputs.nix-alien.packages.${system}.nix-alien ifuse
usbmuxd
# Search nixpkgs
inputs.nps.packages.${system}.default
# egl-wayland
]; ];
# It is preferred to use the module (if it exists) over environment.systemPackages, # It is preferred to use the module (if it exists) over environment.systemPackages,