Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a1c4841580 | |||
| 62d8d36ed8 |
@@ -1,55 +1,58 @@
|
||||
# Nix Sakamoto
|
||||
A rewrite of the original Sakamoto NixOS configuration.
|
||||
# Sakamoto NixOS
|
||||
|
||||
Sakamoto NixOS is built with various profiles intended for reproducibility.
|
||||
|
||||
## Available Hosts
|
||||
|
||||
- MacBook M series
|
||||
- Linux
|
||||
|
||||
## Installation
|
||||
Installing Sakamoto Nix configuration may vary on your current operating system.
|
||||
|
||||
| Hosts | Description |
|
||||
|----------|--------------|
|
||||
| hakase | gaming desktop (linux) |
|
||||
| sakamoto | \[unavailable] server that uses containers (linux) |
|
||||
| nano | \[unavailable] windows configuration |
|
||||
| macos | macos configuration |
|
||||
1. Install [Nix](https://nixos.org/download/).
|
||||
|
||||
**Note: Replace `${Hosts}` with one of the options from the table above.**
|
||||
2. Ensure Nix is installed properly by running the following (this also gives you `nano` for editing later):
|
||||
|
||||
### Linux Installation
|
||||
```sh
|
||||
nix-shell -p nano
|
||||
```
|
||||
|
||||
1. Install [Nix](https://nixos.org).
|
||||
2. Clone this directory.
|
||||
```sh
|
||||
$ git clone https://git.sakamoto.dev/kenji/nixos.git ~/.config/nixos
|
||||
```
|
||||
3. Create a hardware-configuration.conf
|
||||
```sh
|
||||
$ sudo nixos-generate-config --dir ~/.config/nixos/hosts/${Hosts}/
|
||||
```
|
||||
4. ⚠️ Modify `config.nix` that suits your configuration. **Be sure to edit `config.nix`! Most especially `myConfig.essentials.Username`. Otherwise, your OS could break!!!**
|
||||
5. Rebuild.
|
||||
```sh
|
||||
$ sudo nixos-rebuild switch --flake ~/.config/nixos/hosts/#${Hosts}
|
||||
```
|
||||
6. Install unstable channel (fixes `pkgs.fish` misconfiguration).
|
||||
```sh
|
||||
$ nix-channel --add https://nixos.org/channels/nixos-unstable nixos nix-channel --update
|
||||
```
|
||||
7. (Optional) You can install `proton-ge` by running the following command:
|
||||
```sh
|
||||
protonup
|
||||
```
|
||||
8. (Optional) Add Decky Loader for Steam via this command:
|
||||
```sh
|
||||
touch ~/.steam/steam/.cef-enable-remote-debugging
|
||||
3. Clone the git repository:
|
||||
|
||||
```
|
||||
### MacOS (Darwin) Installation
|
||||
1. Install [Nix](https://nixos.org).
|
||||
2. Clone this directory.
|
||||
```sh
|
||||
$ git clone https://git.sakamoto.dev/kenji/nixos.git ~/.config/nixos
|
||||
git clone https://git.sakamoto.dev/kenji/nixos.git ~/.config/nixos && cd ~/.config/nixos/
|
||||
```
|
||||
3. ⚠️ Modify `config.nix` that suits your configuration. **Be sure to edit `config.nix`! Most especially `myConfig.essentials.Username`. Otherwise, configuration would not work!!!**
|
||||
4. Rebuild.
|
||||
|
||||
4. Copy `info.default.nix` and rename it to `info.local.nix`:
|
||||
|
||||
```sh
|
||||
$ sudo nix run nix-darwin --extra-experimental-features "nix-command flakes" -- switch --flake ~/.config/nixos#macos
|
||||
cp ~/.config/nixos/info.default.nix ~/.config/nixos/info.local.nix
|
||||
```
|
||||
|
||||
🚨 **CRITICAL STEP:** Edit `info.local.nix`:
|
||||
|
||||
```sh
|
||||
nano ~/.config/nixos/info.local.nix
|
||||
```
|
||||
|
||||
Modify it to fit your system — especially your **username**.
|
||||
If you accidentally leave the default `biscuit`, that user will be created.
|
||||
**Login password for `biscuit` is `<PLACEHOLDER>`.**
|
||||
|
||||
5. Execute the following command based on your host:
|
||||
|
||||
- **MacBook M series:**
|
||||
|
||||
```sh
|
||||
sudo nix run nix-darwin --extra-experimental-features "nix-command flakes" -- switch --flake ~/.config/nixos#macos
|
||||
```
|
||||
|
||||
- **Linux:**
|
||||
|
||||
```sh
|
||||
sudo nixos-rebuild --flake ~/.config/nixos#desktop --impure
|
||||
sudo nix run home-manager -- init --switch
|
||||
home-manager switch --flake ~/.config/nixos#desktop --impure
|
||||
nix-channel --add https://nixos.org/channels/nixos-unstable nixos nix-channel --update
|
||||
reboot
|
||||
```
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 42 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 2.6 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 246 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 14 MiB |
+75
-78
@@ -1,85 +1,82 @@
|
||||
{
|
||||
myConfig = {
|
||||
essentials = {
|
||||
# !!! replace it with your own, else system might malfunction.
|
||||
Username = "kenji";
|
||||
};
|
||||
general = {
|
||||
Terminal = {
|
||||
font = "JetBrainsMono Nerd Font";
|
||||
size = "18";
|
||||
shell = "fish"; # or zsh
|
||||
aliases = {};
|
||||
};
|
||||
allowUnfree = true;
|
||||
};
|
||||
hostname = "hakase";
|
||||
username = "kenji";
|
||||
timezone = "America/Chicago";
|
||||
|
||||
nixos = {
|
||||
Hostname = "hakase";
|
||||
Timezone = "America/Chicago";
|
||||
enableSteamOS = true;
|
||||
vpn = {
|
||||
vpnEnable = false;
|
||||
vpnSecretFile = "/home/kenji/Wireguard/secret";
|
||||
};
|
||||
|
||||
Boot = {
|
||||
mode = "systemd"; # systemd or grub
|
||||
};
|
||||
Apps = {
|
||||
packages = pkgs:
|
||||
with pkgs; [
|
||||
jellyfin-media-player
|
||||
usbutils
|
||||
pciutils
|
||||
goverlay
|
||||
geekbench_6
|
||||
gparted
|
||||
ntfs3g
|
||||
todoist
|
||||
feishin
|
||||
discord
|
||||
xfce.thunar
|
||||
];
|
||||
};
|
||||
Hyprland = {
|
||||
enable = false;
|
||||
monitors = [
|
||||
"DP-1, highres@165,0x1080,1,vrr,1"
|
||||
"DP-2, highres@highrr,0x0,1"
|
||||
"HDMI-A-1, 1920x1080@120, 20000x20000,1"
|
||||
# "HDMI-A-1, disabled"
|
||||
];
|
||||
};
|
||||
Git = {
|
||||
user = "";
|
||||
email = "";
|
||||
defaultBranch = "master";
|
||||
};
|
||||
};
|
||||
optionals = {
|
||||
Builds = {
|
||||
trustedUsers = [
|
||||
"@groups"
|
||||
];
|
||||
buildMachines = [
|
||||
{
|
||||
hostName = "";
|
||||
sshUser = "";
|
||||
sshKey = "";
|
||||
system = "";
|
||||
supportedFeatures = ["big-parallel" "kvm" "nixos-test"];
|
||||
}
|
||||
];
|
||||
};
|
||||
Ssh = {
|
||||
extraConfig = ''
|
||||
Host macair
|
||||
User biscuit
|
||||
HostName 192.168.68.81
|
||||
gitProfile = {
|
||||
user = "biscuit";
|
||||
email = "biscuit@sakamoto.dev";
|
||||
defaultBranch = "master";
|
||||
};
|
||||
|
||||
Host gitea.sakamoto.dev
|
||||
User kenji
|
||||
ProxyCommand cloudflared access ssh --hostname %h
|
||||
HostName gitea.sakamoto.dev
|
||||
'';
|
||||
};
|
||||
terminal = {
|
||||
termFont = "JetBrainsMono Nerd Font"; # e.g., JetBrainsMono Nerd Font
|
||||
termSize = "20";
|
||||
termShell = "fish";
|
||||
shellAliases = {
|
||||
ls = "ls --color=auto";
|
||||
update = ''
|
||||
sh -c '
|
||||
if [ "$(uname)" = "Darwin" ]; then
|
||||
sudo darwin-rebuild switch --flake ~/.config/nixos#macos
|
||||
else
|
||||
sudo nixos-rebuild switch --flake ~/.config/nixos#desktop && home-manager switch --flake ~/.config/nixos#desktop
|
||||
fi
|
||||
'
|
||||
'';
|
||||
agu = "pkill gjs & ags run ~/.config/nixos/pkgs/ags/biscuit/app.ts & disown (jobs -p) &";
|
||||
};
|
||||
};
|
||||
|
||||
allowUnfree = true; # allows installation of commercial apps.
|
||||
touchpadSupport = false;
|
||||
|
||||
logitech-hardware = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
# Custom Applications
|
||||
linux-apps = {
|
||||
gamingDesktop = true; # adds steam
|
||||
my-apps = pkgs:
|
||||
with pkgs; [
|
||||
jellyfin-media-player
|
||||
mangohud
|
||||
];
|
||||
};
|
||||
|
||||
hyprconf = {
|
||||
monitor = [
|
||||
"DP-1,highres@165,0x1080,auto"
|
||||
"DP-2,highres@highrr,0x0,auto"
|
||||
];
|
||||
};
|
||||
|
||||
sshExtraConfig = ''
|
||||
Host macair
|
||||
User biscuit
|
||||
HostName 192.168.68.81
|
||||
'';
|
||||
|
||||
# BUILD (optional), you can remove these blocks.
|
||||
builder = {
|
||||
trustedUsers = [
|
||||
"@groups"
|
||||
"biscuit"
|
||||
];
|
||||
buildMachines = [
|
||||
{
|
||||
hostName = "192.168.68.81";
|
||||
sshUser = "biscuit";
|
||||
sshKey = "/home/biscuit/.ssh/id_rsa.pub";
|
||||
system = "x86_64-linux";
|
||||
supportedFeatures = ["big-parallel" "kvm" "nixos-test"];
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
Generated
+259
-600
File diff suppressed because it is too large
Load Diff
@@ -1,113 +1,97 @@
|
||||
{
|
||||
description = "A rewrite of the original Sakamoto NixOS config.";
|
||||
description = "A very basic flake";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable";
|
||||
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
||||
home-manager.url = "github:nix-community/home-manager";
|
||||
home-manager.inputs.nixpkgs.follows = "nixpkgs"; # `follows` ensure it follows nixpkgs versiona. Avoids breaking updates.
|
||||
darwin.url = "github:lnl7/nix-darwin";
|
||||
darwin.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
nur = {
|
||||
url = "github:nix-community/NUR";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
jovian = {
|
||||
url = "github:Jovian-Experiments/Jovian-NixOS";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
ags.url = "github:aylur/ags";
|
||||
ags.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
hyprland.url = "github:hyprwm/Hyprland";
|
||||
hyprland.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
unlisted-fonts.url = "git+https://git.sakamoto.dev/kenji/nix-fonts.git";
|
||||
unlisted-fonts.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
darwin = {
|
||||
url = "github:lnl7/nix-darwin";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
nixvim.url = "github:nix-community/nixvim";
|
||||
nixvim.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
nixovim = {
|
||||
url = "git+https://git.sakamoto.dev/kenji/nixovim.git";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
nix-neovim.url = "git+https://git.sakamoto.dev/kenji/nix-neovim.git";
|
||||
nix-neovim.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
matugen = {
|
||||
url = "github:/InioX/Matugen";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
# kitty-catppuccin.url = "git+https://git.sakamoto.dev/kenji/nix-kitty-catppuccin.git";
|
||||
# kitty-catppuccin.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
quickshell = {
|
||||
url = "git+https://git.outfoxxed.me/outfoxxed/quickshell";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
caelestia-shell = {
|
||||
url = "git+https://git.sakamoto.dev/kenji/caelestia-nix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
matugen.url = "github:/InioX/Matugen";
|
||||
matugen.inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
outputs = {
|
||||
self,
|
||||
nixpkgs,
|
||||
flake-utils,
|
||||
home-manager,
|
||||
darwin,
|
||||
ags,
|
||||
hyprland,
|
||||
unlisted-fonts,
|
||||
nix-neovim,
|
||||
...
|
||||
} @ inputs: let
|
||||
config = import ./config.nix;
|
||||
|
||||
mkArgs = system:
|
||||
lib = nixpkgs.lib;
|
||||
system = "x86_64-linux";
|
||||
# pkgs = nixpkgs.legacyPackages.${system}; # alternative, without overlays. Unused.
|
||||
args =
|
||||
{
|
||||
inherit inputs system;
|
||||
}
|
||||
// config;
|
||||
|
||||
systems = ["x86_64-linux" "aarch64-linux"];
|
||||
in
|
||||
flake-utils.lib.eachSystem systems (system: let
|
||||
pkgs = import nixpkgs {
|
||||
in {
|
||||
# linux only
|
||||
nixosConfigurations = {
|
||||
desktop = lib.nixosSystem {
|
||||
inherit system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
args = mkArgs system;
|
||||
in {
|
||||
})
|
||||
// {
|
||||
nixosConfigurations = {
|
||||
hakase = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = mkArgs "x86_64-linux";
|
||||
modules = [
|
||||
./hosts/hakase/configuration.nix
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
homeConfigurations = {
|
||||
hakase = home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = import nixpkgs {
|
||||
system = "x86_64-linux";
|
||||
config.allowUnfree = true;
|
||||
extraSpecialArgs = mkArgs "x86_64-linux";
|
||||
};
|
||||
modules = [
|
||||
./home/hakase.nix
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
darwinConfigurations = {
|
||||
macos = darwin.lib.darwinSystem {
|
||||
system = "aarch64-darwin";
|
||||
specialArgs = mkArgs "aarch64-darwin";
|
||||
modules = [
|
||||
./hosts/macos/darwin.nix
|
||||
];
|
||||
};
|
||||
specialArgs = args;
|
||||
modules = [
|
||||
./nixos/desktop/configuration.nix
|
||||
];
|
||||
};
|
||||
};
|
||||
homeConfigurations = {
|
||||
desktop = home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
overlays = [
|
||||
# (final: prev: {
|
||||
# ags_1 = prev.ags_1.overrideAttrs (old: {
|
||||
# buildInputs = old.buildInputs ++ [pkgs.libdbusmenu-gtk3];
|
||||
# });
|
||||
# })
|
||||
];
|
||||
};
|
||||
extraSpecialArgs = args;
|
||||
modules = [./home/desktop/home.nix];
|
||||
};
|
||||
};
|
||||
# exclusive to macos M series
|
||||
darwinConfigurations = {
|
||||
macos = darwin.lib.darwinSystem {
|
||||
system = "aarch64-darwin";
|
||||
specialArgs = args;
|
||||
modules = [
|
||||
./nixos/macos/darwin.nix
|
||||
home-manager.darwinModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.extraSpecialArgs = args;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
{username, ...}: {
|
||||
imports = [
|
||||
../../modules/editor.nix
|
||||
../../modules/desktop/display-manager.nix
|
||||
../../modules/desktop/misc.nix
|
||||
../../modules/desktop/app.nix
|
||||
];
|
||||
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
home = {
|
||||
username = "${username}";
|
||||
homeDirectory = "/home/${username}";
|
||||
packages = [];
|
||||
sessionVariables = {};
|
||||
};
|
||||
|
||||
systemd.user.startServices = "sd-switch";
|
||||
home.stateVersion = "23.05";
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}: let
|
||||
info = import ../config.nix;
|
||||
in {
|
||||
imports = [
|
||||
# inputs.chaotic.homeManagerModules.default
|
||||
../modules/home/desktop.nix
|
||||
../modules/home/terminal.nix
|
||||
];
|
||||
# nix.package = pkgs.nix;
|
||||
home.packages = info.myConfig.nixos.Apps.packages pkgs;
|
||||
home.stateVersion = "25.05";
|
||||
}
|
||||
@@ -5,11 +5,11 @@
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
../modules/home/terminal.nix
|
||||
../../modules/editor.nix
|
||||
];
|
||||
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
home.packages = [];
|
||||
home.stateVersion = "25.11";
|
||||
home.stateVersion = "23.05";
|
||||
}
|
||||
@@ -1,204 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
myConfig,
|
||||
inputs,
|
||||
lib,
|
||||
specialArgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
inputs.chaotic.nixosModules.default
|
||||
./hardware-configuration.nix
|
||||
../../modules/default/desktop.nix
|
||||
../../modules/default/dev.nix
|
||||
../../modules/default/remote.nix
|
||||
];
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
pavucontrol
|
||||
wl-clipboard
|
||||
wget
|
||||
protontricks
|
||||
];
|
||||
|
||||
users = {
|
||||
defaultUserShell = pkgs.${myConfig.general.Terminal.shell};
|
||||
users = {
|
||||
${myConfig.essentials.Username} = {
|
||||
isNormalUser = true;
|
||||
extraGroups = ["wheel" "networkmanager" "input" "video"];
|
||||
initialHashedPassword = "$y$j9T$NHFtSwF4NJtEmgMjy4Xdg.$9WQltjEx3eEfZ7GbpGLW8lBhJtiXPOeIawrxdmx0.vB";
|
||||
useDefaultShell = true;
|
||||
packages = [];
|
||||
};
|
||||
};
|
||||
};
|
||||
home-manager = {
|
||||
backupFileExtension = "backup";
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
extraSpecialArgs = specialArgs;
|
||||
users.${myConfig.essentials.Username} = import ../../home/hakase.nix;
|
||||
};
|
||||
|
||||
nixpkgs.config.allowUnfree = myConfig.general.allowUnfree;
|
||||
|
||||
hardware.logitech.wireless.enable = true;
|
||||
hardware.bluetooth.enable = true;
|
||||
hardware.bluetooth.powerOnBoot = true;
|
||||
hardware.bluetooth.settings = {
|
||||
General = {
|
||||
AutoEnable = true;
|
||||
Experimental = true;
|
||||
MultiProfile = "multiple";
|
||||
FastConnectable = true;
|
||||
};
|
||||
};
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true;
|
||||
};
|
||||
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
time.timeZone = "${myConfig.nixos.Timezone}";
|
||||
|
||||
boot.loader = {
|
||||
systemd-boot = lib.mkIf (myConfig.nixos.Boot.mode == "systemd") {
|
||||
enable = true;
|
||||
};
|
||||
grub = lib.mkIf (myConfig.nixos.Boot.mode == "grub") {
|
||||
efiSupport = true;
|
||||
enable = true;
|
||||
device = "nodev";
|
||||
useOSProber = true;
|
||||
};
|
||||
efi = {
|
||||
canTouchEfiVariables = true;
|
||||
efiSysMountPoint = "/boot";
|
||||
};
|
||||
};
|
||||
|
||||
programs.ssh.extraConfig = myConfig.optionals.Ssh.extraConfig;
|
||||
|
||||
programs.bash = {
|
||||
interactiveShellInit = ''
|
||||
if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
|
||||
then
|
||||
shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=""
|
||||
exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
|
||||
fi
|
||||
'';
|
||||
};
|
||||
|
||||
programs = {
|
||||
zsh.enable = true;
|
||||
fish.enable = true;
|
||||
};
|
||||
|
||||
services = {
|
||||
displayManager.sessionPackages = [inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland];
|
||||
# getty.autologinUser = "${myConfig.essentials.Username}";
|
||||
# greetd = {
|
||||
# enable = true;
|
||||
# settings.default_session = {
|
||||
# user = "${myConfig.essentials.Username}";
|
||||
# command = "Hyprland";
|
||||
# };
|
||||
# };
|
||||
|
||||
seatd.enable = true;
|
||||
upower.enable = true;
|
||||
scx.enable = true; # by default uses scx_rustland scheduler
|
||||
libinput.enable = true;
|
||||
blueman.enable = true;
|
||||
printing.enable = true;
|
||||
openssh.enable = true;
|
||||
pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
|
||||
# lowLatency = {
|
||||
# enable = true;
|
||||
# quantum = 64;
|
||||
# rate = 48000;
|
||||
# };
|
||||
};
|
||||
};
|
||||
# make pipewire realtime-capable
|
||||
security.rtkit.enable = true;
|
||||
|
||||
nix = {
|
||||
distributedBuilds = true;
|
||||
settings = {
|
||||
builders-use-substitutes = true;
|
||||
trusted-users = myConfig.optionals.Builds.trustedUsers;
|
||||
experimental-features = ["nix-command" "flakes"];
|
||||
};
|
||||
};
|
||||
|
||||
console = {
|
||||
earlySetup = false;
|
||||
font = "${pkgs.terminus_font}/share/consolefonts/ter-132n.psf.gz";
|
||||
packages = with pkgs; [terminus_font];
|
||||
useXkbConfig = true;
|
||||
};
|
||||
|
||||
networking = {
|
||||
# wakeOnLan.enable = true;
|
||||
networkmanager.enable = true;
|
||||
firewall = {
|
||||
enable = true;
|
||||
allowedTCPPorts = [22 80];
|
||||
allowedUDPPorts = [53];
|
||||
};
|
||||
proxy.default = null;
|
||||
proxy.noProxy = null;
|
||||
};
|
||||
|
||||
boot.loader.timeout = 0;
|
||||
boot.loader.limine.maxGenerations = 5;
|
||||
hardware.amdgpu.initrd.enable = true;
|
||||
|
||||
boot.kernelParams = [
|
||||
"quiet"
|
||||
"splash"
|
||||
"boot.shell_on_fail"
|
||||
"udev.log_priority=3"
|
||||
"rd.systemd.show_status=auto"
|
||||
"iommu=pt"
|
||||
"amd_pstate=active"
|
||||
];
|
||||
boot.kernelPackages = pkgs.linuxPackages_cachyos;
|
||||
boot.kernel.sysctl = {
|
||||
"kernel.split_lock_mitigate" = 0;
|
||||
"kernel.nmi_watchdog" = 0;
|
||||
"kernel.sched_bore" = "1";
|
||||
};
|
||||
|
||||
boot.initrd = {
|
||||
systemd.enable = true;
|
||||
kernelModules = [];
|
||||
verbose = false;
|
||||
};
|
||||
boot.plymouth.enable = true;
|
||||
boot.plymouth.theme = "seal";
|
||||
boot.plymouth.themePackages = with pkgs; [
|
||||
# By default we would install all themes
|
||||
(adi1090x-plymouth-themes.override {
|
||||
selected_themes = ["seal"];
|
||||
})
|
||||
];
|
||||
boot.consoleLogLevel = 0;
|
||||
systemd.extraConfig = "DefaultTimeoutStopSec=5s";
|
||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||
# Or disable the firewall altogether.
|
||||
# networking.firewall.enable = false;
|
||||
|
||||
# networking.proxy.default = "http://user:password@proxy:port/";
|
||||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||
system.stateVersion = "25.05";
|
||||
}
|
||||
@@ -1,47 +0,0 @@
|
||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-amd" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/532ac73e-1370-4e4d-9d5a-15033de0b96d";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=@" ];
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/1368-D3F3";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0077" "dmask=0077" ];
|
||||
};
|
||||
|
||||
fileSystems."/home" =
|
||||
{ device = "/dev/disk/by-uuid/780aa81f-c4d6-478b-9c51-2d60362fdb07";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
[ { device = "/dev/disk/by-uuid/b02ef55c-4caf-4a24-a6a2-fb8001eafe22"; }
|
||||
];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp11s0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlp10s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
@@ -1,47 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
myConfig,
|
||||
inputs,
|
||||
system,
|
||||
mkArgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
../../modules/default/darwin.nix
|
||||
inputs.home-manager.darwinModules.home-manager
|
||||
];
|
||||
# List packages installed in system profile. To search by name, run:
|
||||
# $ nix-env -qaP | grep wget
|
||||
environment.systemPackages = [];
|
||||
|
||||
# Auto upgrade nix package and the daemon service.
|
||||
# services.nix-daemon.enable = true;
|
||||
# services.karabiner-elements.enable = true;
|
||||
# nix.package = pkgs.nix;
|
||||
|
||||
# Necessary for using flakes on this system.
|
||||
nix.settings.experimental-features = "nix-command flakes";
|
||||
nix.settings.trusted-users = myConfig.optionals.Builds.trustedUsers;
|
||||
|
||||
# Create /etc/zshrc that loads the nix-darwin environment.
|
||||
programs.zsh.enable = true; # default shell on catalina
|
||||
programs.fish.enable = true;
|
||||
|
||||
# $ darwin-rebuild changelog
|
||||
system.stateVersion = 5;
|
||||
|
||||
# The platform the configuration will be used on.
|
||||
nixpkgs.hostPlatform = "aarch64-darwin";
|
||||
security.pam.services.sudo_local.touchIdAuth = true;
|
||||
|
||||
users.users.${myConfig.essentials.Username} = {
|
||||
name = "${myConfig.essentials.Username}";
|
||||
home = "/Users/${myConfig.essentials.Username}";
|
||||
# shell = pkgs.${myConfig.general.terminal.Shell}; # no support for nix-darwin, but can be changed via chsh.
|
||||
};
|
||||
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.extraSpecialArgs = mkArgs system;
|
||||
home-manager.users.${myConfig.essentials.Username} = import ../../home/darwin.nix;
|
||||
}
|
||||
@@ -1,169 +0,0 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
myConfig,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
# Include the results of the hardware scan.
|
||||
inputs.chaotic.nixosModules.default
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
nix.settings.experimental-features = ["nix-command" "flakes"];
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
####################
|
||||
# Boot & Kernel #
|
||||
####################
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
boot.loader.timeout = 0;
|
||||
boot.loader.limine.maxGenerations = 5;
|
||||
hardware.amdgpu.initrd.enable = true;
|
||||
|
||||
boot.kernelParams = ["quiet"];
|
||||
boot.kernelPackages = pkgs.linuxPackages_cachyos;
|
||||
boot.kernel.sysctl = {
|
||||
"kernel.split_lock_mitigate" = 0;
|
||||
"kernel.nmi_watchdog" = 0;
|
||||
"kernel.sched_bore" = "1";
|
||||
};
|
||||
|
||||
boot.initrd = {
|
||||
systemd.enable = true;
|
||||
kernelModules = [];
|
||||
verbose = false;
|
||||
};
|
||||
boot.plymouth.enable = true;
|
||||
boot.consoleLogLevel = 0;
|
||||
systemd.extraConfig = "DefaultTimeoutStopSec=5s";
|
||||
|
||||
################
|
||||
# FileSystems #
|
||||
################
|
||||
# fileSystems."/" = {
|
||||
# options = ["compress=zstd"];
|
||||
# };
|
||||
|
||||
############
|
||||
# Network #
|
||||
############
|
||||
networking = {
|
||||
networkmanager.enable = true;
|
||||
firewall.enable = false;
|
||||
hostName = "nixos";
|
||||
};
|
||||
|
||||
#################
|
||||
# Bluetooth #
|
||||
#################
|
||||
hardware.bluetooth.enable = true;
|
||||
hardware.bluetooth.settings = {
|
||||
General = {
|
||||
MultiProfile = "multiple";
|
||||
FastConnectable = true;
|
||||
};
|
||||
};
|
||||
|
||||
#################
|
||||
# Sound & RTKit #
|
||||
#################
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
};
|
||||
|
||||
########################
|
||||
# Graphical & Greetd #
|
||||
########################
|
||||
|
||||
services.xserver.enable = false;
|
||||
services.getty.autologinUser = "steamos";
|
||||
services.greetd = {
|
||||
enable = true;
|
||||
settings.default_session = {
|
||||
user = "${myConfig.essentials.Username}";
|
||||
command = "steam-gamescope > /dev/null 2>&1";
|
||||
};
|
||||
};
|
||||
|
||||
########################
|
||||
# Programs & Gaming #
|
||||
########################
|
||||
services.automatic-timezoned.enable = true;
|
||||
services.flatpak.enable = true;
|
||||
xdg.portal.enable = true;
|
||||
xdg.portal.config.common.default = "*";
|
||||
xdg.portal.extraPortals = [pkgs.xdg-desktop-portal-gtk];
|
||||
|
||||
# programs.steam.gamescopeSession.args = ["-w 1920" "-h 1080" "-r 120" "--xwayland-count 2" "-e" "--hdr-enabled" "--mangoapp"];
|
||||
|
||||
programs = {
|
||||
appimage = {
|
||||
enable = true;
|
||||
binfmt = true;
|
||||
};
|
||||
fish = {enable = true;};
|
||||
mosh = {enable = true;};
|
||||
tmux = {enable = true;};
|
||||
gamescope.capSysNice = true;
|
||||
steam = {
|
||||
enable = true;
|
||||
gamescopeSession.enable = true;
|
||||
extraCompatPackages = with pkgs; [proton-ge-bin];
|
||||
extraPackages = with pkgs; [
|
||||
mangohud
|
||||
gamescope-wsi
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
environment.sessionVariables = {
|
||||
PROTON_USE_NTSYNC = "1";
|
||||
ENABLE_HDR_WSI = "1";
|
||||
DXVK_HDR = "1";
|
||||
PROTON_ENABLE_AMD_AGS = "1";
|
||||
PROTON_ENABLE_NVAPI = "1";
|
||||
ENABLE_GAMESCOPE_WSI = "1";
|
||||
STEAM_MULTIPLE_XWAYLANDS = "1";
|
||||
};
|
||||
|
||||
###################
|
||||
# Virtualization #
|
||||
###################
|
||||
virtualisation.docker.enable = true;
|
||||
virtualisation.docker.enableOnBoot = false;
|
||||
virtualisation.libvirtd.enable = true;
|
||||
|
||||
###############
|
||||
# Users #
|
||||
###############
|
||||
users.users.${myConfig.essentials.Username} = {
|
||||
isNormalUser = true;
|
||||
description = "SteamOS user";
|
||||
extraGroups = ["networkmanager" "wheel" "docker" "video" "seat" "audio" "libvirtd"];
|
||||
# password = "steamos";
|
||||
};
|
||||
|
||||
#################
|
||||
# Security #
|
||||
#################
|
||||
security.sudo.wheelNeedsPassword = false;
|
||||
security.polkit.enable = true;
|
||||
services.seatd.enable = true;
|
||||
services.openssh.enable = true;
|
||||
|
||||
######################
|
||||
######################
|
||||
|
||||
########################
|
||||
# System State Version #
|
||||
########################
|
||||
system.stateVersion = "25.05";
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
linux-apps,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
imports =
|
||||
[
|
||||
]
|
||||
++ lib.optionals (linux-apps.gamingDesktop == true) [
|
||||
../pkgs/steam/default.nix
|
||||
../pkgs/heroic/default.nix
|
||||
];
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
imports = [
|
||||
../../packages/python/default.nix
|
||||
];
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
myConfig,
|
||||
...
|
||||
}: {
|
||||
imports =
|
||||
[
|
||||
../../packages/hyprland/default.nix
|
||||
../../packages/matugen/default.nix
|
||||
../../packages/quickshell/default.nix
|
||||
../../packages/udev/default.nix
|
||||
]
|
||||
++ [
|
||||
../../packages/steam/default.nix
|
||||
../../packages/bottles/default.nix
|
||||
]
|
||||
++ lib.optionals (myConfig.nixos.enableSteamOS == true) [
|
||||
../../packages/steam/jovian.nix
|
||||
];
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
imports = [
|
||||
../../packages/python/default.nix
|
||||
];
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
{
|
||||
imports = [
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{pkgs, ...}: let
|
||||
info = import ../../config.nix;
|
||||
in {
|
||||
home.packages = info.linux-apps.my-apps pkgs;
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{...}: {
|
||||
imports = [
|
||||
../../pkgs/hyprland/default.nix
|
||||
../../pkgs/ags/default.nix
|
||||
../../pkgs/swww/default.nix
|
||||
../../pkgs/waybar/default.nix
|
||||
../../pkgs/rofi/default.nix
|
||||
../../pkgs/hypridle/default.nix
|
||||
../../pkgs/hyprlock/default.nix
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{...}: {
|
||||
imports = [
|
||||
../../pkgs/btop/default.nix
|
||||
../../pkgs/matugen/default.nix
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{...}: {
|
||||
imports = [
|
||||
../system/desktop/wayland.nix
|
||||
../system/desktop/sound.nix
|
||||
../system/desktop/misc.nix
|
||||
../system/desktop/browser.nix
|
||||
../system/desktop/font.nix
|
||||
../system/desktop/theme.nix
|
||||
../system/desktop/cursor.nix
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{...}: {
|
||||
imports = [
|
||||
../pkgs/fastfetch/default.nix
|
||||
../pkgs/git/default.nix
|
||||
../pkgs/kitty/default.nix
|
||||
../pkgs/neovim/default.nix
|
||||
../pkgs/fish/default.nix
|
||||
../pkgs/starship/default.nix
|
||||
../pkgs/zsh/default.nix
|
||||
];
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
{
|
||||
imports =
|
||||
[
|
||||
../../packages/fonts/home.nix
|
||||
../../packages/firefox/home.nix
|
||||
|
||||
../../packages/hyprland/home.nix
|
||||
../../packages/hyprlock/home.nix
|
||||
../../packages/hypridle/home.nix
|
||||
../../packages/quickshell/home.nix
|
||||
../../packages/swww/home.nix
|
||||
../../packages/hyprsunset/home.nix
|
||||
../../packages/matugen/home.nix
|
||||
../../packages/rofi/home.nix
|
||||
../../packages/bibata/home.nix
|
||||
]
|
||||
++ [
|
||||
../../packages/solaar/home.nix
|
||||
]
|
||||
++ [
|
||||
../../packages/mangohud/home.nix
|
||||
../../packages/protonup/home.nix
|
||||
../../packages/lutris/home.nix
|
||||
../../packages/steam/home.nix
|
||||
];
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
imports = [
|
||||
../../packages/moondeck-buddy/appimage.nix
|
||||
../../packages/sunshine/default.nix
|
||||
];
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
{
|
||||
imports = [
|
||||
../../packages/fish/home.nix
|
||||
../../packages/kitty/home.nix
|
||||
../../packages/neovim/home.nix
|
||||
../../packages/starship/home.nix
|
||||
../../packages/fastfetch/home.nix
|
||||
../../packages/zsh/home.nix
|
||||
../../packages/zoxide/home.nix
|
||||
../../packages/fonts/home.nix
|
||||
|
||||
../../packages/git/home.nix
|
||||
|
||||
../../packages/btop/home.nix
|
||||
../../packages/eza/home.nix
|
||||
|
||||
../../packages/cloudflared/home.nix
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
vpn,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
imports =
|
||||
[
|
||||
../system/default.nix
|
||||
../system/users.nix
|
||||
]
|
||||
++ lib.optionals (vpn.vpnEnable == true) [
|
||||
../system/vpn.nix
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
{
|
||||
pkgs,
|
||||
allowUnfree,
|
||||
builder,
|
||||
sshExtraConfig,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
# Include the results of the hardware scan.
|
||||
/etc/nixos/hardware-configuration.nix
|
||||
../../modules/system.nix
|
||||
../../modules/display-manager.nix
|
||||
../../modules/app.nix
|
||||
];
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
vim
|
||||
wget
|
||||
];
|
||||
|
||||
nixpkgs.config.allowUnfree = allowUnfree;
|
||||
|
||||
nix.settings = {
|
||||
trusted-users = builder.trustedUsers;
|
||||
experimental-features = ["nix-command" "flakes"];
|
||||
};
|
||||
|
||||
programs.ssh.extraConfig = sshExtraConfig;
|
||||
|
||||
nix.distributedBuilds = true;
|
||||
nix.settings.builders-use-substitutes = true;
|
||||
|
||||
# nix.buildMachines = builder.buildMachines;
|
||||
system.stateVersion = "25.05";
|
||||
}
|
||||
@@ -8,30 +8,30 @@
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" ];
|
||||
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-amd" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/532ac73e-1370-4e4d-9d5a-15033de0b96d";
|
||||
{ device = "/dev/disk/by-uuid/3f2c4a5a-3124-462a-9fb9-cccc933bac63";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=@" ];
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/1368-D3F3";
|
||||
{ device = "/dev/disk/by-uuid/18F8-7DC1";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0077" "dmask=0077" ];
|
||||
};
|
||||
|
||||
fileSystems."/home" =
|
||||
{ device = "/dev/disk/by-uuid/780aa81f-c4d6-478b-9c51-2d60362fdb07";
|
||||
fileSystems."/mnt/CRUCIAL" =
|
||||
{ device = "/dev/disk/by-uuid/394f67b9-e75b-40cc-9b15-28bbda40fff4";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
[ { device = "/dev/disk/by-uuid/b02ef55c-4caf-4a24-a6a2-fb8001eafe22"; }
|
||||
[ { device = "/dev/disk/by-uuid/bbe1e281-4b1d-4d85-ba6a-6f5265f0e3a3"; }
|
||||
];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
@@ -39,6 +39,7 @@
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.biscuit-default.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp11s0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlp10s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
{
|
||||
pkgs,
|
||||
builder,
|
||||
terminal,
|
||||
username,
|
||||
...
|
||||
}: {
|
||||
# List packages installed in system profile. To search by name, run:
|
||||
# $ nix-env -qaP | grep wget
|
||||
environment.systemPackages = with pkgs; [
|
||||
python313
|
||||
];
|
||||
|
||||
# Auto upgrade nix package and the daemon service.
|
||||
# services.nix-daemon.enable = true;
|
||||
# services.karabiner-elements.enable = true;
|
||||
# nix.package = pkgs.nix;
|
||||
|
||||
# Necessary for using flakes on this system.
|
||||
nix.settings.experimental-features = "nix-command flakes";
|
||||
nix.settings.trusted-users = builder.trustedUsers;
|
||||
|
||||
# Create /etc/zshrc that loads the nix-darwin environment.
|
||||
programs.zsh.enable = true; # default shell on catalina
|
||||
programs.fish.enable = true;
|
||||
|
||||
# $ darwin-rebuild changelog
|
||||
system.stateVersion = 5;
|
||||
|
||||
# The platform the configuration will be used on.
|
||||
nixpkgs.hostPlatform = "aarch64-darwin";
|
||||
|
||||
users.users.${username} = {
|
||||
name = "${username}";
|
||||
home = "/Users/${username}";
|
||||
shell = pkgs.${terminal.termShell};
|
||||
};
|
||||
|
||||
home-manager.users.${username} = import ../../home/macos/home.nix;
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
home.packages = with pkgs; [
|
||||
bibata-cursors
|
||||
];
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
home.packages = with pkgs; [
|
||||
cloudflared
|
||||
];
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
programs.eza = {
|
||||
enable = true;
|
||||
git = true;
|
||||
colors = "auto";
|
||||
icons = "auto";
|
||||
|
||||
enableZshIntegration = true;
|
||||
enableFishIntegration = true;
|
||||
enableBashIntegration = true;
|
||||
};
|
||||
}
|
||||
@@ -1,113 +0,0 @@
|
||||
{
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
languagePacks = [
|
||||
"en-US"
|
||||
];
|
||||
profiles = {
|
||||
hakase = {
|
||||
search.force = true;
|
||||
isDefault = true;
|
||||
search.default = "ddg";
|
||||
settings = {
|
||||
"browser.contentblocking.category" = "strict";
|
||||
"extensions.pocket.enabled" = false;
|
||||
"extensions.screenshots.disabled" = true;
|
||||
"browser.topsites.contile.enabled" = false;
|
||||
"browser.formfill.enable" = false;
|
||||
"browser.search.suggest.enabled" = false;
|
||||
"browser.search.suggest.enabled.private" = false;
|
||||
"browser.urlbar.suggest.searches" = false;
|
||||
"browser.urlbar.showSearchSuggestionsFirst" = false;
|
||||
"browser.newtabpage.activity-stream.feeds.section.topstories" = false;
|
||||
"browser.newtabpage.activity-stream.feeds.snippets" = false;
|
||||
"browser.newtabpage.activity-stream.section.highlights.includePocket" = false;
|
||||
"browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = false;
|
||||
"browser.newtabpage.activity-stream.section.highlights.includeDownloads" = false;
|
||||
"browser.newtabpage.activity-stream.section.highlights.includeVisited" = false;
|
||||
"browser.newtabpage.activity-stream.showSponsored" = false;
|
||||
"browser.newtabpage.activity-stream.system.showSponsored" = false;
|
||||
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
|
||||
"browser.startup.homepage" = "https://dash.sakamoto.dev";
|
||||
"browser.newtabpage.pinned" = [
|
||||
{
|
||||
title = "Dashboard";
|
||||
url = "https://dash.sakamoto.dev";
|
||||
}
|
||||
];
|
||||
};
|
||||
bookmarks = {
|
||||
force = true;
|
||||
settings = [
|
||||
{
|
||||
toolbar = true;
|
||||
bookmarks = [
|
||||
{
|
||||
name = "Home Manager";
|
||||
url = "https://mynixos.com/home-manager/options/programs";
|
||||
}
|
||||
{
|
||||
name = "YouTube";
|
||||
url = "https://youtube.com";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
policies = {
|
||||
DisableTelemetry = true;
|
||||
DisableFirefoxStudies = true;
|
||||
EnableTrackingProtection = {
|
||||
Value = true;
|
||||
Locked = true;
|
||||
Cryptomining = true;
|
||||
Fingerprinting = true;
|
||||
};
|
||||
DisablePocket = true;
|
||||
DisableFirefoxAccounts = true;
|
||||
DisableAccounts = true;
|
||||
DisableFirefoxScreenshots = true;
|
||||
OverrideFirstRunPage = "";
|
||||
OverridePostUpdatePage = "";
|
||||
DontCheckDefaultBrowser = true;
|
||||
DisplayBookmarksToolbar = "always"; # alternatives: "always" or "newtab"
|
||||
DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on"
|
||||
SearchBar = "unified"; # alternative: "separate"
|
||||
|
||||
/*
|
||||
---- EXTENSIONS ----
|
||||
*/
|
||||
# Check about:support for extension/add-on ID strings.
|
||||
# Valid strings for installation_mode are "allowed", "blocked",
|
||||
# "force_installed" and "normal_installed".
|
||||
ExtensionSettings = {
|
||||
"*".installation_mode = "blocked";
|
||||
"uBlock0@raymondhill.net" = {
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
"{446900e4-71c2-419f-a6a7-df9c091e268b}" = {
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/file/4493940/bitwarden_password_manager-2025.5.0.xpi";
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
"tridactyl.vim@cmcaine.co.uk" = {
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/file/4405615/tridactyl_vim-1.24.2.xpi";
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
# Privacy Badger:
|
||||
# "jid1-MnnxcxisBPnSXQ@jetpack" = {
|
||||
# install_url = "https://addons.mozilla.org/firefox/downloads/latest/privacy-badger17/latest.xpi";
|
||||
# installation_mode = "force_installed";
|
||||
# };
|
||||
# 1Password:
|
||||
# "{d634138d-c276-4fc8-924b-40a0ea21d284}" = {
|
||||
# install_url = "https://addons.mozilla.org/firefox/downloads/latest/1password-x-password-manager/latest.xpi";
|
||||
# installation_mode = "force_installed";
|
||||
# };
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
fonts = {
|
||||
fontconfig.enable = true;
|
||||
};
|
||||
home.packages = with pkgs; [
|
||||
nerd-fonts.jetbrains-mono
|
||||
];
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{myConfig, ...}: {
|
||||
programs.git = {
|
||||
enable = true;
|
||||
extraConfig = {
|
||||
user.name = "${myConfig.nixos.Git.user}";
|
||||
user.email = "${myConfig.nixos.Git.email}";
|
||||
init.defaultBranch = "${myConfig.nixos.Git.defaultBranch}";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
{...}: {
|
||||
services.hypridle = {
|
||||
enable = true;
|
||||
settings = {
|
||||
general = {
|
||||
lock_cmd = "pidof hyprlock || hyprlock"; # avoid starting multiple hyprlock instances.
|
||||
before_sleep_cmd = "loginctl lock-session"; # lock before suspend.
|
||||
after_sleep_cmd = "hyprctl dispatch dpms on && agu"; # avoid needing to press a key twice to turn on the display.
|
||||
};
|
||||
|
||||
listener = [
|
||||
# {
|
||||
# timeout = 150;
|
||||
# on-timeout = "brightnessctl -s set 10"; # set monitor backlight to minimum, avoid 0 on OLED monitor.
|
||||
# on-resume = "brightnessctl -r"; # restore monitor backlight.
|
||||
# }
|
||||
# {
|
||||
# timeout = 150;
|
||||
# on-timeout = "brightnessctl -sd rgb:kbd_backlight set 0"; # turn off keyboard backlight.
|
||||
# on-resume = "brightnessctl -rd rgb:kbd_backlight"; # turn on keyboard backlight.
|
||||
# }
|
||||
# {
|
||||
# timeout = 300;
|
||||
# on-timeout = "loginctl lock-session"; # lock screen when timeout has passed.
|
||||
# }
|
||||
# {
|
||||
# timeout = 330;
|
||||
# on-timeout = "hyprctl dispatch dpms off"; # screen off after 5.5min.
|
||||
# on-resume = "hyprctl dispatch dpms on && brightnessctl -r"; # screen on and restore brightness on resume.
|
||||
# }
|
||||
{
|
||||
timeout = 500;
|
||||
on-timeout = "systemctl suspend"; # suspend PC after 30min.
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,42 +0,0 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
myConfig,
|
||||
...
|
||||
}: {
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
animations = {
|
||||
enabled = true;
|
||||
bezier = [
|
||||
"linear, 0, 0, 1, 1"
|
||||
"md3_standard, 0.2, 0, 0, 1"
|
||||
"md3_decel, 0.05, 0.7, 0.1, 1"
|
||||
"md3_accel, 0.3, 0, 0.8, 0.15"
|
||||
"overshot, 0.05, 0.9, 0.1, 1.1"
|
||||
"crazyshot, 0.1, 1.5, 0.76, 0.92"
|
||||
"hyprnostretch, 0.05, 0.9, 0.1, 1.0"
|
||||
"menu_decel, 0.1, 1, 0, 1"
|
||||
"menu_accel, 0.38, 0.04, 1, 0.07"
|
||||
"easeInOutCirc, 0.85, 0, 0.15, 1"
|
||||
"easeOutCirc, 0, 0.55, 0.45, 1"
|
||||
"easeOutExpo, 0.16, 1, 0.3, 1"
|
||||
"softAcDecel, 0.26, 0.26, 0.15, 1"
|
||||
"md2, 0.4, 0, 0.2, 1"
|
||||
];
|
||||
|
||||
animation = [
|
||||
"windows, 1, 3, md3_decel, popin 60%"
|
||||
"windowsIn, 1, 3, md3_decel, popin 60%"
|
||||
"windowsOut, 1, 3, md3_accel, popin 60%"
|
||||
"border, 1, 10, default"
|
||||
"fade, 1, 3, md3_decel"
|
||||
"layersIn, 1, 3, menu_decel, slide"
|
||||
"layersOut, 1, 1.6, menu_accel"
|
||||
"fadeLayersIn, 1, 2, menu_decel"
|
||||
"fadeLayersOut, 1, 0.5, menu_accel"
|
||||
"workspaces, 1, 7, menu_decel, slide"
|
||||
"specialWorkspace, 1, 3, md3_decel, slidevert"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,297 +0,0 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
exec = [
|
||||
"hyprctl dispatch submap global"
|
||||
];
|
||||
|
||||
submap = [
|
||||
"global"
|
||||
];
|
||||
|
||||
# Shell keybinds
|
||||
bindi = [
|
||||
"$mod, Super_L, global, caelestia:launcher" # bind to `bind` because `bindi` maps to it
|
||||
# Launcher
|
||||
];
|
||||
bindin =
|
||||
[
|
||||
"$mod, catchall, global, caelestia:launcherInterrupt"
|
||||
"$mod, mouse:272, global, caelestia:launcherInterrupt"
|
||||
"$mod, mouse:273, global, caelestia:launcherInterrupt"
|
||||
"$mod, mouse:274, global, caelestia:launcherInterrupt"
|
||||
"$mod, mouse:275, global, caelestia:launcherInterrupt"
|
||||
"$mod, mouse:276, global, caelestia:launcherInterrupt"
|
||||
"$mod, mouse:277, global, caelestia:launcherInterrupt"
|
||||
"$mod, mouse_up, global, caelestia:launcherInterrupt"
|
||||
"$mod, mouse_down, global, caelestia:launcherInterrupt"
|
||||
|
||||
"$mod, K, global, caelestia:launcherInterrupt"
|
||||
"$mod, H, global, caelestia:launcherInterrupt"
|
||||
"$mod, J, global, caelestia:launcherInterrupt"
|
||||
"$mod, L, global, caelestia:launcherInterrupt"
|
||||
|
||||
"$mod, S, global, caelestia:launcherInterrupt"
|
||||
"$mod, G, global, caelestia:launcherInterrupt"
|
||||
"$mod, T, global, caelestia:launcherInterrupt"
|
||||
"$mod, D, global, caelestia:launcherInterrupt"
|
||||
"$mod, Escape, global, caelestia:launcherInterrupt"
|
||||
"$mod, PERIOD, global, caelestia:launcherInterrupt"
|
||||
"$mod, E, global, caelestia:launcherInterrupt"
|
||||
"$mod, V, global, caelestia:launcherInterrupt"
|
||||
|
||||
"$mod, W, global, caelestia:launcherInterrupt"
|
||||
"$mod, Q, global, caelestia:launcherInterrupt"
|
||||
"$mod, C, global, caelestia:launcherInterrupt"
|
||||
"$mod, Return, global, caelestia:launcherInterrupt"
|
||||
]
|
||||
++ (
|
||||
# Go to workspace group #
|
||||
builtins.concatLists (builtins.genList (
|
||||
i: let
|
||||
ws = i + 1;
|
||||
in [
|
||||
"$mod, ${toString ws}, global, caelestia:launcherInterrupt"
|
||||
]
|
||||
)
|
||||
9)
|
||||
)
|
||||
++ [
|
||||
"$mod, 0, global, caelestia:launcherInterrupt"
|
||||
];
|
||||
bind =
|
||||
[
|
||||
# Misc
|
||||
"Control+Alt, Delete, exec, caelestia:session"
|
||||
"$mod ALT, A, global, caelestia:showall"
|
||||
"$mod ALT, L, global, caelestia:lock"
|
||||
|
||||
# Restore lock - these are `bindl` in your original, but `exec` should be fine here.
|
||||
# However, `bindl` is typically for a *release* event. If `caelestia shell -d` is a daemon,
|
||||
# and `caelestia:lock` is a quickshell internal, you might need to reconsider.
|
||||
# For direct translation, they go into `bindl` list.
|
||||
|
||||
# Media - handled by bindl below
|
||||
|
||||
# Apps
|
||||
"$mod, Return, exec, app2unit -- kitty"
|
||||
"$mod, W, exec, app2unit -- firefox"
|
||||
"$mod, E, exec, app2unit -- thunar"
|
||||
"$mod, Q, killactive"
|
||||
"$mod ALT, E, exec, app2unit -- nemo"
|
||||
"Control+Alt, Escape, exec, app2unit -- qps"
|
||||
"Control+Alt, V, exec, app2unit -- pavucontrol"
|
||||
|
||||
# Utilities
|
||||
"$mod SHIFT, S, global, caelestia:screenshotFreeze"
|
||||
"$mod SHIFT ALT, S, global, caelestia:screenshot"
|
||||
"$mod ALT, R, exec, caelestia record -s"
|
||||
"Control+Alt, R, exec, caelestia record"
|
||||
"$mod SHIFT ALT, R, exec, caelestia record -r"
|
||||
"$mod SHIFT, C, exec, hyprpicker -a" # Colour picker
|
||||
|
||||
# Sleep
|
||||
"$mod SHIFT, PRINT, exec, systemctl suspend-then-hibernate"
|
||||
|
||||
# Clipboard and emoji picker
|
||||
"$mod, V, exec, pkill fuzzel || caelestia clipboard"
|
||||
"$mod ALT, V, exec, pkill fuzzel || caelestia clipboard -d"
|
||||
"$mod, Period, exec, pkill fuzzel || caelestia emoji -p"
|
||||
|
||||
# Testing
|
||||
# This is a `bindl` (key release), so move it to `bindl` list below.
|
||||
|
||||
# Window actions
|
||||
"$mod, H, movefocus, l"
|
||||
"$mod, L, movefocus, r"
|
||||
"$mod, K, movefocus, u"
|
||||
"$mod, J, movefocus, d"
|
||||
"$mod SHIFT, H, movewindow, l"
|
||||
"$mod SHIFT, L, movewindow, r"
|
||||
"$mod SHIFT, K, movewindow, u"
|
||||
"$mod SHIFT, J, movewindow, d"
|
||||
"$mod CTRL, Backslash, centerwindow, 1"
|
||||
"$mod CTRL ALT, Backslash, resizeactive, exact 55% 70%"
|
||||
"$mod CTRL ALT, Backslash, centerwindow, 1"
|
||||
"$mod ALT, Backslash, exec, caelestia pip"
|
||||
"$mod, P, pin"
|
||||
"$mod, F, fullscreen, 0"
|
||||
"$mod ALT, F, fullscreen, 1"
|
||||
|
||||
# Special workspace toggles
|
||||
"Control+Shift, Escape, exec, caelestia toggle sysmon"
|
||||
"$mod, Escape, exec, caelestia toggle sysmon"
|
||||
"$mod, M, exec, caelestia toggle music"
|
||||
"$mod, D, exec, caelestia toggle communication"
|
||||
"$mod, R, exec, caelestia toggle todo"
|
||||
|
||||
"$mod, G, togglespecialworkspace, gaming"
|
||||
"$mod SHIFT, G, movetoworkspace, special:gaming"
|
||||
|
||||
"$mod, T, exec, caelestia toggle steam"
|
||||
|
||||
# "$mod, T, togglespecialworkspace, special:steam"
|
||||
# "$mod SHIFT, T, movetoworkspace, special:steam"
|
||||
|
||||
# Toggle special workspace
|
||||
"$mod, S, exec, caelestia toggle specialws"
|
||||
|
||||
# Window groups
|
||||
"$mod, Comma, togglegroup"
|
||||
"$mod SHIFT, Comma, lockactivegroup, toggle"
|
||||
|
||||
# Go to workspace -1/+1 (mouse binds are `bind` for mouse-wheel)
|
||||
"$mod, mouse_down, workspace, -1"
|
||||
"$mod, mouse_up, workspace, +1"
|
||||
|
||||
# Move window to workspace -1/+1
|
||||
"$mod ALT, mouse_down, movetoworkspace, -1"
|
||||
"$mod ALT, mouse_up, movetoworkspace, +1"
|
||||
|
||||
# Move window to/from special workspace
|
||||
"$mod CTRL SHIFT, up, movetoworkspace, special:special"
|
||||
"$mod CTRL SHIFT, down, movetoworkspace, e+0"
|
||||
"$mod ALT, S, movetoworkspace, special:special"
|
||||
]
|
||||
++ (
|
||||
# Go to workspace #
|
||||
let
|
||||
wsaction = "~/.config/hypr/scripts/wsaction.fish";
|
||||
in
|
||||
builtins.concatLists (builtins.genList (
|
||||
i: let
|
||||
ws = i + 1;
|
||||
in [
|
||||
"$mod, ${toString ws}, exec, ${wsaction} workspace ${toString ws}"
|
||||
]
|
||||
)
|
||||
9) # For workspaces 1-9
|
||||
)
|
||||
++ [
|
||||
# "$mod, 0, exec, ${config.wayland.windowManager.hyprland.settings.workspaceRule."0".exec} workspace 10" # Workaround for workspace 0
|
||||
# Re-adding `wsaction` since it's used here.
|
||||
"$mod, 0, exec, ~/.config/hypr/scripts/wsaction.fish workspace 10"
|
||||
]
|
||||
++ (
|
||||
# Go to workspace group #
|
||||
let
|
||||
wsaction = "~/.config/hypr/scripts/wsaction.fish";
|
||||
in
|
||||
builtins.concatLists (builtins.genList (
|
||||
i: let
|
||||
ws = i + 1;
|
||||
in [
|
||||
"Control+$mod, ${toString ws}, exec, ${wsaction} -g workspace ${toString ws}"
|
||||
]
|
||||
)
|
||||
9)
|
||||
)
|
||||
++ [
|
||||
"Control+$mod, 0, exec, ~/.config/hypr/scripts/wsaction.fish -g workspace 10"
|
||||
]
|
||||
++ (
|
||||
# Move window to workspace #
|
||||
let
|
||||
wsaction = "~/.config/hypr/scripts/wsaction.fish";
|
||||
in
|
||||
builtins.concatLists (builtins.genList (
|
||||
i: let
|
||||
ws = i + 1;
|
||||
in [
|
||||
"$mod SHIFT, ${toString ws}, exec, ${wsaction} movetoworkspace ${toString ws}"
|
||||
]
|
||||
)
|
||||
9)
|
||||
)
|
||||
++ [
|
||||
"$mod SHIFT, 0, exec, ~/.config/hypr/scripts/wsaction.fish movetoworkspace 10"
|
||||
]
|
||||
++ (
|
||||
# Move window to workspace group #
|
||||
let
|
||||
wsaction = "~/.config/hypr/scripts/wsaction.fish";
|
||||
in
|
||||
builtins.concatLists (builtins.genList (
|
||||
i: let
|
||||
ws = i + 1;
|
||||
in [
|
||||
"Control+$mod ALT, ${toString ws}, exec, ${wsaction} -g movetoworkspace ${toString ws}"
|
||||
]
|
||||
)
|
||||
9)
|
||||
)
|
||||
++ [
|
||||
"Control+$mod ALT, 0, exec, ~/.config/hypr/scripts/wsaction.fish -g movetoworkspace 10"
|
||||
];
|
||||
|
||||
binde = [
|
||||
"$mod, Minus, splitratio, -0.1"
|
||||
"$mod, Equal, splitratio, 0.1"
|
||||
"Control+$mod, left, workspace, -1"
|
||||
"$mod, Page_Up, workspace, -1"
|
||||
"Control+$mod, right, workspace, +1"
|
||||
"$mod, Page_Down, workspace, +1"
|
||||
"$mod ALT, Page_Up, movetoworkspace, -1"
|
||||
"$mod ALT, Page_Down, movetoworkspace, +1"
|
||||
"Control+$mod SHIFT, right, movetoworkspace, +1"
|
||||
"Control+$mod SHIFT, left, movetoworkspace, -1"
|
||||
"Alt, Tab, cyclenext, activewindow" # `binde` for cycle next
|
||||
"Control+Alt, Tab, changegroupactive, f" # `binde` for change group active
|
||||
];
|
||||
|
||||
bindm = [
|
||||
"$mod, mouse:272, movewindow"
|
||||
"$mod, Z, movewindow"
|
||||
"$mod, mouse:273, resizewindow"
|
||||
"$mod, X, resizewindow"
|
||||
];
|
||||
|
||||
bindl = [
|
||||
# Restore lock
|
||||
"$mod ALT, L, exec, caelestia shell -d"
|
||||
"$mod ALT, L, global, caelestia:lock" # This is a Hyprland `global` command, not an `exec`
|
||||
|
||||
# Brightness
|
||||
", XF86MonBrightnessUp, global, caelestia:brightnessUp"
|
||||
", XF86MonBrightnessDown, global, caelestia:brightnessDown"
|
||||
|
||||
# Media
|
||||
"Control+$mod, Space, global, caelestia:mediaToggle"
|
||||
", XF86AudioPlay, global, caelestia:mediaToggle"
|
||||
", XF86AudioPause, global, caelestia:mediaToggle"
|
||||
"Control+$mod, Equal, global, caelestia:mediaNext"
|
||||
", XF86AudioNext, global, caelestia:mediaNext"
|
||||
"Control+$mod, Minus, global, caelestia:mediaPrev"
|
||||
", XF86AudioPrev, global, caelestia:mediaPrev"
|
||||
", XF86AudioStop, global, caelestia:mediaStop"
|
||||
|
||||
# Utilities (screenshot is `bindl` in your original)
|
||||
", Print, exec, caelestia screenshot" # Full screen capture > clipboard
|
||||
|
||||
# Volume
|
||||
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
||||
"$mod SHIFT, M, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
||||
|
||||
# Clipboard and emoji picker (alternate paste is `bindl`)
|
||||
"Control+Shift+Alt, V, exec, sleep 0.5s && ydotool type -d 1 \"$(cliphist list | head -1 | cliphist decode)\""
|
||||
|
||||
# Testing
|
||||
"$mod ALT, f12, exec, notify-send -u low -i dialog-information-symbolic 'Test notification' \"Here's a really long message to test truncation and wrapping\\nYou can middle click or flick this notification to dismiss it!\" -a 'Shell' -A \"Test1=I got it!\" -A \"Test2=Another action\""
|
||||
];
|
||||
|
||||
bindel = [
|
||||
# Volume
|
||||
", XF86AudioRaiseVolume, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0; wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 10%+"
|
||||
", XF86AudioLowerVolume, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0; wpctl set-volume @DEFAULT_AUDIO_SINK@ 10%-"
|
||||
];
|
||||
|
||||
bindr = [
|
||||
# Kill/restart
|
||||
"Control+$mod SHIFT, R, exec, qs -c caelestia kill"
|
||||
"Control+$mod ALT, R, exec, qs -c caelestia kill; caelestia shell -d"
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
myConfig,
|
||||
...
|
||||
}: {
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
exec = [
|
||||
"cp -L --no-preserve=mode --update=none ~/.config/hypr/scheme/default.conf ~/.config/hypr/scheme/current.conf"
|
||||
];
|
||||
source = [
|
||||
"~/.config/hypr/scheme/current.conf"
|
||||
];
|
||||
group = {
|
||||
groupbar = {
|
||||
"text_color" = "rgb($onPrimary)";
|
||||
"col.active" = "rgba($primaryd4)";
|
||||
"col.inactive" = "rgba($outlined4)";
|
||||
"col.locked_active" = "rgba($primaryd4)";
|
||||
"col.locked_inactive" = "rgba($secondaryd4)";
|
||||
};
|
||||
};
|
||||
misc = {
|
||||
background_color = "rgb($surfaceVariant)";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
myConfig,
|
||||
...
|
||||
}: {
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
decoration = {
|
||||
rounding = 10;
|
||||
rounding_power = 2;
|
||||
active_opacity = 1.0;
|
||||
inactive_opacity = 1.0;
|
||||
|
||||
dim_inactive = true;
|
||||
dim_strength = 0.1;
|
||||
dim_special = 0.8;
|
||||
|
||||
shadow = {
|
||||
enabled = true;
|
||||
range = 4;
|
||||
render_power = 3;
|
||||
color = "rgba(1a1a1aee)";
|
||||
};
|
||||
|
||||
blur = {
|
||||
enabled = true;
|
||||
size = 3;
|
||||
passes = 1;
|
||||
vibrancy = 0.1696;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
myConfig,
|
||||
...
|
||||
}: {
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
env = [
|
||||
"HYPRCURSOR_THEME, Bibata-Original-Classic"
|
||||
"HYPRCURSOR_SIZE, 24"
|
||||
|
||||
"QT_QPA_PLATFORMTHEME, qt5ct"
|
||||
"QT_WAYLAND_DISABLE_WINDOWDECORATION, 1"
|
||||
"QT_AUTO_SCREEN_SCALE_FACTOR, 1"
|
||||
"XCURSOR_THEME, sweet-rainbow"
|
||||
"XCURSOR_SIZE, 24"
|
||||
|
||||
"GDK_BACKEND, wayland,x11"
|
||||
"QT_QPA_PLATFORM, wayland;xcb"
|
||||
"SDL_VIDEODRIVER, wayland,x11"
|
||||
"CLUTTER_BACKEND, wayland"
|
||||
"ELECTRON_OZONE_PLATFORM_HINT, auto"
|
||||
|
||||
"XDG_CURRENT_DESKTOP, Hyprland"
|
||||
"XDG_SESSION_TYPE, wayland"
|
||||
"XDG_SESSION_DESKTOP, Hyprland"
|
||||
|
||||
"_JAVA_AWT_WM_NONREPARENTING, 1"
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
myConfig,
|
||||
...
|
||||
}: {
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
exec-once = [
|
||||
# "[workspace special:communication silent] discord"
|
||||
"[workspace special:steam silent] steam"
|
||||
"[workspace special:preload silent] kitty --single-instance --hold fastfetch"
|
||||
"[workspace special:preload silent] firefox"
|
||||
"[workspace 1] kitty --single-instance --hold -e fish -C fastfetch"
|
||||
|
||||
"hyprctl setcursor Bibata-Modern-Ice 24"
|
||||
|
||||
"solaar -w hide"
|
||||
# "sunshine"
|
||||
# "moondeck-buddy"
|
||||
|
||||
"wl-paste --type text --watch cliphist store"
|
||||
"wl-paste --type image --watch cliphist store"
|
||||
|
||||
"sleep 3 && caelestia shell"
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,128 +0,0 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
myConfig,
|
||||
...
|
||||
}: {
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
# ######## Window rules ########
|
||||
windowrule = [
|
||||
"opaque, class:foot|equibop"
|
||||
"center 1, floating:1, xwayland:0"
|
||||
|
||||
# Float
|
||||
"float, class:guifetch"
|
||||
"float, class:yad"
|
||||
"float, class:zenity"
|
||||
"float, class:wev"
|
||||
"float, class:org\\.gnome\\.FileRoller" # Escaped backslash
|
||||
"float, class:file-roller"
|
||||
"float, class:blueman-manager"
|
||||
"float, class:com\\.github\\.GradienceTeam\\.Gradience" # Escaped backslash
|
||||
"float, class:feh"
|
||||
"float, class:imv"
|
||||
"float, class:system-config-printer"
|
||||
"float, class:quickshell"
|
||||
|
||||
# Float, resize and center
|
||||
"float, class:foot, title:nmtui"
|
||||
"size 60% 70%, class:foot, title:nmtui"
|
||||
"center 1, class:foot, title:nmtui"
|
||||
"float, class:org\\.gnome\\.Settings"
|
||||
"size 70% 80%, class:org\\.gnome\\.Settings"
|
||||
"center 1, class:org\\.gnome\\.Settings"
|
||||
"float, class:org\\.pulseaudio\\.pavucontrol|yad-icon-browser"
|
||||
"size 60% 70%, class:org\\.pulseaudio\\.pavucontrol|yad-icon-browser"
|
||||
"center 1, class:org\\.pulseaudio\\.pavucontrol|yad-icon-browser"
|
||||
"float, class:nwg-look"
|
||||
"size 50% 60%, class:nwg-look"
|
||||
"center 1, class:nwg-look"
|
||||
|
||||
# Special workspaces
|
||||
"workspace special:sysmon, class:btop"
|
||||
"workspace special:music, class:feishin|Spotify|Supersonic"
|
||||
"workspace special:music, initialTitle:Spotify( Free)?"
|
||||
"workspace special:communication, class:discord|equibop|vesktop|whatsapp"
|
||||
"workspace special:todo, class:Todoist"
|
||||
"workspace special:steam, class:^(steam_app_.*)$"
|
||||
|
||||
"noinitialfocus, class:discord"
|
||||
"focusonactivate 0, class:discord"
|
||||
|
||||
# Always full screen
|
||||
# "fullscreen, title:^(Steam Big Picture Mode)$"
|
||||
# "fullscreen, title:^(steam_app_.*)$"
|
||||
|
||||
# Dialogs
|
||||
"float, title:(Select|Open)( a)? (File|Folder)(s)?"
|
||||
"float, title:File (Operation|Upload)( Progress)?"
|
||||
"float, title:.* Properties"
|
||||
"float, title:Export Image as PNG"
|
||||
"float, title:GIMP Crash Debug"
|
||||
"float, title:Save As"
|
||||
"float, title:Library"
|
||||
|
||||
# Picture in picture (resize and move done via script)
|
||||
"move 100%-w-2% 100%-w-3%, title:Picture(-| )in(-| )[Pp]icture"
|
||||
"keepaspectratio, title:Picture(-| )in(-| )[Pp]icture"
|
||||
"float, title:Picture(-| )in(-| )[Pp]icture"
|
||||
"pin, title:Picture(-| )in(-| )[Pp]icture"
|
||||
|
||||
# Steam
|
||||
"workspace special:steam, class:steam"
|
||||
"rounding 10, title:, class:steam"
|
||||
"float, title:Friends List, class:steam"
|
||||
"immediate, class:steam_app_[0-9]+"
|
||||
"idleinhibit always, class:steam_app_[0-9]+"
|
||||
|
||||
# ATLauncher console
|
||||
"float, class:com-atlauncher-App, title:ATLauncher Console"
|
||||
|
||||
# Autodesk Fusion 360
|
||||
"noblur, title:Fusion360|(Marking Menu), class:fusion360\\.exe" # Escaped backslash
|
||||
|
||||
# Ugh xwayland popups
|
||||
"nodim, xwayland:1, title:win[0-9]+"
|
||||
"noshadow, xwayland:1, title:win[0-9]+"
|
||||
"rounding 10, xwayland:1, title:win[0-9]+"
|
||||
];
|
||||
|
||||
# ######## Workspace rules ########
|
||||
workspace = [
|
||||
"w[tv1]s[false], gapsout:20, gapsin:20"
|
||||
"f[1]s[false], gapsout:20, gapsin:20"
|
||||
"1, monitor:DP-1, default:true"
|
||||
"2, monitor:DP-1"
|
||||
"3, monitor:DP-1"
|
||||
"4, monitor:DP-2"
|
||||
"5, monitor:DP-2"
|
||||
"6, monitor:DP-2"
|
||||
|
||||
"special:gaming, monitor:DP-1, persistent:true"
|
||||
"special:steam, monitor:DP-1, persistent:true, on-created-empty:steam"
|
||||
];
|
||||
|
||||
# ######## Layer rules ########
|
||||
layerrule = [
|
||||
"animation fade, hyprpicker"
|
||||
"animation fade, logout_dialog"
|
||||
"animation fade, selection"
|
||||
"animation fade, wayfreeze"
|
||||
|
||||
# Fuzzel
|
||||
"animation popin 80%, launcher"
|
||||
"blur, launcher"
|
||||
|
||||
# Shell
|
||||
"noanim, caelestia-(launcher|osd|notifications|border-exclusion|area-picker)"
|
||||
"animation fade, caelestia-(drawers|background)"
|
||||
"order 1, caelestia-border-exclusion"
|
||||
"order 2, caelestia-bar"
|
||||
# The commented out lines below need to remain commented if you don't want them active
|
||||
#"xray 1, caelestia-(border|launcher|bar|sidebar|navbar|mediadisplay|screencorners)"
|
||||
#"blur, caelestia-.*"
|
||||
#"blurpopups, caelestia-.*"
|
||||
#"ignorealpha 0.57, caelestia-.*"
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
myConfig,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
||||
portalPackage = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
|
||||
};
|
||||
}
|
||||
@@ -1,86 +0,0 @@
|
||||
{
|
||||
myConfig,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./config/binds.nix
|
||||
./config/execs.nix
|
||||
./config/rules.nix
|
||||
./config/animation.nix
|
||||
./config/decoration.nix
|
||||
./config/env.nix
|
||||
./config/colours.nix
|
||||
];
|
||||
|
||||
home.file.".config/hypr/scripts/wsaction.fish" = {
|
||||
source = builtins.toPath ./scripts/wsaction.fish;
|
||||
executable = true;
|
||||
};
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
xwayland.enable = true;
|
||||
systemd.enable = true;
|
||||
settings = {
|
||||
"$mod" = "SUPER";
|
||||
"$term" = "kitty --single-instance";
|
||||
"$browser" = "firefox";
|
||||
"$wsaction" = "fish -c ./scripts/wsaction.fish";
|
||||
"$widget" = "qs -c caelestia";
|
||||
|
||||
monitor = myConfig.nixos.Hyprland.monitors;
|
||||
general = {
|
||||
gaps_in = 2;
|
||||
gaps_out = 5;
|
||||
border_size = 2;
|
||||
# col.active_border = "#0DB7D4FF";
|
||||
# col.inactive_border = "#31313600";
|
||||
# col = {
|
||||
# "inactive_border" = "rgba(595959aa)";
|
||||
# "active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg";
|
||||
# };
|
||||
resize_on_border = false;
|
||||
allow_tearing = false;
|
||||
layout = "dwindle";
|
||||
};
|
||||
|
||||
dwindle = {
|
||||
pseudotile = true;
|
||||
preserve_split = true;
|
||||
};
|
||||
|
||||
master = {
|
||||
new_status = "master";
|
||||
};
|
||||
|
||||
misc = {
|
||||
force_default_wallpaper = -1;
|
||||
disable_hyprland_logo = true;
|
||||
};
|
||||
|
||||
input = {
|
||||
kb_layout = "us";
|
||||
follow_mouse = 1;
|
||||
sensitivity = 0;
|
||||
force_no_accel = true;
|
||||
repeat_delay = 250;
|
||||
repeat_rate = 35;
|
||||
|
||||
touchpad = {
|
||||
natural_scroll = false;
|
||||
};
|
||||
|
||||
numlock_by_default = true;
|
||||
};
|
||||
|
||||
gestures = {
|
||||
workspace_swipe = false;
|
||||
};
|
||||
|
||||
binds = {
|
||||
workspace_back_and_forth = true;
|
||||
scroll_event_delay = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
#!/usr/bin/env fish
|
||||
|
||||
if test "$argv[1]" = '-g'
|
||||
set group
|
||||
set -e $argv[1]
|
||||
end
|
||||
|
||||
if test (count $argv) -ne 2
|
||||
echo 'Wrong number of arguments. Usage: ./wsaction.fish [-g] <dispatcher> <workspace>'
|
||||
exit 1
|
||||
end
|
||||
|
||||
set -l active_ws (hyprctl activeworkspace -j | jq -r '.id')
|
||||
|
||||
if set -q group
|
||||
# Move to group
|
||||
hyprctl dispatch $argv[1] (math "($argv[2] - 1) * 10 + $active_ws % 10")
|
||||
else
|
||||
# Move to ws in group
|
||||
hyprctl dispatch $argv[1] (math "floor(($active_ws - 1) / 10) * 10 + $argv[2]")
|
||||
end
|
||||
@@ -1,8 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
# home.packages = with pkgs; [
|
||||
# hyprsunset
|
||||
# ];
|
||||
services.hyprsunset = {
|
||||
enable = true;
|
||||
};
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
home.packages = with pkgs; [
|
||||
lutris
|
||||
];
|
||||
}
|
||||
@@ -1,88 +0,0 @@
|
||||
{myConfig, ...}: {
|
||||
programs.mangohud = {
|
||||
enable = true;
|
||||
enableSessionWide = true;
|
||||
settings = {
|
||||
legacy_layout = false;
|
||||
horizontal = true;
|
||||
background_alpha = 0.6;
|
||||
round_corners = 10;
|
||||
background_color = "000000";
|
||||
font_size = 24;
|
||||
text_color = "FFFFFF";
|
||||
position = "top-left";
|
||||
toggle_hud = "Shift_R+F12";
|
||||
no_display = true;
|
||||
pci_dev = "0:03:00.0";
|
||||
table_columns = 3;
|
||||
|
||||
gpu_text = "GPU";
|
||||
gpu_stats = true;
|
||||
gpu_load_change = true;
|
||||
gpu_load_value = [50 90];
|
||||
gpu_load_color = ["FFFFFF" "FFAA7F" "CC0000"];
|
||||
gpu_temp = true;
|
||||
gpu_power = true;
|
||||
gpu_color = "2E9762";
|
||||
|
||||
cpu_text = "CPU";
|
||||
cpu_stats = true;
|
||||
cpu_load_change = true;
|
||||
cpu_load_value = [50 90];
|
||||
cpu_load_color = ["FFFFFF" "FFAA7F" "CC0000"];
|
||||
cpu_temp = true;
|
||||
cpu_power = true;
|
||||
cpu_color = "2E97CB";
|
||||
|
||||
vram = true;
|
||||
vram_color = "AD64C1";
|
||||
ram = true;
|
||||
ram_color = "C26693";
|
||||
battery = true;
|
||||
battery_color = "00FF00";
|
||||
|
||||
fps = true;
|
||||
fps_metrics = ["avg" "0.01"];
|
||||
engine_version = true;
|
||||
engine_color = "EB5B5B";
|
||||
arch = true;
|
||||
frame_timing = true;
|
||||
frametime_color = "FA8000";
|
||||
fps_limit_method = "late";
|
||||
toggle_fps_limit = "Shift_L+F1";
|
||||
fps_limit = 0;
|
||||
resolution = true;
|
||||
refresh_rate = true;
|
||||
|
||||
# custom_text = [
|
||||
# "-"
|
||||
# "$(cat /home/kenji/.config/goverlay/distro)"
|
||||
# "-"
|
||||
# "$(uname -r)"
|
||||
# "Session:"
|
||||
# "$(echo $XDG_SESSION_TYPE)"
|
||||
# ];
|
||||
|
||||
fps_color_change = true;
|
||||
fps_color = ["B22222" "FDFD09" "39F900"];
|
||||
fps_value = [30 60];
|
||||
|
||||
time = true;
|
||||
|
||||
output_folder = "/home/${myConfig.essentials.Username}/.mangohud/";
|
||||
log_duration = 30;
|
||||
autostart_log = false;
|
||||
log_interval = 100;
|
||||
toggle_logging = "Shift_L+F2";
|
||||
|
||||
blacklist = [
|
||||
"pamac-manager"
|
||||
"lact"
|
||||
"ghb"
|
||||
"bitwig-studio"
|
||||
"ptyxis"
|
||||
"yumex"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [inputs.matugen.nixosModules.default];
|
||||
environment.systemPackages = with pkgs; [
|
||||
inputs.matugen.packages.${system}.default
|
||||
];
|
||||
}
|
||||
@@ -1,57 +0,0 @@
|
||||
# /etc/nixos/configuration.nix
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
fetchurl,
|
||||
...
|
||||
}: let
|
||||
moondeckBuddyWrapped = pkgs.appimageTools.wrapType2 {
|
||||
pname = "moondeck-buddy";
|
||||
version = "1.8.2";
|
||||
|
||||
src = pkgs.fetchurl {
|
||||
url = "https://github.com/FrogTheFrog/moondeck-buddy/releases/download/v1.8.2/MoonDeckBuddy-1.8.2-x86_64.AppImage";
|
||||
hash = "sha256-D+9XIi3pIwaAq22DGHWAUqKub778qHQSjCU0aIjXmYY="; # Don't forget to update this!
|
||||
};
|
||||
|
||||
extraPkgs = pkgs:
|
||||
with pkgs; [
|
||||
# Your extraPkgs here
|
||||
];
|
||||
|
||||
desktopItems = [
|
||||
(pkgs.makeDesktopItem {
|
||||
name = "Moondeck Buddy";
|
||||
exec = "moondeck-buddy";
|
||||
icon = "applications-other";
|
||||
comment = "A Sunshine/Moondeck Buddy.";
|
||||
categories = ["Utility" "Productivity"];
|
||||
})
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Moondeck Buddy is an companion app for NVIDIA Sunshine/Moonlight.";
|
||||
homepage = "https://github.com/FrogTheFrog/moondeck-buddy";
|
||||
license = licenses.gpl3Only;
|
||||
platforms = platforms.linux;
|
||||
mainProgram = "moondeck-buddy";
|
||||
};
|
||||
};
|
||||
in {
|
||||
environment.systemPackages = with pkgs; [
|
||||
moondeckBuddyWrapped
|
||||
];
|
||||
|
||||
programs.appimage.enable = true;
|
||||
programs.appimage.binfmt = true;
|
||||
|
||||
# --- Firewall Configuration ---
|
||||
networking.firewall.allowedTCPPorts = [
|
||||
59999 # Allow Moondeck Buddy to listen on this port
|
||||
];
|
||||
# If Moondeck Buddy also needs UDP, uncomment and add it here:
|
||||
# networking.firewall.allowedUDPPorts = [
|
||||
# 59999
|
||||
# ];
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
system,
|
||||
...
|
||||
}: {
|
||||
home.packages = [
|
||||
inputs.nixovim.packages.${system}.default
|
||||
];
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
myConfig,
|
||||
...
|
||||
}: {
|
||||
home.packages = with pkgs; [
|
||||
protonup
|
||||
];
|
||||
|
||||
home.sessionVariables = {
|
||||
STEAM_EXTRA_COMPAT_TOOLS_PATHS = "/home/${myConfig.essentials.Username}/.steam/root/compatibilitytools.d";
|
||||
};
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
system,
|
||||
...
|
||||
}: {
|
||||
environment.systemPackages = [
|
||||
inputs.caelestia-shell.packages.${system}.caelestia-shell
|
||||
inputs.caelestia-shell.packages.${system}.caelestia-cli
|
||||
inputs.caelestia-shell.packages.${system}.beat-detector
|
||||
];
|
||||
environment.sessionVariables = {
|
||||
# Set CAELESTIA_BD_PATH to the store path of beat-detector
|
||||
CAELESTIA_BD_PATH = "${inputs.caelestia-shell.packages.${system}.beat-detector}/bin/beat_detector";
|
||||
};
|
||||
}
|
||||
@@ -1,48 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
system,
|
||||
...
|
||||
}: let
|
||||
caelestia-shell = pkgs.fetchFromGitHub {
|
||||
owner = "caelestia-dots";
|
||||
repo = "shell";
|
||||
rev = "main";
|
||||
sha256 = "sha256-FHPCSy/Fd9hIpFA2BxhTkbwBtY9vtvsEUYC3+ZX6zNQ=";
|
||||
};
|
||||
in {
|
||||
imports = [
|
||||
];
|
||||
home.packages = with pkgs; [
|
||||
inputs.quickshell.packages.${system}.default
|
||||
wl-screenrec
|
||||
libnotify
|
||||
grim
|
||||
foot
|
||||
hyprpicker
|
||||
heroic-unwrapped
|
||||
qalculate-qt
|
||||
fuzzel
|
||||
inotify-tools
|
||||
app2unit
|
||||
fish
|
||||
jq
|
||||
fd
|
||||
cliphist
|
||||
(pkgs.python3.withPackages (python-pkgs:
|
||||
with python-pkgs; [
|
||||
aubio
|
||||
pyaudio
|
||||
numpy
|
||||
]))
|
||||
cava
|
||||
bluez
|
||||
ddcutil
|
||||
brightnessctl
|
||||
curl
|
||||
material-symbols
|
||||
];
|
||||
home.file.".config/quickshell/caelestia" = {
|
||||
source = caelestia-shell;
|
||||
};
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
home.packages = with pkgs; [
|
||||
solaar
|
||||
];
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
myConfig,
|
||||
...
|
||||
}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
steam-run
|
||||
];
|
||||
|
||||
programs.appimage.enable = true;
|
||||
programs.appimage.binfmt = true;
|
||||
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
remotePlay.openFirewall = true;
|
||||
gamescopeSession.enable = true;
|
||||
extraCompatPackages = with pkgs; [proton-ge-bin];
|
||||
extraPackages = with pkgs; [
|
||||
mangohud
|
||||
gamescope-wsi
|
||||
];
|
||||
};
|
||||
programs.gamemode.enable = true;
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
xdg.desktopEntries = {
|
||||
steam = {
|
||||
name = "Steam";
|
||||
genericName = "Game Platform";
|
||||
comment = "Play and discuss games.";
|
||||
# exec = "${pkgs.mangohud}/bin/mangohud ${pkgs.steam}/bin/steam %U"; # The standard command to launch Steam
|
||||
exec = "${pkgs.steam}/bin/steam %U"; # The standard command to launch Steam
|
||||
terminal = false;
|
||||
icon = "steam"; # Assumes the 'steam' icon is available in your icon theme
|
||||
type = "Application";
|
||||
categories = ["Game" "Network"];
|
||||
mimeType = [
|
||||
"x-scheme-handler/steam" # For handling steam:// links
|
||||
];
|
||||
actions = {
|
||||
BigPicture = {
|
||||
name = "Big Picture Mode";
|
||||
# exec = "${pkgs.mangohud}/bin/mangohud ${pkgs.steam}/bin/steam steam://open/bigpicture";
|
||||
exec = "${pkgs.steam}/bin/steam steam://open/bigpicture";
|
||||
};
|
||||
Store = {
|
||||
name = "Store";
|
||||
# exec = "${pkgs.mangohud}/bin/mangohud ${pkgs.steam}/bin/steam steam://store";
|
||||
exec = "${pkgs.steam}/bin/steam steam://open/bigpicture";
|
||||
};
|
||||
Library = {
|
||||
name = "Library";
|
||||
# exec = "${pkgs.mangohud}/bin/mangohud ${pkgs.steam}/bin/steam steam://library";
|
||||
exec = "${pkgs.steam}/bin/steam steam://open/bigpicture";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
myConfig,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
inputs.jovian.nixosModules.default
|
||||
];
|
||||
# environment.systemPackages = with pkgs; [inputs.jovian.packages.${system}.default];
|
||||
jovian.steam.enable = true;
|
||||
jovian.steam.autoStart = true;
|
||||
jovian.steam.desktopSession = "hyprland";
|
||||
jovian.steam.user = "${myConfig.essentials.Username}";
|
||||
jovian.hardware.has.amd.gpu = true;
|
||||
|
||||
jovian.decky-loader.enable = true;
|
||||
jovian.decky-loader.user = "kenji";
|
||||
|
||||
# jovian.steamos.enableBluetoothConfig = true;
|
||||
# jovian.steamos.enableMesaPatches = true;
|
||||
jovian.steamos.useSteamOSConfig = true;
|
||||
# jovian.devices.steamdeck.enableControllerUdevRules = true;
|
||||
hardware = {
|
||||
xone.enable = true;
|
||||
};
|
||||
programs.nix-ld = {
|
||||
enable = true;
|
||||
libraries = pkgs.steam-run.args.multiPkgs pkgs;
|
||||
};
|
||||
}
|
||||
@@ -1,57 +0,0 @@
|
||||
{pkgs, ...}: let
|
||||
mangoConfigList = ["cpu_temp" "gpu_temp" "ram" "vram"];
|
||||
mangoConfigStr = builtins.concatStringsSep "," mangoConfigList;
|
||||
|
||||
gamescopeArgsList = [
|
||||
"--adaptive-sync"
|
||||
"--hdr-enabled"
|
||||
"--mangoapp"
|
||||
"--rt"
|
||||
"--steam"
|
||||
];
|
||||
gamescopeArgsStr = builtins.concatStringsSep " " gamescopeArgsList;
|
||||
|
||||
steamArgsList = [
|
||||
"-pipewire-dmabuf"
|
||||
"-tenfoot"
|
||||
];
|
||||
steamArgsStr = builtins.concatStringsSep " " steamArgsList;
|
||||
|
||||
myGamescopeSteamScript = pkgs.writeShellApplication {
|
||||
name = "start-gamescope-steam";
|
||||
runtimeInputs = [
|
||||
pkgs.gamescope
|
||||
pkgs.steam
|
||||
pkgs.mangohud
|
||||
];
|
||||
text = ''
|
||||
#!/usr/bin/env bash
|
||||
set -xeuo pipefail
|
||||
|
||||
export MANGOHUD=1
|
||||
export MANGOHUD_CONFIG="${mangoConfigStr}"
|
||||
|
||||
exec ${pkgs.gamescope}/bin/gamescope ${gamescopeArgsStr} -- ${pkgs.steam}/bin/steam ${steamArgsStr}
|
||||
'';
|
||||
};
|
||||
in {
|
||||
programs = {
|
||||
gamescope = {
|
||||
enable = true;
|
||||
capSysNice = true;
|
||||
};
|
||||
steam = {
|
||||
enable = true;
|
||||
remotePlay.openFirewall = true;
|
||||
dedicatedServer.openFirewall = true;
|
||||
localNetworkGameTransfers.openFirewall = true;
|
||||
gamescopeSession.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
hardware.xone.enable = true;
|
||||
|
||||
environment.loginShellInit = ''
|
||||
[[ "$(tty)" = "/dev/tty1" ]] && ${myGamescopeSteamScript}/bin/start-gamescope-steam
|
||||
'';
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
sunshine
|
||||
];
|
||||
services.sunshine = {
|
||||
enable = true;
|
||||
autoStart = true;
|
||||
capSysAdmin = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
services.udev.extraRules = ''
|
||||
SUBSYSTEM=="usb", ATTR{idVendor}=="0e8d", ATTR{idProduct}=="0616", ATTR{power/wakeup}="enabled"
|
||||
|
||||
'';
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
{
|
||||
programs.zoxide = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
enableZshIntegration = true;
|
||||
enableBashIntegration = true;
|
||||
};
|
||||
}
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
programs.ags = {
|
||||
enable = true;
|
||||
configDir = ./custom;
|
||||
configDir = ./biscuit;
|
||||
|
||||
extraPackages = let
|
||||
agsPkgs = inputs.ags.packages.${system};
|
||||
@@ -1,9 +1,8 @@
|
||||
{
|
||||
{...}: {
|
||||
programs.btop = {
|
||||
enable = true;
|
||||
settings = {
|
||||
vim_keys = true;
|
||||
theme_background = false;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,8 +1,9 @@
|
||||
{
|
||||
pkgs,
|
||||
myConfig,
|
||||
terminal,
|
||||
...
|
||||
}: {
|
||||
programs.zoxide.enable = true;
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
interactiveShellInit = ''
|
||||
@@ -11,7 +12,7 @@
|
||||
zoxide init fish | source
|
||||
|
||||
'';
|
||||
shellAliases = myConfig.general.Terminal.aliases;
|
||||
shellAliases = terminal.shellAliases;
|
||||
|
||||
plugins = with pkgs.fishPlugins; [
|
||||
];
|
||||
@@ -0,0 +1,10 @@
|
||||
{gitProfile, ...}: {
|
||||
programs.git = {
|
||||
enable = true;
|
||||
extraConfig = {
|
||||
user.name = "${gitProfile.user}";
|
||||
user.email = "${gitProfile.email}";
|
||||
init.defaultBranch = "${gitProfile.defaultBranch}";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
{pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
bottles
|
||||
heroic
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
{...}: {
|
||||
services.hypridle = {
|
||||
enable = true;
|
||||
settings = {
|
||||
general = {
|
||||
lock_cmd = "pidof hyprlock || hyprlock"; # avoid starting multiple hyprlock instances.
|
||||
before_sleep_cmd = "loginctl lock-session"; # lock before suspend.
|
||||
after_sleep_cmd = "hyprctl dispatch dpms on && agu"; # avoid needing to press a key twice to turn on the display.
|
||||
};
|
||||
|
||||
listener = [
|
||||
{
|
||||
timeout = 150;
|
||||
on-timeout = "brightnessctl -s set 10"; # set monitor backlight to minimum, avoid 0 on OLED monitor.
|
||||
on-resume = "brightnessctl -r"; # restore monitor backlight.
|
||||
}
|
||||
{
|
||||
timeout = 150;
|
||||
on-timeout = "brightnessctl -sd rgb:kbd_backlight set 0"; # turn off keyboard backlight.
|
||||
on-resume = "brightnessctl -rd rgb:kbd_backlight"; # turn on keyboard backlight.
|
||||
}
|
||||
{
|
||||
timeout = 300;
|
||||
on-timeout = "loginctl lock-session"; # lock screen when timeout has passed.
|
||||
}
|
||||
{
|
||||
timeout = 330;
|
||||
on-timeout = "hyprctl dispatch dpms off"; # screen off after 5.5min.
|
||||
on-resume = "hyprctl dispatch dpms on && brightnessctl -r"; # screen on and restore brightness on resume.
|
||||
}
|
||||
{
|
||||
timeout = 500;
|
||||
on-timeout = "systemctl suspend"; # suspend PC after 30min.
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,226 @@
|
||||
{
|
||||
hyprconf,
|
||||
username,
|
||||
terminal,
|
||||
...
|
||||
}: {
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
xwayland.enable = true;
|
||||
settings = {
|
||||
"$mod" = "SUPER";
|
||||
"$term" = "kitty --single-instance";
|
||||
"$browser" = "firefox";
|
||||
|
||||
monitor = hyprconf.monitor;
|
||||
|
||||
exec-once = [
|
||||
"[workspace 20 silent] kitty --single-insance --hold fastfetch"
|
||||
"[workspace 20 silent] firefox"
|
||||
"[workspace 1] kitty --single-instance --hold fastfetch"
|
||||
"pkill gjs & ags run"
|
||||
# "matugen image /home/${username}/.config/nixos/assets/wallpapers/ultrawide-nixos-default.png"
|
||||
"hyprctl setcursor Bibata-Original-Classic 24"
|
||||
"solaar -w hide"
|
||||
];
|
||||
|
||||
general = {
|
||||
gaps_in = 2;
|
||||
gaps_out = 5;
|
||||
border_size = 2;
|
||||
# col.active_border = "#0DB7D4FF";
|
||||
# col.inactive_border = "#31313600";
|
||||
# col = {
|
||||
# "inactive_border" = "rgba(595959aa)";
|
||||
# "active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg";
|
||||
# };
|
||||
resize_on_border = false;
|
||||
allow_tearing = false;
|
||||
layout = "dwindle";
|
||||
};
|
||||
decoration = {
|
||||
rounding = 0;
|
||||
rounding_power = 2;
|
||||
active_opacity = 1.0;
|
||||
inactive_opacity = 1.0;
|
||||
|
||||
dim_inactive = true;
|
||||
dim_strength = 0.1;
|
||||
dim_special = 0.8;
|
||||
|
||||
shadow = {
|
||||
enabled = true;
|
||||
range = 4;
|
||||
render_power = 3;
|
||||
color = "rgba(1a1a1aee)";
|
||||
};
|
||||
|
||||
blur = {
|
||||
enabled = true;
|
||||
size = 3;
|
||||
passes = 1;
|
||||
vibrancy = 0.1696;
|
||||
};
|
||||
};
|
||||
|
||||
animations = {
|
||||
enabled = true;
|
||||
bezier = [
|
||||
"linear, 0, 0, 1, 1"
|
||||
"md3_standard, 0.2, 0, 0, 1"
|
||||
"md3_decel, 0.05, 0.7, 0.1, 1"
|
||||
"md3_accel, 0.3, 0, 0.8, 0.15"
|
||||
"overshot, 0.05, 0.9, 0.1, 1.1"
|
||||
"crazyshot, 0.1, 1.5, 0.76, 0.92"
|
||||
"hyprnostretch, 0.05, 0.9, 0.1, 1.0"
|
||||
"menu_decel, 0.1, 1, 0, 1"
|
||||
"menu_accel, 0.38, 0.04, 1, 0.07"
|
||||
"easeInOutCirc, 0.85, 0, 0.15, 1"
|
||||
"easeOutCirc, 0, 0.55, 0.45, 1"
|
||||
"easeOutExpo, 0.16, 1, 0.3, 1"
|
||||
"softAcDecel, 0.26, 0.26, 0.15, 1"
|
||||
"md2, 0.4, 0, 0.2, 1"
|
||||
];
|
||||
|
||||
animation = [
|
||||
"windows, 1, 3, md3_decel, popin 60%"
|
||||
"windowsIn, 1, 3, md3_decel, popin 60%"
|
||||
"windowsOut, 1, 3, md3_accel, popin 60%"
|
||||
"border, 1, 10, default"
|
||||
"fade, 1, 3, md3_decel"
|
||||
"layersIn, 1, 3, menu_decel, slide"
|
||||
"layersOut, 1, 1.6, menu_accel"
|
||||
"fadeLayersIn, 1, 2, menu_decel"
|
||||
"fadeLayersOut, 1, 0.5, menu_accel"
|
||||
"workspaces, 1, 7, menu_decel, slide"
|
||||
"specialWorkspace, 1, 3, md3_decel, slidevert"
|
||||
];
|
||||
};
|
||||
|
||||
dwindle = {
|
||||
pseudotile = true;
|
||||
preserve_split = true;
|
||||
};
|
||||
|
||||
master = {
|
||||
new_status = "master";
|
||||
};
|
||||
|
||||
misc = {
|
||||
force_default_wallpaper = -1;
|
||||
disable_hyprland_logo = true;
|
||||
};
|
||||
|
||||
input = {
|
||||
kb_layout = "us";
|
||||
follow_mouse = 1;
|
||||
sensitivity = 0;
|
||||
force_no_accel = true;
|
||||
repeat_delay = 250;
|
||||
repeat_rate = 35;
|
||||
|
||||
touchpad = {
|
||||
natural_scroll = false;
|
||||
};
|
||||
|
||||
numlock_by_default = true;
|
||||
};
|
||||
|
||||
gestures = {
|
||||
workspace_swipe = false;
|
||||
};
|
||||
|
||||
binds = {
|
||||
workspace_back_and_forth = true;
|
||||
scroll_event_delay = 0;
|
||||
};
|
||||
|
||||
device = [
|
||||
{
|
||||
name = "epic-mouse-v1";
|
||||
sensitivity = -0.5;
|
||||
}
|
||||
];
|
||||
|
||||
bind =
|
||||
[
|
||||
"$mod, Return, exec, $term"
|
||||
"$mod, Q, killactive,"
|
||||
"$mod, M, exit,"
|
||||
"$mod, E, exec, $fileManager"
|
||||
"$mod, V, togglefloating,"
|
||||
"$mod, R, exec, $menu"
|
||||
"$mod, P, pseudo,"
|
||||
"$mod, B, togglesplit,"
|
||||
"$mod, W, exec, $browser"
|
||||
|
||||
"$mod, H, movefocus, l"
|
||||
"$mod, L, movefocus, r"
|
||||
"$mod, K, movefocus, u"
|
||||
"$mod, J, movefocus, d"
|
||||
|
||||
"$mod SHIFT, K, movewindow, u"
|
||||
"$mod SHIFT, J, movewindow, d"
|
||||
"$mod SHIFT, H, movewindow, l"
|
||||
"$mod SHIFT, L, movewindow, r"
|
||||
|
||||
"$mod CTRL, K, resizeactive, 0 -50"
|
||||
"$mod CTRL, J, resizeactive, 0 50"
|
||||
"$mod CTRL, H, resizeactive, -50 0"
|
||||
"$mod CTRL, L, resizeactive, 50 0"
|
||||
|
||||
"$mod, S, togglespecialworkspace, magic"
|
||||
"$mod SHIFT, S, movetoworkspace, special:magic"
|
||||
|
||||
"$mod, mouse_down, workspace, e+1"
|
||||
"$mod, mouse_up, workspace, e-1"
|
||||
|
||||
"$mod, F, fullscreen, 0"
|
||||
|
||||
"$mod, Space, exec, pkill rofi || rofi -show drun"
|
||||
"$mod, C, exec, pkill rofi || rofi -show calc -modi calc -no-show-match -no-sort"
|
||||
]
|
||||
++ (
|
||||
# workspaces
|
||||
builtins.concatLists (builtins.genList (
|
||||
i: let
|
||||
ws = i + 1;
|
||||
in [
|
||||
"$mod, ${toString ws}, workspace, ${toString ws}"
|
||||
"$mod SHIFT, ${toString ws}, movetoworkspace, ${toString ws}"
|
||||
]
|
||||
)
|
||||
9)
|
||||
)
|
||||
++ [
|
||||
"$mod, 0, workspace, 10"
|
||||
"$mod, 0, movetoworkspace, 10"
|
||||
];
|
||||
|
||||
bindm = [
|
||||
"$mod, mouse:272, movewindow"
|
||||
"$mod, mouse:273, resizewindow"
|
||||
];
|
||||
|
||||
bindel = [
|
||||
",XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"
|
||||
",XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
|
||||
",XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
||||
",XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
|
||||
",XF86MonBrightnessUp, exec, brightnessctl s 10%+"
|
||||
",XF86MonBrightnessDown, exec, brightnessctl s 10%-"
|
||||
];
|
||||
|
||||
bindl = [
|
||||
",XF86AudioNext, exec, playerctl next"
|
||||
",XF86AudioPause, exec, playerctl play-pause"
|
||||
",XF86AudioPlay, exec, playerctl play-pause"
|
||||
",XF86AudioPrev, exec, playerctl previous"
|
||||
];
|
||||
env = [
|
||||
"HYPRCURSOR_THEME, Bibata-Original-Classic"
|
||||
"HYPRCURSOR_SIZE, 24"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
Regular → Executable
+5
-12
@@ -1,24 +1,17 @@
|
||||
{
|
||||
myConfig,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
{terminal, ...}: {
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
|
||||
# themeFile = "kanagawa";
|
||||
themeFile = "Catppuccin-Mocha";
|
||||
themeFile = "kanagawa";
|
||||
settings = {
|
||||
confirm_os_window_close = 0;
|
||||
window_padding_width = 10;
|
||||
|
||||
font_size = myConfig.general.Terminal.size;
|
||||
font_family = myConfig.general.Terminal.font;
|
||||
font_size = terminal.termSize;
|
||||
font_family = terminal.termFont;
|
||||
bold_font = "auto";
|
||||
italic_font = "auto";
|
||||
bold_italic_font = "auto";
|
||||
shell = "${pkgs.${myConfig.general.Terminal.shell}}/bin/${myConfig.general.Terminal.shell}";
|
||||
|
||||
# optimization
|
||||
input_delay = 0;
|
||||
repaint_delay = 2;
|
||||
@@ -26,6 +19,6 @@
|
||||
wayland_enable_ime = false;
|
||||
allow_remote_control = true;
|
||||
};
|
||||
# extraConfig = "include colors.conf";
|
||||
extraConfig = "include colors.conf";
|
||||
};
|
||||
}
|
||||
@@ -4,6 +4,7 @@
|
||||
system,
|
||||
...
|
||||
}: {
|
||||
imports = [inputs.matugen.nixosModules.default];
|
||||
home.file.".config/matugen/config.toml" = {
|
||||
source = builtins.toPath ./custom/config.toml;
|
||||
};
|
||||
@@ -0,0 +1,174 @@
|
||||
{
|
||||
plugins = {
|
||||
alpha = {
|
||||
enable = true;
|
||||
layout = [
|
||||
{
|
||||
type = "padding";
|
||||
val = 2;
|
||||
}
|
||||
{
|
||||
type = "text";
|
||||
val = [
|
||||
" █████ █ ██"
|
||||
" ██████ ██ ████ █ █"
|
||||
" ██ █ █ ██ ████ ██ ███"
|
||||
" █ █ █ ██ █ █ ██ █"
|
||||
" █ █ ██ █ ████ ██ ███"
|
||||
" ██ ██ ██ █ ███ █ ███ █ ██ ███ ███ ███ ████ ████"
|
||||
" ██ ██ ██ █ █ ███ █ ████ ██ ███ ███ ███ ████ ███ █"
|
||||
" ██ ██ ██ █ █ ███ ██ ██ ██ ██ ██ ██ ████ ████"
|
||||
" ██ ██ ██ █ ██ █████ ██ ██ ██ ██ ██ ██ ██"
|
||||
" ██ ██ ██ █ ████████ ██ ██ ██ ██ ██ ██ ██ ██"
|
||||
" █ ██ ███ ███████ ██ ██ ██ ██ ██ ██ ██ ██"
|
||||
" █ ███ ██ ██ ██ ██ █ ██ ██ ██ ██"
|
||||
" ████ ██ ████ █ ██████ ███████ ██ ██ ██ ██"
|
||||
" █ █████ ███████ ████ █████ ███ █ ███ ███ ███"
|
||||
" █ ██ █████ ███ ███ ███ ███"
|
||||
" █"
|
||||
" █"
|
||||
" ██"
|
||||
];
|
||||
opts = {
|
||||
position = "center";
|
||||
hl = "Type";
|
||||
};
|
||||
}
|
||||
{
|
||||
type = "padding";
|
||||
val = 4;
|
||||
}
|
||||
{
|
||||
type = "group";
|
||||
val = [
|
||||
{
|
||||
type = "button";
|
||||
val = " New File ";
|
||||
on_press.__raw = "function() vim.cmd[[ene]] end";
|
||||
opts = {
|
||||
shortcut = "n";
|
||||
keymap = [
|
||||
"n"
|
||||
"n"
|
||||
"<cmd>ene<CR>"
|
||||
{
|
||||
noremap = true;
|
||||
silent = true;
|
||||
nowait = true;
|
||||
}
|
||||
];
|
||||
position = "center";
|
||||
width = 50;
|
||||
align_shortcut = "right";
|
||||
hl_shortcut = "Keyword";
|
||||
};
|
||||
}
|
||||
{
|
||||
type = "padding";
|
||||
val = 2;
|
||||
}
|
||||
{
|
||||
type = "button";
|
||||
val = " Find File ";
|
||||
opts = {
|
||||
shortcut = "f";
|
||||
keymap = [
|
||||
"n"
|
||||
"f"
|
||||
"<cmd>lua require('fzf-lua').files({ cwd = vim.loop.cwd() })<CR>"
|
||||
{
|
||||
noremap = true;
|
||||
silent = true;
|
||||
nowait = true;
|
||||
}
|
||||
];
|
||||
position = "center";
|
||||
width = 50;
|
||||
align_shortcut = "right";
|
||||
hl_shortcut = "Keyword";
|
||||
};
|
||||
}
|
||||
{
|
||||
type = "padding";
|
||||
val = 2;
|
||||
}
|
||||
{
|
||||
type = "button";
|
||||
val = " Recent Files ";
|
||||
on_press.__raw = "function() require('telescope.builtin').oldfiles() end";
|
||||
opts = {
|
||||
shortcut = "r";
|
||||
keymap = [
|
||||
"n"
|
||||
"r"
|
||||
"<cmd>lua require('fzf-lua').oldfiles({ cwd = vim.loop.cwd() })<CR>"
|
||||
{
|
||||
noremap = true;
|
||||
silent = true;
|
||||
nowait = true;
|
||||
}
|
||||
];
|
||||
position = "center";
|
||||
width = 50;
|
||||
align_shortcut = "right";
|
||||
hl_shortcut = "Keyword";
|
||||
};
|
||||
}
|
||||
{
|
||||
type = "padding";
|
||||
val = 2;
|
||||
}
|
||||
{
|
||||
type = "button";
|
||||
val = " Find Text ";
|
||||
on_press.__raw = "function() require('telescope.builtin').live_grep() end";
|
||||
opts = {
|
||||
shortcut = "g";
|
||||
keymap = [
|
||||
"n"
|
||||
"g"
|
||||
"<cmd>lua require('fzf-lua').live_grep()<CR>"
|
||||
{
|
||||
noremap = true;
|
||||
silent = true;
|
||||
nowait = true;
|
||||
}
|
||||
];
|
||||
position = "center";
|
||||
width = 50;
|
||||
align_shortcut = "right";
|
||||
hl_shortcut = "Keyword";
|
||||
};
|
||||
}
|
||||
{
|
||||
type = "padding";
|
||||
val = 2;
|
||||
}
|
||||
{
|
||||
type = "button";
|
||||
val = " Quit Neovim ";
|
||||
on_press.__raw = "function() vim.cmd[[qa]] end";
|
||||
opts = {
|
||||
shortcut = "q";
|
||||
keymap = [
|
||||
"n"
|
||||
"q"
|
||||
"<cmd>qa<CR>"
|
||||
{
|
||||
noremap = true;
|
||||
silent = true;
|
||||
nowait = true;
|
||||
}
|
||||
];
|
||||
position = "center";
|
||||
width = 50;
|
||||
align_shortcut = "right";
|
||||
hl_shortcut = "Keyword";
|
||||
};
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
# `plugins.mini.enable` with `plugins.mini.modules.icons` and `plugins.mini.mockDevIcons`.
|
||||
# plugins.web-devicons.enable = true;
|
||||
plugins.mini = {
|
||||
enable = true;
|
||||
mockDevIcons = true;
|
||||
modules = [
|
||||
];
|
||||
};
|
||||
plugins.telescope = {
|
||||
enable = true;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}: let
|
||||
nix-neovim = inputs.nix-neovim.packages.${pkgs.system}.default;
|
||||
in {
|
||||
programs.neovim.enable = false;
|
||||
home.packages = [
|
||||
nix-neovim
|
||||
pkgs.lazygit
|
||||
# ripgrep
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
/**
|
||||
*
|
||||
* Author : Aditya Shakya (adi1090x)
|
||||
* Github : @adi1090x
|
||||
*
|
||||
* Colors
|
||||
**/
|
||||
|
||||
* {
|
||||
background: #1E2127FF;
|
||||
background-alt: #282B31FF;
|
||||
foreground: #FFFFFFFF;
|
||||
selected: #61AFEFFF;
|
||||
active: #98C379FF;
|
||||
urgent: #E06C75FF;
|
||||
}
|
||||
@@ -0,0 +1,171 @@
|
||||
/**
|
||||
*
|
||||
* Author : Aditya Shakya (adi1090x)
|
||||
* Github : @adi1090x
|
||||
*
|
||||
* Rofi Theme File
|
||||
* Rofi Version: 1.7.3
|
||||
**/
|
||||
|
||||
/*****----- Configuration -----*****/
|
||||
configuration {
|
||||
modi: "drun";
|
||||
show-icons: true;
|
||||
display-drun: "";
|
||||
drun-display-format: "{name}";
|
||||
}
|
||||
|
||||
/*****----- Global Properties -----*****/
|
||||
@import "shared/colors.rasi"
|
||||
@import "shared/fonts.rasi"
|
||||
|
||||
/*****----- Main Window -----*****/
|
||||
window {
|
||||
transparency: "real";
|
||||
location: center;
|
||||
anchor: center;
|
||||
fullscreen: false;
|
||||
width: 400px;
|
||||
x-offset: 0px;
|
||||
y-offset: 0px;
|
||||
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 12px;
|
||||
border-color: @selected;
|
||||
background-color: @background;
|
||||
cursor: "default";
|
||||
}
|
||||
|
||||
/*****----- Main Box -----*****/
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 0px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px 0px 0px 0px;
|
||||
border-color: @selected;
|
||||
background-color: transparent;
|
||||
children: [ "inputbar", "listview" ];
|
||||
}
|
||||
|
||||
/*****----- Inputbar -----*****/
|
||||
inputbar {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 15px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
background-color: @selected;
|
||||
text-color: @background;
|
||||
children: [ "prompt", "entry" ];
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
textbox-prompt-colon {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "::";
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
entry {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
cursor: text;
|
||||
placeholder: "Search...";
|
||||
placeholder-color: inherit;
|
||||
}
|
||||
|
||||
/*****----- Listview -----*****/
|
||||
listview {
|
||||
enabled: true;
|
||||
columns: 1;
|
||||
lines: 6;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
reverse: false;
|
||||
fixed-height: true;
|
||||
fixed-columns: true;
|
||||
|
||||
spacing: 5px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
background-color: transparent;
|
||||
text-color: @foreground;
|
||||
cursor: "default";
|
||||
}
|
||||
scrollbar {
|
||||
handle-width: 5px ;
|
||||
handle-color: @selected;
|
||||
border-radius: 0px;
|
||||
background-color: @background-alt;
|
||||
}
|
||||
|
||||
/*****----- Elements -----*****/
|
||||
element {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 8px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
background-color: transparent;
|
||||
text-color: @foreground;
|
||||
cursor: pointer;
|
||||
}
|
||||
element normal.normal {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: @background-alt;
|
||||
text-color: @foreground;
|
||||
}
|
||||
element-icon {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
size: 32px;
|
||||
cursor: inherit;
|
||||
}
|
||||
element-text {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
highlight: inherit;
|
||||
cursor: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
}
|
||||
|
||||
/*****----- Message -----*****/
|
||||
error-message {
|
||||
padding: 15px;
|
||||
border: 2px solid;
|
||||
border-radius: 12px;
|
||||
border-color: @selected;
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
textbox {
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
highlight: none;
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Author : Aditya Shakya (adi1090x)
|
||||
## Github : @adi1090x
|
||||
#
|
||||
## Rofi : Launcher (Modi Drun, Run, File Browser, Window)
|
||||
#
|
||||
## Available Styles
|
||||
#
|
||||
## style-1 style-2 style-3 style-4 style-5
|
||||
## style-6 style-7 style-8 style-9 style-10
|
||||
## style-11 style-12 style-13 style-14 style-15
|
||||
|
||||
dir="$HOME/.config/wofi/launcher/config.rasi"
|
||||
theme='style-1'
|
||||
|
||||
## Run
|
||||
wofi \
|
||||
-show drun \
|
||||
-theme ${dir}/${theme}.rasi
|
||||
@@ -0,0 +1,18 @@
|
||||
/**
|
||||
*
|
||||
* Author : Aditya Shakya (adi1090x)
|
||||
* Github : @adi1090x
|
||||
*
|
||||
* Colors
|
||||
*
|
||||
* Available Colors Schemes
|
||||
*
|
||||
* adapta catppuccin everforest navy paper
|
||||
* arc cyberpunk gruvbox nord solarized
|
||||
* black dracula lovelace onedark yousai
|
||||
*
|
||||
**/
|
||||
|
||||
/* Import color-scheme from `colors` directory */
|
||||
|
||||
@import "~/.config/wofi/colors/onedark.rasi"
|
||||
@@ -0,0 +1,12 @@
|
||||
/**
|
||||
*
|
||||
* Author : Aditya Shakya (adi1090x)
|
||||
* Github : @adi1090x
|
||||
*
|
||||
* Fonts
|
||||
*
|
||||
**/
|
||||
|
||||
* {
|
||||
font: "Iosevka Nerd Font 10";
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
};
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user