Compare commits
No commits in common. "master" and "multihome" have entirely different histories.
36 changed files with 2347 additions and 2488 deletions
11
README.md → .github/README.md
vendored
11
README.md → .github/README.md
vendored
|
@ -1,8 +1,8 @@
|
|||
<h1>
|
||||
floppydisk's dotfiles<br>
|
||||
floppydisk's dotfiles
|
||||
<img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/palette/macchiato.png" width="600px" /> <br>
|
||||
|
||||
<a href="https://github.com/floppydisk05/dotfiles/stargazers">
|
||||
<a href="https://github.com/floppydisk05/dotfiles/stargazers">
|
||||
<img src="https://img.shields.io/github/stars/floppydisk05/dotfiles?color=ca9ee6&labelColor=303446&style=for-the-badge">
|
||||
</a>
|
||||
<a href="https://github.com/floppydisk05/dotfiles/">
|
||||
|
@ -22,18 +22,17 @@
|
|||
- **Editor:** [neovim](https://github.com/neovim/neovim/) / [VScode](https://code.visualstudio.com/)
|
||||
- **File Manager:** [Dolphin](https://github.com/KDE/dolphin)
|
||||
|
||||
|
||||
## Main Applications
|
||||
|
||||
- **Browser:** [Mozilla Firefox Developer Edition](https://www.mozilla.org/en-US/firefox/developer/)
|
||||
- **E-mail:** [Mozilla Thunderbird](https://www.thunderbird.net/en-US/)
|
||||
- **Media:** [VLC Media Player](https://www.videolan.org/) / [Plexamp](https://www.plex.tv/plexamp/)
|
||||
|
||||
# Notes
|
||||
|
||||
# Notes
|
||||
If you have any questions or issues, open an issue under this repository. If you have any suggestions for improvement, head to the "Pull Requests" section and make your changes. If you think this repository is confusing, you are (mostly) right. Feel free to open an issue and ask why something is the way it is.
|
||||
|
||||
## Credits
|
||||
|
||||
- **[NotAShelf](https://github.com/NotAShelf)** - Introduced me to NixOS, pretty much the reason this repo exists
|
||||
- **[rubiigen](https://github.com/rubiigen)** - Huge thanks for un-fucking my dots after I neglected them for 5 months because my main pc died
|
||||
- **[toger5](https://github.com/toger5)** - My waybar stylesheet is a ~~stolen~~ modified version of [theirs](https://gist.github.com/toger5/3a509d9a9d7ebba1e02205b00449ccff#file-style-css)
|
||||
- **[toger5](https://github.com/toger5)** - My waybar stylesheet is a ~~stolen~~ modified version of [theirs](https://gist.github.com/toger5/3a509d9a9d7ebba1e02205b00449ccff#file-style-css)
|
23
.github/workflows/check.yml
vendored
23
.github/workflows/check.yml
vendored
|
@ -1,23 +0,0 @@
|
|||
name: Check Flake
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
pull_request:
|
||||
paths:
|
||||
- "**.nix"
|
||||
- "**.lock"
|
||||
- ".github/workflows/check.yml"
|
||||
push:
|
||||
paths:
|
||||
- "**.nix"
|
||||
- "**.lock"
|
||||
- ".github/workflows/check.yml"
|
||||
|
||||
jobs:
|
||||
check:
|
||||
# uses the local reusable workflow
|
||||
uses: ./.github/workflows/nix.yml
|
||||
secrets:
|
||||
GH_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
|
||||
with:
|
||||
command: nix flake check --accept-flake-config
|
33
.github/workflows/nix.yml
vendored
33
.github/workflows/nix.yml
vendored
|
@ -1,33 +0,0 @@
|
|||
name: Nix Setup
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
command:
|
||||
required: false
|
||||
type: string
|
||||
platform:
|
||||
default: "ubuntu"
|
||||
required: false
|
||||
type: string
|
||||
secrets:
|
||||
GH_TOKEN:
|
||||
required: true
|
||||
|
||||
jobs:
|
||||
nix:
|
||||
runs-on: "${{ inputs.platform }}-latest"
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
token: "${{ secrets.GH_TOKEN }}"
|
||||
|
||||
- name: Install Nix
|
||||
uses: DeterminateSystems/nix-installer-action@main
|
||||
|
||||
- name: Nix Magic Cache
|
||||
uses: DeterminateSystems/magic-nix-cache-action@main
|
||||
|
||||
- name: "Run Input: ${{ inputs.command }}"
|
||||
run: "${{ inputs.command }}"
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
.vscode/
|
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
"workbench.colorCustomizations": {}
|
||||
}
|
2963
flake.lock
2963
flake.lock
File diff suppressed because it is too large
Load diff
127
flake.nix
127
flake.nix
|
@ -1,66 +1,103 @@
|
|||
{
|
||||
description = "Your new nix config";
|
||||
|
||||
inputs = {
|
||||
# Nixpkgs
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; # based unstable packages
|
||||
nixpkgs-master.url = "github:nixos/nixpkgs/master"; # cringe stable packages
|
||||
|
||||
# Home manager
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
# neovim-flake
|
||||
neovim-flake = {
|
||||
url = "github:notashelf/neovim-flake";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
# arrpc
|
||||
arrpc = {
|
||||
url = "github:notashelf/arrpc-flake";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
# hyprland
|
||||
hyprland.url = "github:hyprwm/Hyprland";
|
||||
};
|
||||
|
||||
outputs = {
|
||||
self,
|
||||
nixpkgs,
|
||||
home-manager,
|
||||
hyprland,
|
||||
...
|
||||
}: let
|
||||
} @ inputs: let
|
||||
inherit (self) outputs;
|
||||
forAllSystems = nixpkgs.lib.genAttrs [
|
||||
"aarch64-linux"
|
||||
"i686-linux"
|
||||
"x86_64-linux"
|
||||
#"i686-linux"
|
||||
#"aarch64-darwin"
|
||||
#"x86_64-darwin"
|
||||
"aarch64-darwin"
|
||||
"x86_64-darwin"
|
||||
];
|
||||
in {
|
||||
# Entrypoint for NixOS configurations
|
||||
nixosConfigurations = import ./hosts {inherit self;};
|
||||
|
||||
# devshells that are provided by this flake
|
||||
# adding more packages to buildInputs makes them available
|
||||
# while inside the devshell - enetered via `nix develop`
|
||||
in rec {
|
||||
# Your custom packages
|
||||
# Acessible through 'nix build', 'nix shell', etc
|
||||
packages = forAllSystems (
|
||||
system: let
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
in
|
||||
import ./pkgs {inherit pkgs;}
|
||||
);
|
||||
# Devshell for bootstrapping
|
||||
# Acessible through 'nix develop' or 'nix-shell' (legacy)
|
||||
devShells = forAllSystems (
|
||||
system: let
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
in {
|
||||
default = pkgs.mkShell {
|
||||
buildInputs = with pkgs; [
|
||||
alejandra # opionated Nix formatter
|
||||
|
||||
# example of bootstrapping self-contained shell
|
||||
# applications for your flake
|
||||
# this adds an `update` command to your shell
|
||||
# which'll update all inputs and commit
|
||||
(writeShellApplication {
|
||||
name = "update";
|
||||
text = ''
|
||||
nix flake update && git commit flake.lock -m "flake: bump inputs"
|
||||
'';
|
||||
})
|
||||
];
|
||||
};
|
||||
}
|
||||
in
|
||||
import ./shell.nix {inherit pkgs;}
|
||||
);
|
||||
|
||||
formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.alejandra);
|
||||
};
|
||||
# Your custom packages and modifications, exported as overlays
|
||||
# overlays = import ./overlays {inherit inputs;}; # TODO: only use overlays when you understand what tthey do
|
||||
|
||||
inputs = {
|
||||
# Nixpkgs (unstable)
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
# Reusable nixos modules you might want to export
|
||||
# These are usually stuff you would upstream into nixpkgs
|
||||
# nixosModules = import ./modules/public/nixos;
|
||||
# Reusable home-manager modules you might want to export
|
||||
# These are usually stuff you would upstream into home-manager
|
||||
# homeManagerModules = import ./modules/public/home-manager;
|
||||
|
||||
# Home manager
|
||||
home-manager.url = "github:nix-community/home-manager/";
|
||||
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||
# NixOS configuration entrypoint
|
||||
# Available through 'nixos-rebuild --flake .#your-hostname'
|
||||
nixosConfigurations = import ./hosts {inherit nixpkgs self outputs;};
|
||||
|
||||
# nixos-hardware
|
||||
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
||||
|
||||
hyprland.url = "github:hyprwm/Hyprland?submodules=1";
|
||||
|
||||
nvf = {
|
||||
url = "github:notashelf/nvf";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
# Standalone home-manager configuration entrypoint
|
||||
# Available through 'home-manager --flake .#your-username@your-hostname'
|
||||
homeConfigurations = {
|
||||
"floppydisk@nixbox" = home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance
|
||||
extraSpecialArgs = {inherit inputs outputs;};
|
||||
modules = [
|
||||
hyprland.homeManagerModules.default
|
||||
{wayland.windowManager.hyprland.enable = true;}
|
||||
# > Our main home-manager configuration file <
|
||||
./homes/floppydisk
|
||||
];
|
||||
};
|
||||
"floppydisk@nixpad" = home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance
|
||||
extraSpecialArgs = {inherit inputs outputs;};
|
||||
modules = [
|
||||
hyprland.homeManagerModules.default
|
||||
{wayland.windowManager.hyprland.enable = true;}
|
||||
# > Our main home-manager configuration file <
|
||||
./homes/floppydisk
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,18 +1,19 @@
|
|||
{
|
||||
inputs,
|
||||
self,
|
||||
config,
|
||||
outputs,
|
||||
...
|
||||
}: {
|
||||
home-manager = {
|
||||
useUserPackages = true;
|
||||
useGlobalPkgs = true;
|
||||
extraSpecialArgs = {
|
||||
inherit inputs self;
|
||||
inherit inputs self outputs;
|
||||
};
|
||||
users = {
|
||||
# TODO: "base" user that will be used by default is there is no defined
|
||||
# home directory for the user
|
||||
floppydisk = ./floppydisk;
|
||||
# more users can go here, the format is only for convenience
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
14
homes/floppydisk/arrpc.nix
Normal file
14
homes/floppydisk/arrpc.nix
Normal file
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
inputs.arrpc.homeManagerModules.default
|
||||
];
|
||||
|
||||
home.packages = [pkgs.webcord-vencord];
|
||||
|
||||
# provided by the arrpc-flake home-manager module
|
||||
services.arrpc.enable = true;
|
||||
}
|
|
@ -1,29 +1,217 @@
|
|||
# This is your home-manager configuration file
|
||||
# Use this to configure your home environment (it replaces ~/.config/nixpkgs/home.nix)
|
||||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
# You can import other home-manager modules here
|
||||
imports = [
|
||||
./packages.nix # home.packages and similar stuff
|
||||
./nvf.nix
|
||||
./ssh.nix
|
||||
./git.nix
|
||||
# If you want to use modules your own flake exports (from modules/home-manager):
|
||||
# outputs.homeManagerModules.example
|
||||
|
||||
# Or modules exported from other flakes (such as nix-colors):
|
||||
# inputs.nix-colors.homeManagerModules.default
|
||||
|
||||
# You can also split up your configuration and import pieces of it here:
|
||||
./neovim-flake.nix
|
||||
./arrpc.nix
|
||||
];
|
||||
|
||||
home = {
|
||||
username = "floppydisk";
|
||||
homeDirectory = "/home/floppydisk";
|
||||
file.".config/lockonsleep/config.sh".source = ./lock.sh;
|
||||
file.".config/hypr/hyprpaper.conf".text = ''
|
||||
preload = ${/. + ../../misc/wallpapers/oneshot-1.jpg}
|
||||
wallpaper = ,${/. + ../../misc/wallpapers/oneshot-1.jpg}
|
||||
splash = false
|
||||
'';
|
||||
packages = with pkgs; [
|
||||
# Utils
|
||||
handbrake
|
||||
thunderbird
|
||||
picard
|
||||
realvnc-vnc-viewer
|
||||
rpi-imager
|
||||
obs-studio
|
||||
yt-dlp
|
||||
_1password-gui
|
||||
_1password
|
||||
git-credential-1password
|
||||
firefox-devedition
|
||||
inputs.arrpc.packages.${pkgs.system}.arrpc
|
||||
rdesktop
|
||||
_3llo
|
||||
gimp
|
||||
qemu
|
||||
virt-manager
|
||||
exactaudiocopy
|
||||
fsv
|
||||
lsd
|
||||
lsdvd
|
||||
thefuck
|
||||
zip
|
||||
unzip
|
||||
notion-app-enhanced
|
||||
libresprite
|
||||
qbittorrent
|
||||
wine
|
||||
vifm
|
||||
cloudflared
|
||||
ansible
|
||||
just
|
||||
pwgen
|
||||
grafx2
|
||||
libreoffice-fresh
|
||||
|
||||
# Fetch
|
||||
neofetch
|
||||
yafetch
|
||||
cpufetch
|
||||
bunnyfetch
|
||||
nitch
|
||||
screenfetch
|
||||
starfetch
|
||||
|
||||
# DevTools
|
||||
github-desktop
|
||||
gh
|
||||
codeql
|
||||
vscode
|
||||
jetbrains.ruby-mine
|
||||
jetbrains.rider
|
||||
jetbrains.phpstorm
|
||||
jetbrains.idea-ultimate
|
||||
jetbrains.webstorm
|
||||
lazygit
|
||||
wakatime
|
||||
mongodb-compass
|
||||
mongosh
|
||||
httpie
|
||||
ngrok
|
||||
mycli
|
||||
squirrel-sql
|
||||
figma-linux
|
||||
|
||||
# Langs
|
||||
openscad
|
||||
nodejs_18
|
||||
nodePackages.yarn
|
||||
nodePackages.ts-node
|
||||
nodePackages.pnpm
|
||||
php82
|
||||
php82Packages.composer
|
||||
deno
|
||||
python310
|
||||
python310Packages.pip
|
||||
python310Packages.discordpy
|
||||
dotnet-sdk
|
||||
jdk17
|
||||
maven
|
||||
dart
|
||||
purescript
|
||||
|
||||
# Comms
|
||||
nheko
|
||||
element-desktop
|
||||
(discord.override {
|
||||
withOpenASAR = true;
|
||||
withVencord = true;
|
||||
})
|
||||
caprine-bin
|
||||
teamspeak5_client
|
||||
|
||||
# Gaming
|
||||
rpcs3
|
||||
pcsxr
|
||||
pcsx2
|
||||
steam
|
||||
gzdoom
|
||||
minecraft
|
||||
dolphin-emu
|
||||
prismlauncher
|
||||
fceux
|
||||
snes9x
|
||||
heroic
|
||||
openrct2
|
||||
osu-lazer-bin
|
||||
|
||||
# Media
|
||||
vlc
|
||||
libsForQt5.vvave
|
||||
tidal-hifi
|
||||
|
||||
# zsh Themes
|
||||
zsh-powerlevel10k
|
||||
];
|
||||
};
|
||||
|
||||
# Add stuff for your user as you see fit:
|
||||
programs = {
|
||||
# Enable home-manager
|
||||
home-manager.enable = true;
|
||||
|
||||
# Enable z-shell
|
||||
zsh = {
|
||||
enable = true;
|
||||
shellAliases = {
|
||||
ls = "lsd";
|
||||
ll = "ls -l";
|
||||
la = "ls -la";
|
||||
};
|
||||
history = {
|
||||
size = 10000;
|
||||
path = "$HOME/.config/zsh/history";
|
||||
};
|
||||
oh-my-zsh = {
|
||||
enable = true;
|
||||
plugins = [
|
||||
"git"
|
||||
"thefuck"
|
||||
];
|
||||
custom = "$HOME/.oh-my-custom";
|
||||
theme = "powerlevel10k/powerlevel10k";
|
||||
};
|
||||
plugins = [
|
||||
{
|
||||
name = "powerlevel10k";
|
||||
src = pkgs.zsh-powerlevel10k;
|
||||
file = "share/zsh-powerlevel10k/powerlevel10k.zsh-theme";
|
||||
}
|
||||
];
|
||||
initExtra = ''
|
||||
source ~/.p10k.zsh
|
||||
'';
|
||||
};
|
||||
|
||||
# enable git and configure users
|
||||
git = {
|
||||
enable = true;
|
||||
userName = "Frankie B.";
|
||||
userEmail = "git@diskfloppy.me";
|
||||
extraConfig = {
|
||||
# Sign all commits using ssh key
|
||||
commit.gpgsign = true;
|
||||
gpg.format = "ssh";
|
||||
user.signingkey = "~/.ssh/id_ed25519.pub";
|
||||
init.defaultBranch = "master";
|
||||
};
|
||||
};
|
||||
|
||||
irssi = {
|
||||
enable = true;
|
||||
networks = {
|
||||
znc = {
|
||||
nick = "floppydisk";
|
||||
server = {
|
||||
address = "irc.nick99nack.com";
|
||||
port = 8888;
|
||||
autoConnect = true;
|
||||
ssl.enable = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
systemd.enable = true;
|
||||
systemdIntegration = true;
|
||||
settings = import ./hyprland.nix;
|
||||
};
|
||||
|
||||
|
@ -33,73 +221,9 @@
|
|||
style = import ./waybar-style.nix;
|
||||
};
|
||||
|
||||
services.udiskie.enable = true;
|
||||
services.arrpc.enable = true;
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
shellAliases = {
|
||||
ls = "lsd";
|
||||
ll = "ls -l";
|
||||
la = "ls -la";
|
||||
};
|
||||
history = {
|
||||
size = 10000;
|
||||
path = "$HOME/.config/zsh/history";
|
||||
};
|
||||
oh-my-zsh = {
|
||||
enable = true;
|
||||
plugins = [
|
||||
"git"
|
||||
# "thefuck"
|
||||
];
|
||||
custom = "$HOME/.oh-my-custom";
|
||||
#theme = "powerlevel10k/powerlevel10k";
|
||||
};
|
||||
plugins = [
|
||||
{
|
||||
name = "powerlevel10k";
|
||||
src = pkgs.zsh-powerlevel10k;
|
||||
file = "share/zsh-powerlevel10k/powerlevel10k.zsh-theme";
|
||||
}
|
||||
];
|
||||
initExtra = ''
|
||||
source ~/.p10k.zsh
|
||||
'';
|
||||
};
|
||||
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userName = "Frankie B.";
|
||||
userEmail = "git@diskfloppy.me";
|
||||
extraConfig = {
|
||||
# commit.gpgsign = true;
|
||||
# gpg.format = "ssh";
|
||||
# user.signingkey = "~/.ssh/id_ed25519.pub";
|
||||
init.defaultBranch = "master";
|
||||
};
|
||||
};
|
||||
|
||||
programs.irssi = {
|
||||
enable = true;
|
||||
networks = {
|
||||
znc = {
|
||||
nick = "floppydisk";
|
||||
server = {
|
||||
address = "irc.nick99nack.com";
|
||||
port = 8888;
|
||||
autoConnect = true;
|
||||
ssl.enable = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# let HM manage itself when in standalone mode
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
# Nicely reload system(d) units when changing configs
|
||||
systemd.user.startServices = lib.mkDefault "sd-switch";
|
||||
# Nicely reload system units when changing configs
|
||||
systemd.user.startServices = "sd-switch";
|
||||
|
||||
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
|
||||
home.stateVersion = "24.05";
|
||||
home.stateVersion = "22.11";
|
||||
}
|
||||
|
|
|
@ -1,17 +0,0 @@
|
|||
{
|
||||
nixosConfig,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
programs.git = {
|
||||
extraConfig = {
|
||||
init.defaultBranch = "master";
|
||||
gpg.format = "ssh";
|
||||
gpg."ssh".program = "${pkgs._1password-gui}/bin/op-ssh-sign";
|
||||
commit.gpgsign = true;
|
||||
user.signingkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDcwriIE5K8SVewvVdgNvmhtAVvJPtMnNkkS4ETi5YgJ";
|
||||
push.autoSetupRemote = true;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -10,20 +10,11 @@
|
|||
"waybar"
|
||||
"swaync"
|
||||
"1password --silent"
|
||||
"blueman-applet"
|
||||
];
|
||||
|
||||
monitor = [];
|
||||
|
||||
windowrulev2 = [
|
||||
"float, title:^(Picture-in-Picture)$"
|
||||
"pin, title:^(Picture-in-Picture)$"
|
||||
"move 67% 72%, title:^(Picture-in-Picture)$"
|
||||
"size 33% 28%, title:^(Picture-in-Picture)$"
|
||||
];
|
||||
|
||||
windowrule = [
|
||||
"float,^(blueman-manager)$"
|
||||
monitor = [
|
||||
"DP-1,1600x900,0x0,1"
|
||||
"HDMI-A-1,1280x1024,1600x0,1"
|
||||
];
|
||||
|
||||
input = {
|
||||
|
@ -37,30 +28,33 @@
|
|||
gaps_in = 5;
|
||||
gaps_out = 20;
|
||||
border_size = 2;
|
||||
"col.active_border" = "rgb(f38ba8)";
|
||||
"col.inactive_border" = "rgb(313244)";
|
||||
"col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg";
|
||||
"col.inactive_border" = "rgba(595959aa)";
|
||||
layout = "dwindle";
|
||||
};
|
||||
|
||||
decoration = {
|
||||
blur = {
|
||||
enabled = true;
|
||||
size = 3;
|
||||
passes = 1;
|
||||
new_optimizations = 1;
|
||||
enabled = true;
|
||||
size = 3;
|
||||
passes = 1;
|
||||
new_optimizations = 1;
|
||||
};
|
||||
drop_shadow = "no";
|
||||
drop_shadow = "yes";
|
||||
shadow_range = 20;
|
||||
shadow_render_power = 5;
|
||||
"col.shadow" = "rgba(1a1a1aee)";
|
||||
};
|
||||
|
||||
animations = {
|
||||
enabled = true;
|
||||
animation = [
|
||||
"windows, 1, 7, default"
|
||||
"windowsOut, 1, 7, default, popin 80%"
|
||||
"border, 1, 10, default"
|
||||
"borderangle, 1, 8, default"
|
||||
"fade, 1, 7, default"
|
||||
"workspaces, 1, 6, default"
|
||||
"windows, 1, 7, default"
|
||||
"windowsOut, 1, 7, default, popin 80%"
|
||||
"border, 1, 10, default"
|
||||
"borderangle, 1, 8, default"
|
||||
"fade, 1, 7, default"
|
||||
"workspaces, 1, 6, default"
|
||||
];
|
||||
};
|
||||
|
||||
|
@ -69,17 +63,16 @@
|
|||
preserve_split = "yes";
|
||||
};
|
||||
|
||||
master = {
|
||||
new_is_master = true;
|
||||
};
|
||||
|
||||
gestures = {
|
||||
workspace_swipe = false;
|
||||
};
|
||||
|
||||
"general:resize_on_border" = "true";
|
||||
|
||||
bindl = [
|
||||
",switch:on:Lid Switch,exec,${/. + ../../misc/scripts/lidclose.sh}"
|
||||
",switch:off:Lid Switch,exec,${/. + ../../misc/scripts/lidopen.sh}"
|
||||
];
|
||||
|
||||
bindm = [
|
||||
# mouse binds
|
||||
"ALT,mouse:272,movewindow"
|
||||
|
@ -95,10 +88,6 @@
|
|||
# mute key
|
||||
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
||||
|
||||
# brightness controls
|
||||
", XF86MonBrightnessUp, exec, brightnessctl s +20%"
|
||||
", XF86MonBrightnessDown, exec, brightnessctl s 20%-"
|
||||
|
||||
# general shortcuts
|
||||
"$mod, Q, exec, kitty"
|
||||
"$mod, C, killactive, "
|
||||
|
@ -116,14 +105,11 @@
|
|||
"$mod SHIFT, K, movewindow, u"
|
||||
"$mod SHIFT, J, movewindow, d"
|
||||
|
||||
# maximize window
|
||||
"$mod, return, fullscreen, 0"
|
||||
|
||||
# screenshot
|
||||
", Print, exec, grim -l 9 -g \"$(slurp)\" - | wl-copy"
|
||||
|
||||
# wofi
|
||||
"$mod, D, exec, wofi --show=drun -G"
|
||||
# rofi
|
||||
"$mod, D, exec, rofi -show drun --show-icons"
|
||||
|
||||
# workspace scroll
|
||||
"$mod, mouse_down, workspace, e+1"
|
||||
|
@ -158,4 +144,4 @@
|
|||
"$mod, up, movefocus, u"
|
||||
"$mod, down, movefocus, d"
|
||||
];
|
||||
}
|
||||
}
|
|
@ -1,2 +0,0 @@
|
|||
exec swayidle -w \
|
||||
before-sleep 'gtklock -d -i'
|
|
@ -4,10 +4,10 @@
|
|||
...
|
||||
}: {
|
||||
imports = [
|
||||
inputs.nvf.homeManagerModules.default
|
||||
inputs.neovim-flake.homeManagerModules.default
|
||||
];
|
||||
|
||||
programs.nvf = {
|
||||
programs.neovim-flake = {
|
||||
enable = true;
|
||||
settings = {
|
||||
vim = {
|
||||
|
@ -63,7 +63,7 @@
|
|||
enable = true;
|
||||
fillChar = null;
|
||||
eolChar = null;
|
||||
scope.enabled = true;
|
||||
showCurrContext = true;
|
||||
};
|
||||
cursorline = {
|
||||
enable = true;
|
||||
|
@ -78,12 +78,12 @@
|
|||
};
|
||||
};
|
||||
|
||||
#vim.theme = {
|
||||
# enable = true;
|
||||
# name = "onedark";
|
||||
# style = "dark";
|
||||
#transparent = false;
|
||||
#};
|
||||
vim.theme = {
|
||||
enable = true;
|
||||
name = "onedark";
|
||||
style = "dark";
|
||||
transparent = false;
|
||||
};
|
||||
vim.autopairs.enable = true;
|
||||
|
||||
vim.autocomplete = {
|
||||
|
@ -92,53 +92,52 @@
|
|||
};
|
||||
|
||||
vim.filetree = {
|
||||
nvimTree = {
|
||||
nvimTree = {
|
||||
enable = true;
|
||||
openOnSetup = true;
|
||||
setupOpts = {
|
||||
disable_netrw = true;
|
||||
disableNetrw = true;
|
||||
|
||||
hijack_unnamed_buffer_when_opening = true;
|
||||
hijack_cursor = true;
|
||||
hijack_directories = {
|
||||
enable = true;
|
||||
autoOpen = true;
|
||||
hijackUnnamedBufferWhenOpening = true;
|
||||
hijackCursor = true;
|
||||
hijackDirectories = {
|
||||
enable = true;
|
||||
autoOpen = true;
|
||||
};
|
||||
|
||||
git = {
|
||||
enable = true;
|
||||
showOnDirs = false;
|
||||
timeout = 100;
|
||||
};
|
||||
|
||||
view = {
|
||||
preserveWindowProportions = false;
|
||||
cursorline = false;
|
||||
width = {
|
||||
min = 35;
|
||||
max = -1;
|
||||
padding = 1;
|
||||
};
|
||||
};
|
||||
|
||||
git = {
|
||||
enable = true;
|
||||
showOnDirs = false;
|
||||
timeout = 100;
|
||||
renderer = {
|
||||
indentMarkers.enable = true;
|
||||
rootFolderLabel = false;
|
||||
|
||||
icons = {
|
||||
modifiedPlacement = "after";
|
||||
gitPlacement = "after";
|
||||
show.git = true;
|
||||
show.modified = true;
|
||||
};
|
||||
};
|
||||
|
||||
view = {
|
||||
cursorline = false;
|
||||
width = {
|
||||
min = 35;
|
||||
max = -1;
|
||||
padding = 1;
|
||||
};
|
||||
};
|
||||
diagnostics.enable = true;
|
||||
|
||||
renderer = {
|
||||
indent_markers.enable = true;
|
||||
root_folder_label = false;
|
||||
|
||||
icons = {
|
||||
modified_placement = "after";
|
||||
git_placement = "after";
|
||||
show.git = true;
|
||||
show.modified = true;
|
||||
};
|
||||
};
|
||||
|
||||
diagnostics.enable = true;
|
||||
|
||||
modified = {
|
||||
enable = true;
|
||||
show_on_dirs = false;
|
||||
show_on_open_dirs = true;
|
||||
};
|
||||
modified = {
|
||||
enable = true;
|
||||
showOnDirs = false;
|
||||
showOnOpenDirs = true;
|
||||
};
|
||||
|
||||
mappings = {
|
||||
|
@ -163,7 +162,7 @@
|
|||
vim.git = {
|
||||
enable = true;
|
||||
gitsigns.enable = true;
|
||||
gitsigns.codeActions.enable = false;
|
||||
gitsigns.codeActions = false;
|
||||
};
|
||||
|
||||
vim.minimap = {
|
||||
|
@ -211,11 +210,11 @@
|
|||
noice.enable = true;
|
||||
smartcolumn = {
|
||||
enable = true;
|
||||
setupOpts.custom_colorcolumn = {
|
||||
nix = "150";
|
||||
ruby = "110";
|
||||
java = "120";
|
||||
go = ["110" "150"];
|
||||
columnAt.languages = {
|
||||
nix = 150;
|
||||
ruby = 110;
|
||||
java = 120;
|
||||
go = [110 150];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -236,18 +235,18 @@
|
|||
comment-nvim.enable = true;
|
||||
};
|
||||
|
||||
#vim.presence = {
|
||||
# presence-nvim = {
|
||||
# enable = true;
|
||||
# auto_update = true;
|
||||
# image_text = "The Superior Text Editor";
|
||||
# client_id = "793271441293967371";
|
||||
# main_image = "neovim";
|
||||
# rich_presence = {
|
||||
# editing_text = "Editing %s";
|
||||
# };
|
||||
# };
|
||||
#};
|
||||
vim.presence = {
|
||||
presence-nvim = {
|
||||
enable = true;
|
||||
auto_update = true;
|
||||
image_text = "The Superior Text Editor";
|
||||
client_id = "793271441293967371";
|
||||
main_image = "neovim";
|
||||
rich_presence = {
|
||||
editing_text = "Editing %s";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,124 +0,0 @@
|
|||
{pkgs, ...}: {
|
||||
home.packages = with pkgs; [
|
||||
# utils
|
||||
handbrake
|
||||
thunderbird
|
||||
#picard
|
||||
rpi-imager
|
||||
obs-studio
|
||||
yt-dlp
|
||||
_1password-gui
|
||||
_1password
|
||||
firefox-devedition
|
||||
rdesktop
|
||||
_3llo
|
||||
gimp
|
||||
qemu
|
||||
virt-manager
|
||||
exactaudiocopy
|
||||
abcde
|
||||
fsv
|
||||
lsd
|
||||
lsdvd
|
||||
# thefuck
|
||||
zip
|
||||
unzip
|
||||
notion-app-enhanced
|
||||
libresprite
|
||||
qbittorrent
|
||||
wine
|
||||
vifm
|
||||
cloudflared
|
||||
ansible
|
||||
just
|
||||
pwgen
|
||||
grafx2
|
||||
libreoffice-fresh
|
||||
wiki-tui
|
||||
calcurse
|
||||
kitty
|
||||
wofi
|
||||
grim
|
||||
wlogout
|
||||
hyprpaper
|
||||
brightnessctl
|
||||
josm
|
||||
|
||||
# fetch
|
||||
neofetch
|
||||
yafetch
|
||||
cpufetch
|
||||
bunnyfetch
|
||||
nitch
|
||||
screenfetch
|
||||
starfetch
|
||||
|
||||
# devtools
|
||||
github-desktop
|
||||
gh
|
||||
vscode
|
||||
jetbrains.ruby-mine
|
||||
jetbrains.rider
|
||||
jetbrains.phpstorm
|
||||
jetbrains.idea-ultimate
|
||||
lazygit
|
||||
wakatime
|
||||
mongodb-compass
|
||||
mongosh
|
||||
httpie
|
||||
ngrok
|
||||
mycli
|
||||
squirrel-sql
|
||||
figma-linux
|
||||
processing
|
||||
|
||||
# langs
|
||||
openscad
|
||||
nodejs_18
|
||||
nodePackages.yarn
|
||||
nodePackages.ts-node
|
||||
nodePackages.pnpm
|
||||
php82
|
||||
php82Packages.composer
|
||||
deno
|
||||
python310
|
||||
python310Packages.pip
|
||||
dotnet-sdk
|
||||
jdk17
|
||||
maven
|
||||
purescript
|
||||
lua
|
||||
#flutter
|
||||
|
||||
# comms
|
||||
nheko
|
||||
vesktop
|
||||
caprine-bin
|
||||
teamspeak_client
|
||||
|
||||
# gaming
|
||||
rpcs3
|
||||
pcsxr
|
||||
pcsx2
|
||||
steam
|
||||
gzdoom
|
||||
dolphin-emu
|
||||
prismlauncher
|
||||
fceux
|
||||
snes9x
|
||||
openrct2
|
||||
osu-lazer-bin
|
||||
|
||||
# media
|
||||
vlc
|
||||
libsForQt5.vvave
|
||||
tidal-hifi
|
||||
youtube-tui
|
||||
mpv
|
||||
spotify
|
||||
spicetify-cli
|
||||
|
||||
# zsh themes
|
||||
zsh-powerlevel10k
|
||||
];
|
||||
}
|
|
@ -1,21 +0,0 @@
|
|||
{
|
||||
nixosConfig,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
_1passwordAgent = {
|
||||
enable = nixosConfig != {} && nixosConfig.programs._1password-gui.enable && nixosConfig.programs._1password-gui.sshAgent;
|
||||
path = "${config.home.homeDirectory}/.1password/agent.sock";
|
||||
};
|
||||
in {
|
||||
programs.ssh = {
|
||||
enable = true;
|
||||
forwardAgent = _1passwordAgent.enable;
|
||||
extraConfig = ''
|
||||
Host *
|
||||
IdentityAgent ~/.1password/agent.sock
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
|
@ -10,7 +10,7 @@
|
|||
window#waybar {
|
||||
background: rgba(43, 48, 59, 0.5);
|
||||
border-bottom: 3px solid rgba(100, 114, 125, 0.5);
|
||||
color: #181825;
|
||||
color: #1e2030;
|
||||
}
|
||||
|
||||
window#waybar.hidden {
|
||||
|
@ -20,14 +20,14 @@ window#waybar.hidden {
|
|||
#workspaces button {
|
||||
padding: 0 5px;
|
||||
background: transparent;
|
||||
color: #45475a;
|
||||
color: #494d64;
|
||||
border-bottom: 3px solid transparent;
|
||||
}
|
||||
|
||||
#workspaces button.active
|
||||
#workspaces button.focused {
|
||||
background-color: #9399b2;
|
||||
border-bottom: 3px solid #45475a;
|
||||
background-color: #939ab7;
|
||||
border-bottom: 3px solid #494d64;
|
||||
}
|
||||
|
||||
#workspaces button.urgent {
|
||||
|
@ -39,41 +39,37 @@ window#waybar.hidden {
|
|||
border-bottom: 3px solid #cad3f5;
|
||||
}
|
||||
|
||||
#custom-notification, #disk, #battery, #cpu, #memory, #temperature, #backlight, #network, #pulseaudio, #custom-media, #tray, #mode, #idle_inhibitor, #bluetooth {
|
||||
#custom-notification, #disk, #clock, #battery, #cpu, #memory, #temperature, #backlight, #network, #pulseaudio, #custom-media, #tray, #mode, #idle_inhibitor {
|
||||
padding: 0 10px;
|
||||
margin: 0 2px;
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
background-color: #cdd6f4;
|
||||
margin-right: 2px;
|
||||
padding: 0 10px;
|
||||
background-color: #cad3f5;
|
||||
}
|
||||
|
||||
#clock {
|
||||
background-color: #64727D;
|
||||
padding: 0 10px;
|
||||
margin-left: 2px;
|
||||
}
|
||||
|
||||
#battery {
|
||||
background-color: #cdd6f4;
|
||||
background-color: #cad3f5;
|
||||
}
|
||||
|
||||
#battery.charging {
|
||||
color: #cdd6f4;
|
||||
color: #cad3f5;
|
||||
background-color: #26A65B;
|
||||
}
|
||||
|
||||
@keyframes blink {
|
||||
to {
|
||||
background-color: #cdd6f4;
|
||||
background-color: #cad3f5;
|
||||
}
|
||||
}
|
||||
|
||||
#battery.critical:not(.charging) {
|
||||
background: #f53c3c;
|
||||
color: #cdd6f4;
|
||||
color: #cad3f5;
|
||||
animation-name: blink;
|
||||
animation-duration: 0.5s;
|
||||
animation-timing-function: linear;
|
||||
|
@ -82,11 +78,11 @@ window#waybar.hidden {
|
|||
}
|
||||
|
||||
#cpu {
|
||||
background: #a6e3a1;
|
||||
background: #a6da95;
|
||||
}
|
||||
|
||||
#memory {
|
||||
background: #cba6f7;
|
||||
background: #c6a0f6;
|
||||
}
|
||||
|
||||
#backlight {
|
||||
|
@ -94,16 +90,12 @@ window#waybar.hidden {
|
|||
}
|
||||
|
||||
#network {
|
||||
background: #fab387;
|
||||
background: #f5a97f;
|
||||
}
|
||||
|
||||
#disk {
|
||||
background: #2980b9;
|
||||
color: #cdd6f4;
|
||||
}
|
||||
|
||||
#bluetooth {
|
||||
background: #74c7ec;
|
||||
color: #cad3f5;
|
||||
}
|
||||
|
||||
|
||||
|
@ -112,7 +104,7 @@ window#waybar.hidden {
|
|||
}
|
||||
|
||||
#pulseaudio {
|
||||
background: #f9e2af;
|
||||
background: #eed49f;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
|
@ -156,7 +148,7 @@ window#waybar.hidden {
|
|||
}
|
||||
|
||||
#custom-notification {
|
||||
color: #181825;
|
||||
background-color: #94e2d5;
|
||||
color: #1e2030;
|
||||
background-color: #8bd5ca;
|
||||
}
|
||||
''
|
||||
''
|
|
@ -5,11 +5,12 @@
|
|||
height = 27;
|
||||
fixed-center = true;
|
||||
modules-left = [
|
||||
"hyprland/workspaces"
|
||||
"custom/notification"
|
||||
"custom/sep"
|
||||
"tray"
|
||||
];
|
||||
modules-center = [
|
||||
"wlr/workspaces"
|
||||
];
|
||||
modules-right = [
|
||||
"battery"
|
||||
|
@ -17,7 +18,6 @@
|
|||
"memory"
|
||||
"pulseaudio"
|
||||
"network"
|
||||
"bluetooth"
|
||||
"clock"
|
||||
];
|
||||
|
||||
|
@ -51,13 +51,10 @@
|
|||
escape = true;
|
||||
};
|
||||
|
||||
"hyprland/workspaces" = {
|
||||
"wlr/workspaces" = {
|
||||
disable-scroll = false;
|
||||
all-outputs = false;
|
||||
format = "{icon}";
|
||||
"on-scroll-up" = "hyprctl dispatch workspace e+1";
|
||||
"on-scroll-down" = "hyprctl dispatch workspace e-1";
|
||||
"on-click" = "activate";
|
||||
active-only = false;
|
||||
format-icons = {
|
||||
"1" = "I";
|
||||
|
@ -111,9 +108,9 @@
|
|||
|
||||
"clock" = {
|
||||
timezone = "Europe/London";
|
||||
format = " {:%H:%M}";
|
||||
format-alt = " {:%H:%M} {%d/%m/%Y}";
|
||||
tooltip-format = " {:%H:%M} {%d/%m/%Y}";
|
||||
format = "{: %H:%M}";
|
||||
format-alt = "{: %H:%M %d/%m/%Y}";
|
||||
tooltip-format = "{: %H:%M %d/%m/%Y}";
|
||||
today-format = "<span color='#aaaaaa'><b><u>{}</u></b></span>";
|
||||
calendar-weeks-pos = "right";
|
||||
format-calendar = "<span color='#aaaaaa'><b><u>{}</u></b></span>";
|
||||
|
@ -138,11 +135,11 @@
|
|||
"warning" = 30;
|
||||
"critical" = 5;
|
||||
};
|
||||
format = "{icon}{capacity}%";
|
||||
format-charging = " {capacity}%";
|
||||
format-plugged = " {capacity}%";
|
||||
format = "{icon}{capacity}% ";
|
||||
format-charging = " {capacity}% ";
|
||||
format-plugged = " {capacity}% ";
|
||||
format-alt = "{icon}{time}";
|
||||
format-icons = [" " " " " " " " " "];
|
||||
format-icoms = [" " " " " " " " " "];
|
||||
};
|
||||
|
||||
"network" = {
|
||||
|
@ -156,15 +153,6 @@
|
|||
format-alt = "{ifname}: {ipaddr}/{cidr}";
|
||||
};
|
||||
|
||||
"bluetooth" = {
|
||||
format = " {status}";
|
||||
format-disabled = "";
|
||||
format-connected = " {num_connections} connected";
|
||||
tooltip-format = "{controller_alias}\t{controller_address}";
|
||||
tooltip-format-connected = "{controller_alias}\t{controller_address}\n\n{device_enumerate}";
|
||||
tooltip-format-enumerate-connected = "{device_alias}\t{device_address}";
|
||||
};
|
||||
|
||||
"pulseaudio" = {
|
||||
on-click = "pavucontrol";
|
||||
format = "{icon}{volume}%";
|
||||
|
@ -186,3 +174,4 @@
|
|||
};
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -1,42 +1,35 @@
|
|||
{self, ...}: let
|
||||
# get inputs from self
|
||||
inherit (self) inputs;
|
||||
# get necessary inputs from self.inputs
|
||||
inherit (inputs) nixpkgs;
|
||||
inherit (inputs.home-manager.nixosModules) home-manager;
|
||||
# get lib from nixpkgs and create and alias for lib.nixosSystem
|
||||
# for potential future overrides & abstractions
|
||||
inherit (nixpkgs) lib;
|
||||
mkSystem = lib.nixosSystem;
|
||||
{
|
||||
nixpkgs,
|
||||
self,
|
||||
outputs,
|
||||
...
|
||||
}: let
|
||||
inputs = self.inputs;
|
||||
|
||||
home = ../homes;
|
||||
|
||||
# define a sharedArgs variable that we can simply inherit
|
||||
# across all hosts to avoid traversing the file whenever
|
||||
# we need to add a common specialArg
|
||||
# if a host needs a specific arg that others do not need
|
||||
# then we can merge into the old attribute set as such:
|
||||
# specialArgs = commonArgs // { newArg = "value"; };
|
||||
|
||||
commonArgs = {inherit self inputs;};
|
||||
home-manager = inputs.home-manager.nixosModules.home-manager;
|
||||
homes = ../homes;
|
||||
in {
|
||||
"watermelon" = mkSystem {
|
||||
specialArgs = commonArgs;
|
||||
nixbox = nixpkgs.lib.nixosSystem {
|
||||
specialArgs = {inherit inputs outputs;};
|
||||
modules = [
|
||||
# this list defines which files will be imported to be used as "modules" in the system config
|
||||
./watermelon/configuration.nix
|
||||
./nixbox/configuration.nix
|
||||
|
||||
# use the nixos-module for home-manager
|
||||
home-manager
|
||||
home
|
||||
homes
|
||||
];
|
||||
};
|
||||
|
||||
"sunfish" = mkSystem {
|
||||
specialArgs = commonArgs;
|
||||
nixpad = nixpkgs.lib.nixosSystem {
|
||||
specialArgs = {inherit inputs outputs;};
|
||||
modules = [
|
||||
./sunfish/configuration.nix
|
||||
# this list defines which files will be imported to be used as "modules" in the system config
|
||||
./nixpad/configuration.nix
|
||||
|
||||
# use the nixos-module for home-manager
|
||||
home-manager
|
||||
home
|
||||
homes
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
219
hosts/nixbox/configuration.nix
Normal file
219
hosts/nixbox/configuration.nix
Normal file
|
@ -0,0 +1,219 @@
|
|||
# Edit this configuration file to define what should be installed on
|
||||
# your system. Help is available in the configuration.nix(5) man page
|
||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
# Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
# Bootloader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
boot.loader.efi.efiSysMountPoint = "/boot/efi";
|
||||
|
||||
networking.hostName = "nixbox"; # Define your hostname.
|
||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||
|
||||
# Configure network proxy if necessary
|
||||
# networking.proxy.default = "http://user:password@proxy:port/";
|
||||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||
|
||||
# Enable networking
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "Europe/London";
|
||||
|
||||
# Select internationalisation properties.
|
||||
i18n.defaultLocale = "en_GB.UTF-8";
|
||||
|
||||
i18n.extraLocaleSettings = {
|
||||
LC_ADDRESS = "en_GB.UTF-8";
|
||||
LC_IDENTIFICATION = "en_GB.UTF-8";
|
||||
LC_MEASUREMENT = "en_GB.UTF-8";
|
||||
LC_MONETARY = "en_GB.UTF-8";
|
||||
LC_NAME = "en_GB.UTF-8";
|
||||
LC_NUMERIC = "en_GB.UTF-8";
|
||||
LC_PAPER = "en_GB.UTF-8";
|
||||
LC_TELEPHONE = "en_GB.UTF-8";
|
||||
LC_TIME = "en_GB.UTF-8";
|
||||
};
|
||||
|
||||
# Enable the X11 windowing system.
|
||||
services.xserver.enable = true;
|
||||
|
||||
# Enable the flatpak service
|
||||
services.flatpak.enable = true;
|
||||
|
||||
# Enable SDDM and set second display resolution/position
|
||||
services.xserver.displayManager = {
|
||||
sddm.enable = true;
|
||||
setupCommands = "xrandr --output HDMI-0 --mode 1280x1024 --output HDMI-0 --right-of DP-0";
|
||||
};
|
||||
|
||||
# Enable the KDE Plasma Desktop Environment.
|
||||
services.xserver.desktopManager.plasma5.enable = true;
|
||||
|
||||
# Enable hyprland
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
enableNvidiaPatches = true;
|
||||
xwayland.enable = true;
|
||||
};
|
||||
|
||||
# Configure keymap in X11
|
||||
services.xserver = {
|
||||
layout = "us";
|
||||
xkbVariant = "";
|
||||
};
|
||||
|
||||
# Enable experimental features
|
||||
nix.settings.extra-experimental-features = ["flakes" "nix-command"];
|
||||
|
||||
# Enable automatic gc
|
||||
nix.gc = {
|
||||
automatic = true;
|
||||
dates = "weekly";
|
||||
options = "--delete-older-than 30d";
|
||||
};
|
||||
|
||||
# I never want to touch this again
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
jack.enable = true;
|
||||
};
|
||||
|
||||
services.xserver.videoDrivers = ["nvidia"];
|
||||
hardware = {
|
||||
opengl = {
|
||||
enable = true;
|
||||
driSupport = true;
|
||||
driSupport32Bit = true;
|
||||
};
|
||||
nvidia = {
|
||||
modesetting.enable = true;
|
||||
nvidiaSettings = true;
|
||||
};
|
||||
};
|
||||
|
||||
# Enable touchpad support (enabled default in most desktopManager).
|
||||
# services.xserver.libinput.enable = true;
|
||||
|
||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||
users.users.floppydisk = {
|
||||
isNormalUser = true;
|
||||
description = "Frankie B.";
|
||||
extraGroups = ["networkmanager" "wheel"];
|
||||
packages = with pkgs; [
|
||||
kate
|
||||
];
|
||||
initialPassword = "changeme";
|
||||
shell = pkgs.zsh;
|
||||
};
|
||||
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# security is for wusses
|
||||
nixpkgs.config.permittedInsecurePackages = [
|
||||
"openssl-1.1.1u"
|
||||
];
|
||||
|
||||
# Fonts
|
||||
fonts.packages = with pkgs; [
|
||||
winePackages.fonts
|
||||
];
|
||||
|
||||
# List packages installed in system profile. To search, run:
|
||||
# $ nix search wget
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Tools
|
||||
vim
|
||||
wget
|
||||
git
|
||||
gnupg
|
||||
pinentry
|
||||
kitty
|
||||
ntfs3g
|
||||
pulseaudioFull
|
||||
linuxKernel.packages.linux_zen.v4l2loopback
|
||||
pciutils
|
||||
usbutils
|
||||
isoimagewriter
|
||||
nvtop
|
||||
screen
|
||||
pavucontrol
|
||||
paprefs
|
||||
gcc
|
||||
|
||||
# Fonts
|
||||
nerdfonts
|
||||
jetbrains-mono
|
||||
|
||||
# other shit
|
||||
libnotify
|
||||
hyprpaper
|
||||
networkmanagerapplet
|
||||
grim
|
||||
slurp
|
||||
wl-clipboard
|
||||
font-awesome
|
||||
rofi
|
||||
wlogout
|
||||
swaynotificationcenter
|
||||
swaylock
|
||||
sway
|
||||
swayidle
|
||||
helvum
|
||||
];
|
||||
|
||||
environment.sessionVariables = {
|
||||
WLR_NO_HARDWARE_CURSORS = "1";
|
||||
NIXOS_OZONE_WL = "1";
|
||||
};
|
||||
|
||||
xdg.portal.enable = true;
|
||||
xdg.portal.extraPortals = [pkgs.xdg-desktop-portal-gtk];
|
||||
|
||||
programs.zsh.enable = true;
|
||||
|
||||
# Some programs need SUID wrappers, can be configured further or are
|
||||
# started in user sessions.
|
||||
# programs.mtr.enable = true;
|
||||
# programs.gnupg.agent = {
|
||||
# enable = true;
|
||||
# enableSSHSupport = true;
|
||||
# };
|
||||
|
||||
# List services that you want to enable:
|
||||
|
||||
# Enable the OpenSSH daemon.
|
||||
services.openssh.enable = true;
|
||||
|
||||
# Enable printing
|
||||
services.printing.enable = true;
|
||||
services.printing.drivers = [pkgs.hplipWithPlugin];
|
||||
|
||||
# Open ports in the firewall.
|
||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||
# Or disable the firewall altogether.
|
||||
networking.firewall.enable = false;
|
||||
|
||||
# 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 = "22.11"; # Did you read the comment?
|
||||
}
|
|
@ -12,24 +12,23 @@
|
|||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" "sr_mod"];
|
||||
boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod"];
|
||||
boot.initrd.kernelModules = [];
|
||||
boot.kernelModules = ["kvm-intel"];
|
||||
boot.extraModulePackages = [];
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/8050c8ec-0625-498d-99f6-198d58f65c79";
|
||||
device = "/dev/disk/by-uuid/c694a72f-2faa-49f3-813f-b9b552143088";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/efi" = {
|
||||
device = "/dev/disk/by-uuid/4EAD-75BA";
|
||||
fileSystems."/boot/efi" = {
|
||||
device = "/dev/disk/by-uuid/BA8E-DAAA";
|
||||
fsType = "vfat";
|
||||
options = ["fmask=0077" "dmask=0077"];
|
||||
};
|
||||
|
||||
swapDevices = [
|
||||
{device = "/dev/disk/by-uuid/1a21fac9-5a8e-4ae1-ae44-5049211d56fc";}
|
||||
{device = "/dev/disk/by-uuid/f30ab1ac-66a5-4389-b4fe-a52f53255ec6";}
|
||||
];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
|
@ -38,8 +37,8 @@
|
|||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp3s0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.tailscale0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
199
hosts/nixpad/configuration.nix
Normal file
199
hosts/nixpad/configuration.nix
Normal file
|
@ -0,0 +1,199 @@
|
|||
# Edit this configuration file to define what should be installed on
|
||||
# your system. Help is available in the configuration.nix(5) man page
|
||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
# Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
# Bootloader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
boot.loader.efi.efiSysMountPoint = "/boot/efi";
|
||||
|
||||
networking.hostName = "nixpad"; # Define your hostname.
|
||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||
|
||||
# Configure network proxy if necessary
|
||||
# networking.proxy.default = "http://user:password@proxy:port/";
|
||||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||
|
||||
# Enable networking
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "Europe/London";
|
||||
|
||||
# Select internationalisation properties.
|
||||
i18n.defaultLocale = "en_GB.UTF-8";
|
||||
|
||||
i18n.extraLocaleSettings = {
|
||||
LC_ADDRESS = "en_GB.UTF-8";
|
||||
LC_IDENTIFICATION = "en_GB.UTF-8";
|
||||
LC_MEASUREMENT = "en_GB.UTF-8";
|
||||
LC_MONETARY = "en_GB.UTF-8";
|
||||
LC_NAME = "en_GB.UTF-8";
|
||||
LC_NUMERIC = "en_GB.UTF-8";
|
||||
LC_PAPER = "en_GB.UTF-8";
|
||||
LC_TELEPHONE = "en_GB.UTF-8";
|
||||
LC_TIME = "en_GB.UTF-8";
|
||||
};
|
||||
|
||||
# Enable the X11 windowing system.
|
||||
services.xserver.enable = true;
|
||||
|
||||
# Enable the KDE Plasma Desktop Environment.
|
||||
services.xserver.displayManager.sddm.enable = true;
|
||||
services.xserver.desktopManager.plasma5.enable = true;
|
||||
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
xwayland.enable = true;
|
||||
};
|
||||
|
||||
# Configure keymap in X11
|
||||
services.xserver = {
|
||||
layout = "us";
|
||||
xkbVariant = "";
|
||||
};
|
||||
|
||||
# Enable experimental features
|
||||
nix.settings.extra-experimental-features = ["flakes" "nix-command"];
|
||||
|
||||
# Enable automatic gc
|
||||
nix.gc = {
|
||||
automatic = true;
|
||||
dates = "weekly";
|
||||
options = "--delete-older-than 30d";
|
||||
};
|
||||
|
||||
# Enable CUPS to print documents.
|
||||
services.printing.enable = true;
|
||||
|
||||
# I never want to touch this again
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
jack.enable = true;
|
||||
};
|
||||
|
||||
services.xserver.videoDrivers = ["intel"];
|
||||
hardware.opengl = {
|
||||
enable = true;
|
||||
driSupport = true;
|
||||
driSupport32Bit = true;
|
||||
};
|
||||
|
||||
# Enable touchpad support (enabled default in most desktopManager).
|
||||
services.xserver.libinput.enable = true;
|
||||
|
||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||
users.users.floppydisk = {
|
||||
isNormalUser = true;
|
||||
description = "Frankie B.";
|
||||
extraGroups = ["networkmanager" "wheel"];
|
||||
packages = with pkgs; [
|
||||
kate
|
||||
];
|
||||
initialPassword = "changeme";
|
||||
shell = pkgs.zsh;
|
||||
};
|
||||
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# Fonts
|
||||
fonts.packages = with pkgs; [
|
||||
winePackages.fonts
|
||||
];
|
||||
|
||||
# List packages installed in system profile. To search, run:
|
||||
# $ nix search wget
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Tools
|
||||
vim
|
||||
wget
|
||||
git
|
||||
gnupg
|
||||
pinentry
|
||||
kitty
|
||||
ntfs3g
|
||||
pulseaudioFull
|
||||
linuxKernel.packages.linux_zen.v4l2loopback
|
||||
pciutils
|
||||
usbutils
|
||||
isoimagewriter
|
||||
nvtop
|
||||
screen
|
||||
pavucontrol
|
||||
paprefs
|
||||
gcc
|
||||
|
||||
|
||||
# Fonts
|
||||
nerdfonts
|
||||
jetbrains-mono
|
||||
|
||||
# other shit
|
||||
#dunst
|
||||
libnotify
|
||||
hyprpaper
|
||||
networkmanagerapplet
|
||||
grim
|
||||
slurp
|
||||
wl-clipboard
|
||||
font-awesome
|
||||
rofi
|
||||
wlogout
|
||||
swaynotificationcenter
|
||||
swaylock
|
||||
sway
|
||||
swayidle
|
||||
helvum
|
||||
];
|
||||
|
||||
environment.sessionVariables = {
|
||||
WLR_NO_HARDWARE_CURSORS = "1";
|
||||
NIXOS_OZONE_WL = "1";
|
||||
};
|
||||
|
||||
xdg.portal.enable = true;
|
||||
xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
||||
|
||||
programs.zsh.enable = true;
|
||||
|
||||
# Some programs need SUID wrappers, can be configured further or are
|
||||
# started in user sessions.
|
||||
# programs.mtr.enable = true;
|
||||
programs.gnupg.agent = {
|
||||
enable = true;
|
||||
enableSSHSupport = true;
|
||||
};
|
||||
|
||||
# List services that you want to enable:
|
||||
|
||||
# Enable the OpenSSH daemon.
|
||||
services.openssh.enable = true;
|
||||
|
||||
# Open ports in the firewall.
|
||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||
# Or disable the firewall altogether.
|
||||
networking.firewall.enable = false;
|
||||
|
||||
# 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 = "22.11"; # Did you read the comment?
|
||||
}
|
|
@ -13,22 +13,18 @@
|
|||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
hardware.bluetooth.enable = true;
|
||||
hardware.bluetooth.powerOnBoot = true;
|
||||
services.blueman.enable = true;
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/82b7f887-2059-45ae-9bdd-60082718d922";
|
||||
{ device = "/dev/disk/by-uuid/79fd353d-4e05-44fd-9e10-e57b08c140f0";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/C630-E94C";
|
||||
fileSystems."/boot/efi" =
|
||||
{ device = "/dev/disk/by-uuid/AA53-B6CE";
|
||||
fsType = "vfat";
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
[ { device = "/dev/disk/by-uuid/3ce61b0c-691d-4452-93f2-e64e4b926f30"; }
|
||||
[ { device = "/dev/disk/by-uuid/92e64b37-f558-4333-bfb0-0e4bfe6e91c0"; }
|
||||
];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
|
@ -1,184 +0,0 @@
|
|||
# This is your system's configuration file.
|
||||
# Use this to configure your system environment (it replaces /etc/nixos/configuration.nix)
|
||||
{
|
||||
inputs,
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
# You can import other NixOS modules here
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
xkb.layout = "us";
|
||||
};
|
||||
|
||||
services.libinput.enable = true;
|
||||
|
||||
boot.loader.efi.efiSysMountPoint = "/efi";
|
||||
services.tailscale.enable = true;
|
||||
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true;
|
||||
};
|
||||
|
||||
nixpkgs = {
|
||||
# Configure your nixpkgs instance
|
||||
config = {
|
||||
# Disable if you don't want unfree packages
|
||||
allowUnfree = true;
|
||||
};
|
||||
};
|
||||
|
||||
nix = {
|
||||
# This will add each flake input as a registry
|
||||
# To make nix3 commands consistent with your flake
|
||||
registry = lib.mapAttrs (_: value: {flake = value;}) inputs;
|
||||
|
||||
# This will additionally add your inputs to the system's legacy channels
|
||||
# Making legacy nix commands consistent as well, awesome!
|
||||
nixPath = lib.mapAttrsToList (key: value: "${key}=${value.to.path}") config.nix.registry;
|
||||
|
||||
settings = {
|
||||
# Enable flakes and new 'nix' command
|
||||
experimental-features = "nix-command flakes";
|
||||
# Deduplicate and optimize nix store
|
||||
auto-optimise-store = true;
|
||||
};
|
||||
};
|
||||
|
||||
# the configuration (pain)
|
||||
programs = {
|
||||
gnupg.agent = {
|
||||
enable = true;
|
||||
enableSSHSupport = true;
|
||||
};
|
||||
hyprland = {
|
||||
enable = true;
|
||||
xwayland.enable = true;
|
||||
};
|
||||
zsh.enable = true;
|
||||
};
|
||||
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
gcc
|
||||
git
|
||||
grim
|
||||
lxqt.lxqt-policykit
|
||||
pavucontrol
|
||||
pciutils
|
||||
pulseaudio
|
||||
screen
|
||||
slurp
|
||||
usbutils
|
||||
wget
|
||||
wl-clipboard
|
||||
xdg-utils
|
||||
swaynotificationcenter
|
||||
swayidle
|
||||
wofi
|
||||
swaylock
|
||||
gnome-keyring
|
||||
gtklock
|
||||
tailscale
|
||||
];
|
||||
|
||||
services.printing.enable = true;
|
||||
|
||||
fonts.packages = with pkgs; [
|
||||
font-awesome
|
||||
nerdfonts
|
||||
jetbrains-mono
|
||||
winePackages.fonts
|
||||
];
|
||||
|
||||
networking.hostName = "sunfish";
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
boot.initrd.systemd.enable = true;
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
|
||||
# Set a time zone, idiot
|
||||
time.timeZone = "Europe/London";
|
||||
|
||||
# Fun internationalisation stuffs (AAAAAAAA)
|
||||
i18n.defaultLocale = "en_GB.UTF-8";
|
||||
|
||||
i18n.extraLocaleSettings = {
|
||||
LC_ADDRESS = "en_GB.UTF-8";
|
||||
LC_IDENTIFICATION = "en_GB.UTF-8";
|
||||
LC_MEASUREMENT = "en_GB.UTF-8";
|
||||
LC_MONETARY = "en_GB.UTF-8";
|
||||
LC_NAME = "en_GB.UTF-8";
|
||||
LC_NUMERIC = "en_GB.UTF-8";
|
||||
LC_PAPER = "en_GB.UTF-8";
|
||||
LC_TELEPHONE = "en_GB.UTF-8";
|
||||
LC_TIME = "en_GB.UTF-8";
|
||||
};
|
||||
|
||||
# define user acc
|
||||
users.users.floppydisk = {
|
||||
isNormalUser = true;
|
||||
description = "Frankie B.";
|
||||
extraGroups = ["networkmanager" "wheel"];
|
||||
openssh.authorizedKeys.keys = [
|
||||
# TODO: Add your SSH public key(s) here, if you plan on using SSH to connect
|
||||
];
|
||||
shell = pkgs.zsh;
|
||||
};
|
||||
|
||||
nix.gc = {
|
||||
automatic = true;
|
||||
dates = "weekly";
|
||||
options = "--delete-older-than 30d";
|
||||
};
|
||||
|
||||
# This setups a SSH server. Very important if you're setting up a headless system.
|
||||
# Feel free to remove if you don't need it.
|
||||
|
||||
services.openssh.enable = true;
|
||||
|
||||
services.greetd = {
|
||||
enable = true;
|
||||
restart = true;
|
||||
settings = {
|
||||
default_session = {
|
||||
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd Hyprland";
|
||||
user = "greeter";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.greetd.serviceConfig = {
|
||||
Type = "idle";
|
||||
StandardInput = "tty";
|
||||
StandardOutput = "tty";
|
||||
StandardError = "journal";
|
||||
TTYReset = "true";
|
||||
TTYHangup = "true";
|
||||
TTYVTDisallocate = true;
|
||||
};
|
||||
|
||||
systemd.services.NetworkManager-wait-online.enable = lib.mkForce false;
|
||||
|
||||
security.pam.services.gtklock.text = lib.readFile "${pkgs.gtklock}/etc/pam.d/gtklock";
|
||||
|
||||
networking.firewall.enable = false;
|
||||
|
||||
system.stateVersion = "24.05";
|
||||
}
|
|
@ -1,204 +0,0 @@
|
|||
# This is your system's configuration file.
|
||||
# Use this to configure your system environment (it replaces /etc/nixos/configuration.nix)
|
||||
{
|
||||
inputs,
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
# You can import other NixOS modules here
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
xkb.layout = "us";
|
||||
};
|
||||
|
||||
services.tailscale.enable = true;
|
||||
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true;
|
||||
};
|
||||
|
||||
nixpkgs = {
|
||||
# Configure your nixpkgs instance
|
||||
config = {
|
||||
# Disable if you don't want unfree packages
|
||||
allowUnfree = true;
|
||||
};
|
||||
};
|
||||
|
||||
nix = {
|
||||
# This will add each flake input as a registry
|
||||
# To make nix3 commands consistent with your flake
|
||||
registry = lib.mapAttrs (_: value: {flake = value;}) inputs;
|
||||
|
||||
# This will additionally add your inputs to the system's legacy channels
|
||||
# Making legacy nix commands consistent as well, awesome!
|
||||
nixPath = lib.mapAttrsToList (key: value: "${key}=${value.to.path}") config.nix.registry;
|
||||
|
||||
settings = {
|
||||
# Enable flakes and new 'nix' command
|
||||
experimental-features = "nix-command flakes";
|
||||
# Deduplicate and optimize nix store
|
||||
auto-optimise-store = true;
|
||||
};
|
||||
};
|
||||
|
||||
# the configuration (pain)
|
||||
programs = {
|
||||
gnupg.agent = {
|
||||
enable = true;
|
||||
enableSSHSupport = true;
|
||||
};
|
||||
hyprland = {
|
||||
enable = true;
|
||||
xwayland.enable = true;
|
||||
};
|
||||
zsh.enable = true;
|
||||
};
|
||||
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
};
|
||||
|
||||
security.polkit.enable = true;
|
||||
|
||||
systemd = {
|
||||
user.services.polkit-lxqt = {
|
||||
description = "polkit-lxqt";
|
||||
wantedBy = ["graphical-session.target"];
|
||||
wants = ["graphical-session.target"];
|
||||
after = ["graphical-session.target"];
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
ExecStart = "${pkgs.lxqt.lxqt-policykit}/bin/lxqt-policykit-agent";
|
||||
Restart = "on-failure";
|
||||
RestartSec = 1;
|
||||
TimeoutStopSec = 10;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
lxqt.lxqt-policykit
|
||||
gcc
|
||||
git
|
||||
grim
|
||||
lxqt.lxqt-policykit
|
||||
pavucontrol
|
||||
pciutils
|
||||
pulseaudio
|
||||
screen
|
||||
slurp
|
||||
usbutils
|
||||
wget
|
||||
wl-clipboard
|
||||
xdg-utils
|
||||
swaynotificationcenter
|
||||
swayidle
|
||||
wofi
|
||||
swaylock
|
||||
gnome-keyring
|
||||
gtklock
|
||||
fprintd
|
||||
tailscale
|
||||
];
|
||||
|
||||
services.fprintd = {
|
||||
enable = true;
|
||||
};
|
||||
services.printing.enable = true;
|
||||
|
||||
fonts.packages = with pkgs; [
|
||||
font-awesome
|
||||
nerdfonts
|
||||
jetbrains-mono
|
||||
winePackages.fonts
|
||||
];
|
||||
|
||||
networking.hostName = "watermelon";
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
boot.initrd.systemd.enable = true;
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
|
||||
# Set a time zone, idiot
|
||||
time.timeZone = "Europe/London";
|
||||
|
||||
# Fun internationalisation stuffs (AAAAAAAA)
|
||||
i18n.defaultLocale = "en_GB.UTF-8";
|
||||
|
||||
i18n.extraLocaleSettings = {
|
||||
LC_ADDRESS = "en_GB.UTF-8";
|
||||
LC_IDENTIFICATION = "en_GB.UTF-8";
|
||||
LC_MEASUREMENT = "en_GB.UTF-8";
|
||||
LC_MONETARY = "en_GB.UTF-8";
|
||||
LC_NAME = "en_GB.UTF-8";
|
||||
LC_NUMERIC = "en_GB.UTF-8";
|
||||
LC_PAPER = "en_GB.UTF-8";
|
||||
LC_TELEPHONE = "en_GB.UTF-8";
|
||||
LC_TIME = "en_GB.UTF-8";
|
||||
};
|
||||
|
||||
# define user acc
|
||||
users.users.floppydisk = {
|
||||
isNormalUser = true;
|
||||
description = "Frankie B.";
|
||||
extraGroups = ["networkmanager" "wheel"];
|
||||
openssh.authorizedKeys.keys = [
|
||||
# TODO: Add your SSH public key(s) here, if you plan on using SSH to connect
|
||||
];
|
||||
shell = pkgs.zsh;
|
||||
};
|
||||
|
||||
nix.gc = {
|
||||
automatic = true;
|
||||
dates = "weekly";
|
||||
options = "--delete-older-than 30d";
|
||||
};
|
||||
|
||||
# This setups a SSH server. Very important if you're setting up a headless system.
|
||||
# Feel free to remove if you don't need it.
|
||||
|
||||
services.openssh.enable = true;
|
||||
|
||||
services.greetd = {
|
||||
enable = true;
|
||||
restart = true;
|
||||
settings = {
|
||||
default_session = {
|
||||
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd Hyprland";
|
||||
user = "greeter";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.greetd.serviceConfig = {
|
||||
Type = "idle";
|
||||
StandardInput = "tty";
|
||||
StandardOutput = "tty";
|
||||
StandardError = "journal";
|
||||
TTYReset = "true";
|
||||
TTYHangup = "true";
|
||||
TTYVTDisallocate = true;
|
||||
};
|
||||
|
||||
systemd.services.NetworkManager-wait-online.enable = lib.mkForce false;
|
||||
|
||||
security.pam.services.gtklock.text = lib.readFile "${pkgs.gtklock}/etc/pam.d/gtklock";
|
||||
|
||||
networking.firewall.enable = false;
|
||||
|
||||
system.stateVersion = "24.05";
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Count the number of connected monitors
|
||||
connected_monitors=$(xrandr | grep " connected " | wc -l)
|
||||
# Check if more than one monitor is connected
|
||||
if [ $connected_monitors -gt 1 ]; then
|
||||
# Disable LVDS-1
|
||||
hyprctl keyword monitor LVDS-1, disable
|
||||
else
|
||||
# Send computer to sleep
|
||||
swayidle -w \
|
||||
timeout 1800 'hyprctl dispatch dpms off' \
|
||||
resume 'hyprctl dispatch dpms on' \
|
||||
timeout 3600 'systemctl suspend'
|
||||
fi
|
|
@ -1,3 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
hyprctl keyword monitor LVDS-1, preferred, auto, 1
|
Binary file not shown.
Before Width: | Height: | Size: 2.1 MiB |
Binary file not shown.
Before Width: | Height: | Size: 229 KiB |
Binary file not shown.
Before Width: | Height: | Size: 415 KiB |
Binary file not shown.
Before Width: | Height: | Size: 239 KiB |
6
modules/public/home-manager/default.nix
Normal file
6
modules/public/home-manager/default.nix
Normal file
|
@ -0,0 +1,6 @@
|
|||
# Add your reusable home-manager modules to this directory, on their own file (https://nixos.wiki/wiki/Module).
|
||||
# These should be stuff you would like to share with others, not your personal configurations.
|
||||
{
|
||||
# List your module files here
|
||||
# my-module = import ./my-module.nix;
|
||||
}
|
6
modules/public/nixos/default.nix
Normal file
6
modules/public/nixos/default.nix
Normal file
|
@ -0,0 +1,6 @@
|
|||
# Add your reusable NixOS modules to this directory, on their own file (https://nixos.wiki/wiki/Module).
|
||||
# These should be stuff you would like to share with others, not your personal configurations.
|
||||
{
|
||||
# List your module files here
|
||||
# my-module = import ./my-module.nix;
|
||||
}
|
9
nixpkgs.nix
Normal file
9
nixpkgs.nix
Normal file
|
@ -0,0 +1,9 @@
|
|||
# A nixpkgs instance that is grabbed from the pinned nixpkgs commit in the lock file
|
||||
# This is useful to avoid using channels when using legacy nix commands
|
||||
let
|
||||
lock = (builtins.fromJSON (builtins.readFile ./flake.lock)).nodes.nixpkgs.locked;
|
||||
in
|
||||
import (fetchTarball {
|
||||
url = "https://github.com/nixos/nixpkgs/archive/${lock.rev}.tar.gz";
|
||||
sha256 = lock.narHash;
|
||||
})
|
5
pkgs/default.nix
Normal file
5
pkgs/default.nix
Normal file
|
@ -0,0 +1,5 @@
|
|||
# Custom packages, that can be defined similarly to ones from nixpkgs
|
||||
# You can build them using 'nix build .#example' or (legacy) 'nix-build -A example'
|
||||
{pkgs ? (import ../nixpkgs.nix) {}}: {
|
||||
# example = pkgs.callPackage ./example { };
|
||||
}
|
9
shell.nix
Normal file
9
shell.nix
Normal file
|
@ -0,0 +1,9 @@
|
|||
# Shell for bootstrapping flake-enabled nix and home-manager
|
||||
# You can enter it through 'nix develop' or (legacy) 'nix-shell'
|
||||
{pkgs ? (import ./nixpkgs.nix) {}}: {
|
||||
default = pkgs.mkShell {
|
||||
# Enable experimental features without having to specify the argument
|
||||
NIX_CONFIG = "experimental-features = nix-command flakes";
|
||||
nativeBuildInputs = with pkgs; [nix home-manager git];
|
||||
};
|
||||
}
|
Loading…
Reference in a new issue