Compare commits
No commits in common. "main" and "user-expansion" have entirely different histories.
main
...
user-expan
100
.github/workflows/build-iso.yml
vendored
|
@ -1,100 +0,0 @@
|
||||||
name: Build NixOS ISOs (x86 only)
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [main]
|
|
||||||
paths:
|
|
||||||
- "iso/**"
|
|
||||||
- "hosts/global/**"
|
|
||||||
- "home/global/**"
|
|
||||||
- "modules/**"
|
|
||||||
- "flake.nix"
|
|
||||||
- "flake.lock"
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build-iso:
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
iso-type: [server, desktop]
|
|
||||||
arch: [x86]
|
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Install Nix
|
|
||||||
uses: DeterminateSystems/nix-installer-action@v9
|
|
||||||
|
|
||||||
- name: Setup Nix cache
|
|
||||||
uses: DeterminateSystems/magic-nix-cache-action@v2
|
|
||||||
|
|
||||||
- name: Build ISO (with retry)
|
|
||||||
uses: nick-fields/retry@v3
|
|
||||||
with:
|
|
||||||
timeout_minutes: 45
|
|
||||||
max_attempts: 3
|
|
||||||
retry_wait_seconds: 30
|
|
||||||
command: |
|
|
||||||
cd iso
|
|
||||||
nix build .#${{ matrix.iso-type }}-iso-x86 \
|
|
||||||
--print-build-logs \
|
|
||||||
--accept-flake-config
|
|
||||||
|
|
||||||
- name: Get ISO filename
|
|
||||||
id: iso-info
|
|
||||||
run: |
|
|
||||||
cd iso
|
|
||||||
ISO_PATH=$(nix build .#${{ matrix.iso-type }}-iso-x86 --print-out-paths --no-link)
|
|
||||||
ISO_FILE=$(find $ISO_PATH -name "*.iso" -o -name "*.iso.zst" | head -1)
|
|
||||||
ISO_NAME=$(basename "$ISO_FILE")
|
|
||||||
echo "iso-path=$ISO_FILE" >> $GITHUB_OUTPUT
|
|
||||||
echo "iso-name=$ISO_NAME" >> $GITHUB_OUTPUT
|
|
||||||
|
|
||||||
- name: Upload ISO as artifact
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: nixos-${{ matrix.iso-type }}-${{ matrix.arch }}-iso
|
|
||||||
path: ${{ steps.iso-info.outputs.iso-path }}
|
|
||||||
retention-days: 30
|
|
||||||
|
|
||||||
create-release:
|
|
||||||
needs: build-iso
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
if: startsWith(github.ref, 'refs/tags/')
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Download all artifacts
|
|
||||||
uses: actions/download-artifact@v4
|
|
||||||
with:
|
|
||||||
path: ./isos
|
|
||||||
|
|
||||||
- name: Create Release
|
|
||||||
uses: softprops/action-gh-release@v1
|
|
||||||
with:
|
|
||||||
files: ./isos/**/*.iso*
|
|
||||||
tag_name: ${{ github.ref_name }}
|
|
||||||
name: NixOS ISOs ${{ github.ref_name }}
|
|
||||||
body: |
|
|
||||||
## NixOS ISOs for ${{ github.ref_name }}
|
|
||||||
|
|
||||||
This release contains automatically built NixOS ISOs based on my configuration.
|
|
||||||
|
|
||||||
### Available ISOs:
|
|
||||||
- **Server ISO**: Minimal server environment with SSH access
|
|
||||||
- **Desktop ISO**: GNOME desktop environment for installation
|
|
||||||
- **Architecture**: x86_64 (Intel/AMD systems)
|
|
||||||
|
|
||||||
### Usage:
|
|
||||||
1. Download the appropriate ISO for your system
|
|
||||||
2. Flash to USB or boot in VM
|
|
||||||
3. Default credentials: user `nixos`, password `nixos`
|
|
||||||
4. SSH is enabled for remote installation
|
|
||||||
|
|
||||||
Note: ARM ISOs are not provided in this build. Users requiring ARM versions should build locally.
|
|
||||||
|
|
||||||
Built automatically from commit: ${{ github.sha }}
|
|
||||||
draft: false
|
|
||||||
prerelease: false
|
|
23
.vscode/extensions.json
vendored
|
@ -1,23 +0,0 @@
|
||||||
{
|
|
||||||
"recommendations": [
|
|
||||||
"bierner.emojisense",
|
|
||||||
"mkhl.direnv",
|
|
||||||
"irongeek.vscode-env",
|
|
||||||
"bmalehorn.vscode-fish",
|
|
||||||
"github.copilot",
|
|
||||||
"github.copilot-chat",
|
|
||||||
"golang.go",
|
|
||||||
"eamodio.gitlens",
|
|
||||||
"mblet.highlight-regex",
|
|
||||||
"oderwat.indent-rainbow",
|
|
||||||
"visualstudioexptteam.vscodeintellicode",
|
|
||||||
"visualstudioexptteam.intellicode-api-usage-examples",
|
|
||||||
"yzhang.markdown-all-in-one",
|
|
||||||
"shd101wyy.markdown-preview-enhanced",
|
|
||||||
"bierner.markdown-preview-github-styles",
|
|
||||||
"bbenoist.nix",
|
|
||||||
"brettm12345.nixfmt-vscode",
|
|
||||||
"ryu1kn.partial-diff",
|
|
||||||
"jeffersonlicet.snipped"
|
|
||||||
]
|
|
||||||
}
|
|
618
.vscode/settings.json
vendored
|
@ -1,597 +1,25 @@
|
||||||
{
|
{
|
||||||
"editor.formatOnSave": true,
|
"editor.formatOnSave": true,
|
||||||
"editor.formatOnSaveMode": "file",
|
"editor.formatOnSaveMode": "file",
|
||||||
"explorer.fileNesting.patterns": {
|
"explorer.fileNesting.patterns": {
|
||||||
".gitignore": ".gitattributes, .envrc, readme",
|
".gitignore": ".gitattributes, .envrc, readme",
|
||||||
"flake.nix": "flake.lock, *.nix"
|
"flake.nix": "flake.lock, shell.nix, secrets.nix"
|
||||||
},
|
},
|
||||||
"files.exclude": {
|
"files.exclude": {
|
||||||
".git-crypt": true
|
".git-crypt": true
|
||||||
},
|
},
|
||||||
"terminal.integrated.defaultProfile.linux": "fish-fhs",
|
"terminal.integrated.defaultProfile.linux": "fish-fhs",
|
||||||
"terminal.integrated.profiles.linux": {
|
"terminal.integrated.profiles.linux": {
|
||||||
"fish-fhs": {
|
"fish-fhs": {
|
||||||
"args": [
|
"args": [
|
||||||
"--user",
|
"--user",
|
||||||
"--pty",
|
"--pty",
|
||||||
"--quiet",
|
"--quiet",
|
||||||
"--same-dir",
|
"--same-dir",
|
||||||
"--service-type=exec",
|
"--service-type=exec",
|
||||||
"fish"
|
"fish"
|
||||||
],
|
],
|
||||||
"path": "systemd-run"
|
"path": "systemd-run"
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
"highlight.regex.regexes": [
|
|
||||||
{
|
|
||||||
"languageIds": [
|
|
||||||
"css",
|
|
||||||
"fish",
|
|
||||||
"go",
|
|
||||||
"java",
|
|
||||||
"javascript",
|
|
||||||
"jsonc",
|
|
||||||
"nix",
|
|
||||||
"postcss",
|
|
||||||
"rust",
|
|
||||||
"shellscript",
|
|
||||||
"svelte",
|
|
||||||
"typescript",
|
|
||||||
"yuck"
|
|
||||||
],
|
|
||||||
"regexes": [
|
|
||||||
{
|
|
||||||
"decorations": [
|
|
||||||
{
|
|
||||||
"backgroundColor": "#4ebbff99",
|
|
||||||
"isWholeLine": true,
|
|
||||||
"overviewRulerColor": "#4ebbff"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"regex": "(<|</)(script)(.*)",
|
|
||||||
"regexes": [
|
|
||||||
{
|
|
||||||
"decorations": [
|
|
||||||
{
|
|
||||||
"color": "#4ebbff"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"regex": "[</>]"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"decorations": [
|
|
||||||
{
|
|
||||||
"color": "#ffa07a"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"regex": "script"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"regexFlag": "gm"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"decorations": [
|
|
||||||
{
|
|
||||||
"backgroundColor": "#ffa07a99",
|
|
||||||
"isWholeLine": true,
|
|
||||||
"overviewRulerColor": "#ffa07a"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"regex": "(<|</)(style)(.*)",
|
|
||||||
"regexes": [
|
|
||||||
{
|
|
||||||
"decorations": [
|
|
||||||
{
|
|
||||||
"color": "#ffa07a"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"regex": "[</>]"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"decorations": [
|
|
||||||
{
|
|
||||||
"color": "#7ad9ff"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"regex": "style"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"regexFlag": "gm"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"regex": "(/\\*|<\\!--)(.|[\r\n])*?((\\*/|-->)|-->)",
|
|
||||||
"regexes": [
|
|
||||||
{
|
|
||||||
"decorations": [
|
|
||||||
{
|
|
||||||
"color": "#d4be98",
|
|
||||||
"fontWeight": "bold",
|
|
||||||
"index": 0
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"regex": "\\B:D"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"decorations": [
|
|
||||||
{
|
|
||||||
"color": "#f00",
|
|
||||||
"fontWeight": "bold",
|
|
||||||
"index": 0
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"regex": "\\!\\!\\!"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"decorations": [
|
|
||||||
{
|
|
||||||
"color": "#D8A657",
|
|
||||||
"fontWeight": "bold",
|
|
||||||
"index": 0
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"regex": "\\^\\^"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"decorations": [
|
|
||||||
{
|
|
||||||
"color": "#E78A4E",
|
|
||||||
"fontWeight": "bold",
|
|
||||||
"index": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"color": "#D3869B",
|
|
||||||
"fontWeight": "bold",
|
|
||||||
"index": 2
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"regex": "(<)(>)"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"decorations": [
|
|
||||||
{
|
|
||||||
"fontWeight": "bold",
|
|
||||||
"index": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backgroundColor": "#804600",
|
|
||||||
"color": "#d4be98",
|
|
||||||
"index": 1,
|
|
||||||
"overviewRulerColor": "#804600"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"regex": "(.*TODO:)((.|\\r|\\n)*?(\\*/|-->)$)",
|
|
||||||
"regexes": [
|
|
||||||
{
|
|
||||||
"decorations": [
|
|
||||||
{
|
|
||||||
"index": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backgroundColor": "#80460099",
|
|
||||||
"color": "#d4be98",
|
|
||||||
"index": 2,
|
|
||||||
"overviewRulerColor": "#80460099"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"index": 2,
|
|
||||||
"regex": "([\\s]+)?( .*)"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"decorations": [
|
|
||||||
{
|
|
||||||
"fontWeight": "bold",
|
|
||||||
"index": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backgroundColor": "#fffacd",
|
|
||||||
"color": "#282828",
|
|
||||||
"index": 1,
|
|
||||||
"overviewRulerColor": "#fffacd"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"regex": "(.*NOTE:)((.|\\r|\\n)*?(\\*/|-->)$)",
|
|
||||||
"regexes": [
|
|
||||||
{
|
|
||||||
"decorations": [
|
|
||||||
{
|
|
||||||
"index": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backgroundColor": "#fffacd99",
|
|
||||||
"color": "#282828",
|
|
||||||
"index": 2,
|
|
||||||
"overviewRulerColor": "#fffacd99"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"index": 2,
|
|
||||||
"regex": "([\\s]+)?( .*)"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"decorations": [
|
|
||||||
{
|
|
||||||
"fontWeight": "bold",
|
|
||||||
"index": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backgroundColor": "#6495ed",
|
|
||||||
"color": "#282828",
|
|
||||||
"index": 1,
|
|
||||||
"overviewRulerColor": "#6495ed"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"regex": "(.*IDEA:)((.|\\r|\\n)*?(\\*/|-->)$)",
|
|
||||||
"regexes": [
|
|
||||||
{
|
|
||||||
"decorations": [
|
|
||||||
{
|
|
||||||
"index": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backgroundColor": "#6495ed99",
|
|
||||||
"color": "#282828",
|
|
||||||
"index": 2,
|
|
||||||
"overviewRulerColor": "#6495ed99"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"index": 2,
|
|
||||||
"regex": "([\\s]+)?( .*)"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"decorations": [
|
|
||||||
{
|
|
||||||
"fontWeight": "bold",
|
|
||||||
"index": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backgroundColor": "#66cc99",
|
|
||||||
"color": "#282828",
|
|
||||||
"index": 1,
|
|
||||||
"overviewRulerColor": "#66cc99"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"regex": "(.*INFO:)((.|\\r|\\n)*?(\\*/|-->)$)",
|
|
||||||
"regexes": [
|
|
||||||
{
|
|
||||||
"decorations": [
|
|
||||||
{
|
|
||||||
"index": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backgroundColor": "#66cc9999",
|
|
||||||
"color": "#282828",
|
|
||||||
"index": 2,
|
|
||||||
"overviewRulerColor": "#66cc9999"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"index": 2,
|
|
||||||
"regex": "([\\s]+)?( .*)"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"decorations": [
|
|
||||||
{
|
|
||||||
"fontWeight": "bold",
|
|
||||||
"index": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backgroundColor": "#591d77",
|
|
||||||
"color": "#d4be98",
|
|
||||||
"index": 1,
|
|
||||||
"overviewRulerColor": "#591d77"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"regex": "(.*(?:ABOUT|EXP|\\?+):)((.|\\r|\\n)*?(\\*/|-->)$)",
|
|
||||||
"regexes": [
|
|
||||||
{
|
|
||||||
"decorations": [
|
|
||||||
{
|
|
||||||
"index": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backgroundColor": "#591d7799",
|
|
||||||
"color": "#d4be98",
|
|
||||||
"index": 2,
|
|
||||||
"overviewRulerColor": "#591d7799"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"index": 2,
|
|
||||||
"regex": "([\\s]+)?( .*)"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"decorations": [
|
|
||||||
{
|
|
||||||
"fontWeight": "bold",
|
|
||||||
"index": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backgroundColor": "#a74165",
|
|
||||||
"color": "#d4be98",
|
|
||||||
"index": 1,
|
|
||||||
"overviewRulerColor": "#a74165"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"regex": "(.*(?:FIXME|FIX|BUG|DEBUG|HACK|REMOVE):)((.|\\r|\\n)*?(\\*/|-->)$)",
|
|
||||||
"regexes": [
|
|
||||||
{
|
|
||||||
"decorations": [
|
|
||||||
{
|
|
||||||
"index": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backgroundColor": "#a7416599",
|
|
||||||
"color": "#d4be98",
|
|
||||||
"index": 2,
|
|
||||||
"overviewRulerColor": "#a7416599"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"index": 2,
|
|
||||||
"regex": "([\\s]+)?( .*)"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"decorations": [
|
|
||||||
{
|
|
||||||
"fontWeight": "bold",
|
|
||||||
"index": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backgroundColor": "#c36c5c",
|
|
||||||
"color": "#d4be98",
|
|
||||||
"index": 1,
|
|
||||||
"overviewRulerColor": "#c36c5c"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"regex": "(.*(?:SKELETON|COMPONENT):)((.|\\r|\\n)*?(\\*/|-->)$)",
|
|
||||||
"regexes": [
|
|
||||||
{
|
|
||||||
"decorations": [
|
|
||||||
{
|
|
||||||
"index": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backgroundColor": "#c36c5c99",
|
|
||||||
"color": "#d4be98",
|
|
||||||
"index": 2,
|
|
||||||
"overviewRulerColor": "#c36c5c99"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"index": 2,
|
|
||||||
"regex": "([\\s]+)?( .*)"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"regexFlag": "gm",
|
|
||||||
"regexLimit": 25000
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"regex": "(?<=\\s*)(//|#|;)(.|\r\n)*?$",
|
|
||||||
"regexes": [
|
|
||||||
{
|
|
||||||
"decorations": [
|
|
||||||
{
|
|
||||||
"color": "#d4be98",
|
|
||||||
"fontWeight": "bold",
|
|
||||||
"index": 0
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"regex": "\\B:D"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"decorations": [
|
|
||||||
{
|
|
||||||
"fontWeight": "bold",
|
|
||||||
"index": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"color": "#D8A657",
|
|
||||||
"index": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"color": "#d4be98",
|
|
||||||
"index": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"color": "#d4be98",
|
|
||||||
"index": 4
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"color": "#D8A657",
|
|
||||||
"index": 5
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"regex": "(^/|#|;)(/|#|;)(.*)(/|#|;)(/|#|;$)"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"decorations": [
|
|
||||||
{
|
|
||||||
"color": "#f00",
|
|
||||||
"fontWeight": "bold",
|
|
||||||
"index": 0
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"regex": "\\!\\!\\!"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"decorations": [
|
|
||||||
{
|
|
||||||
"color": "#D8A657",
|
|
||||||
"fontWeight": "bold",
|
|
||||||
"index": 0
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"regex": "\\^\\^"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"decorations": [
|
|
||||||
{
|
|
||||||
"color": "#E78A4E",
|
|
||||||
"fontWeight": "bold",
|
|
||||||
"index": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"color": "#D3869B",
|
|
||||||
"fontWeight": "bold",
|
|
||||||
"index": 2
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"regex": "(<)(>)"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"decorations": [
|
|
||||||
{
|
|
||||||
"color": "#d4be98",
|
|
||||||
"fontWeight": "bold",
|
|
||||||
"index": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backgroundColor": "#804600",
|
|
||||||
"index": 1,
|
|
||||||
"overviewRulerColor": "#804600"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backgroundColor": "#80460099",
|
|
||||||
"index": 2,
|
|
||||||
"overviewRulerColor": "#80460099"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"regex": "(.*TODO:)(.*)"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"decorations": [
|
|
||||||
{
|
|
||||||
"color": "#282828",
|
|
||||||
"fontWeight": "bold",
|
|
||||||
"index": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backgroundColor": "#fffacd",
|
|
||||||
"index": 1,
|
|
||||||
"overviewRulerColor": "#fffacd"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backgroundColor": "#fffacd99",
|
|
||||||
"index": 2,
|
|
||||||
"overviewRulerColor": "#fffacd99"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"regex": "(.*NOTE:)(.*)"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"decorations": [
|
|
||||||
{
|
|
||||||
"color": "#282828",
|
|
||||||
"fontWeight": "bold",
|
|
||||||
"index": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backgroundColor": "#6495ed",
|
|
||||||
"index": 1,
|
|
||||||
"overviewRulerColor": "#6495ed"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backgroundColor": "#6495ed99",
|
|
||||||
"index": 2,
|
|
||||||
"overviewRulerColor": "#6495ed99"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"regex": "(.*IDEA:)(.*)"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"decorations": [
|
|
||||||
{
|
|
||||||
"color": "#282828",
|
|
||||||
"fontWeight": "bold",
|
|
||||||
"index": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backgroundColor": "#66cc99",
|
|
||||||
"index": 1,
|
|
||||||
"overviewRulerColor": "#66cc99"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backgroundColor": "#66cc9999",
|
|
||||||
"index": 2,
|
|
||||||
"overviewRulerColor": "#66cc9999"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"regex": "(.*INFO:)(.*)"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"decorations": [
|
|
||||||
{
|
|
||||||
"color": "#d4be98",
|
|
||||||
"fontWeight": "bold",
|
|
||||||
"index": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backgroundColor": "#591d77",
|
|
||||||
"index": 1,
|
|
||||||
"overviewRulerColor": "#591d77"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backgroundColor": "#591d7799",
|
|
||||||
"index": 2,
|
|
||||||
"overviewRulerColor": "#591d7799"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"regex": "(.*(?:ABOUT|EXP|\\?+):)(.*)"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"decorations": [
|
|
||||||
{
|
|
||||||
"color": "#d4be98",
|
|
||||||
"fontWeight": "bold",
|
|
||||||
"index": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backgroundColor": "#a74165",
|
|
||||||
"index": 1,
|
|
||||||
"overviewRulerColor": "#a74165"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backgroundColor": "#a7416599",
|
|
||||||
"index": 2,
|
|
||||||
"overviewRulerColor": "#a7416599"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"regex": "(.*(?:FIXME|FIX|BUG|DEBUG|HACK|REMOVE):)(.*)"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"decorations": [
|
|
||||||
{
|
|
||||||
"color": "#d4be98",
|
|
||||||
"fontWeight": "bold",
|
|
||||||
"index": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backgroundColor": "#c36c5c",
|
|
||||||
"index": 1,
|
|
||||||
"overviewRulerColor": "#c36c5c"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"backgroundColor": "#c36c5c99",
|
|
||||||
"index": 2,
|
|
||||||
"overviewRulerColor": "#c36c5c99"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"regex": "(.*(?:SKELETON|COMPONENT):)(.*)"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"regexFlag": "gm",
|
|
||||||
"regexLimit": 25000
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
943
flake.lock
generated
186
flake.nix
|
@ -3,9 +3,11 @@
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-25.05";
|
|
||||||
|
# Pin stable vs unstable: use nixpkgs-stable for critical packages while nixpkgs follows the beta branch.
|
||||||
|
# See overlays "stable-packages" and "unstable-packages" in ./overlays/default.nix.
|
||||||
|
nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-24.11";
|
||||||
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
|
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable"; # Bleeding edge packages from Chaotic-AUR
|
|
||||||
|
|
||||||
## NixOS ##
|
## NixOS ##
|
||||||
|
|
||||||
|
@ -26,7 +28,19 @@
|
||||||
inputs.nixpkgs.follows = "nixpkgs-stable";
|
inputs.nixpkgs.follows = "nixpkgs-stable";
|
||||||
};
|
};
|
||||||
|
|
||||||
## Theming ##
|
# TODO: theming
|
||||||
|
|
||||||
|
## Hyprland ##
|
||||||
|
|
||||||
|
watershot = {
|
||||||
|
url = "github:Liassica/watershot/165dd431c95054ac1bfea2f9a85e1be924af21c9";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs-stable";
|
||||||
|
};
|
||||||
|
|
||||||
|
better-control = {
|
||||||
|
url = "github:rishabh5321/better-control-flake";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
rose-pine-hyprcursor = {
|
rose-pine-hyprcursor = {
|
||||||
url = "github:ndom91/rose-pine-hyprcursor";
|
url = "github:ndom91/rose-pine-hyprcursor";
|
||||||
|
@ -34,34 +48,25 @@
|
||||||
|
|
||||||
stylix.url = "github:danth/stylix";
|
stylix.url = "github:danth/stylix";
|
||||||
|
|
||||||
## Gaming Packages ##
|
## Misc Packages ##
|
||||||
|
|
||||||
nix-gaming = {
|
nix-gaming = {
|
||||||
url = "github:fufexan/nix-gaming";
|
url = "github:fufexan/nix-gaming";
|
||||||
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
inputs = {
|
||||||
|
nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
play = {
|
|
||||||
url = "github:tophc7/play.nix";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
|
||||||
};
|
|
||||||
|
|
||||||
## Misc Packages ##
|
|
||||||
|
|
||||||
# nixcord.url = "github:kaylorben/nixcord";
|
# nixcord.url = "github:kaylorben/nixcord";
|
||||||
# spicetify-nix = {
|
# spicetify-nix = {
|
||||||
# url = "github:Gerg-L/spicetify-nix";
|
# url = "github:Gerg-L/spicetify-nix";
|
||||||
# inputs.nixpkgs.follows = "nixpkgs";
|
# inputs.nixpkgs.follows = "nixpkgs";
|
||||||
# };
|
# };
|
||||||
|
|
||||||
solaar = {
|
|
||||||
url = "github:Svenum/Solaar-Flake";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
|
|
||||||
snapraid-aio = {
|
snapraid-aio = {
|
||||||
url = "github:tophc7/snapraid-aio.nix";
|
# url = "git+https://git.ryot.foo/toph/snapraid-aio.nix.git";
|
||||||
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
url = "git+https://git.ryot.foo/toph/snapraid-aio.nix.git";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
vscode-server = {
|
vscode-server = {
|
||||||
|
@ -70,8 +75,8 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
yay = {
|
yay = {
|
||||||
url = "github:tophc7/yay.nix";
|
url = "git+https://git.ryot.foo/toph/yay.nix.git";
|
||||||
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
zen-browser = {
|
zen-browser = {
|
||||||
|
@ -86,66 +91,79 @@
|
||||||
inherit (self) outputs;
|
inherit (self) outputs;
|
||||||
inherit (nixpkgs) lib;
|
inherit (nixpkgs) lib;
|
||||||
|
|
||||||
ARM = "aarch64-linux";
|
ARM = "aarch64-linux"; # ARM systems
|
||||||
X86 = "x86_64-linux";
|
X86 = "x86_64-linux"; # x86_64 systems
|
||||||
|
|
||||||
|
#
|
||||||
|
# ========= Architectures =========
|
||||||
|
#
|
||||||
forAllSystems = nixpkgs.lib.genAttrs [
|
forAllSystems = nixpkgs.lib.genAttrs [
|
||||||
ARM
|
ARM
|
||||||
X86
|
X86
|
||||||
];
|
];
|
||||||
|
|
||||||
## Host Config ##
|
#
|
||||||
|
# ========= Host Config Functions =========
|
||||||
# read host-dirs under e.g. hosts/x86 or hosts/arm
|
#
|
||||||
readHosts = arch: lib.attrNames (builtins.readDir ./hosts/${arch});
|
# Handle a given host config based on whether its underlying system is nixos or darwin
|
||||||
|
mkHost = host: isARM: {
|
||||||
# build one host, choosing folder + system by isARM flag
|
${host} =
|
||||||
mkHost =
|
let
|
||||||
host: isARM:
|
func = if isARM then ARM else X86;
|
||||||
let
|
systemFunc = func;
|
||||||
folder = if isARM then "arm" else "x86";
|
in
|
||||||
system = if isARM then ARM else X86;
|
lib.nixosSystem {
|
||||||
in
|
|
||||||
{
|
|
||||||
"${host}" = lib.nixosSystem {
|
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
inherit
|
inherit
|
||||||
inputs
|
inputs
|
||||||
outputs
|
outputs
|
||||||
isARM
|
isARM
|
||||||
system
|
|
||||||
;
|
;
|
||||||
lib = nixpkgs.lib.extend (
|
system = systemFunc;
|
||||||
# INFO: Extend lib with lib.custom; This approach allows lib.custom to propagate into hm
|
# ========== Extend lib with lib.custom ==========
|
||||||
self: super: {
|
# NOTE: This approach allows lib.custom to propagate into hm
|
||||||
custom = import ./lib { inherit (nixpkgs) lib; };
|
# see: https://github.com/nix-community/home-manager/pull/3454
|
||||||
}
|
lib = nixpkgs.lib.extend (self: super: { custom = import ./lib { inherit (nixpkgs) lib; }; });
|
||||||
);
|
|
||||||
};
|
};
|
||||||
modules = [
|
modules = [
|
||||||
{ nixpkgs.overlays = [ self.overlays.default ]; }
|
# Apply the overlays to make custom packages available
|
||||||
|
{
|
||||||
|
nixpkgs.overlays = [
|
||||||
|
self.overlays.default
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
# Import secrets
|
# Import secrets
|
||||||
./modules/global/secret-spec.nix
|
./modules/global/secret-spec.nix
|
||||||
./secrets.nix
|
./secrets.nix
|
||||||
|
|
||||||
# Host-specific configuration
|
# Host-specific configuration
|
||||||
./hosts/${folder}/${host}
|
./hosts/nixos/${host}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Invoke mkHost for each host config that is declared for either X86 or ARM
|
# Invoke mkHost for each host config that is declared for either X86 or ARM
|
||||||
mkHostConfigs =
|
mkHostConfigs =
|
||||||
hosts: isARM: lib.foldl (acc: set: acc // set) { } (lib.map (host: mkHost host isARM) hosts);
|
hosts: isARM: lib.foldl (acc: set: acc // set) { } (lib.map (host: mkHost host isARM) hosts);
|
||||||
|
# Return the hosts declared in the given directory
|
||||||
|
readHosts = folder: lib.attrNames (builtins.readDir ./hosts/${folder});
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
#
|
||||||
|
# ========= Overlays =========
|
||||||
|
#
|
||||||
|
# Custom modifications/overrides to upstream packages.
|
||||||
overlays = import ./overlays { inherit inputs; };
|
overlays = import ./overlays { inherit inputs; };
|
||||||
|
|
||||||
# now point at x86 *and* arm directories explicitly
|
#
|
||||||
nixosConfigurations =
|
# ========= Host Configurations =========
|
||||||
(mkHostConfigs (readHosts "x86") false) // (mkHostConfigs (readHosts "arm") true);
|
#
|
||||||
|
# Building configurations is available through `just rebuild` or `nixos-rebuild --flake .#hostname`
|
||||||
|
nixosConfigurations = mkHostConfigs (readHosts "nixos") false;
|
||||||
|
|
||||||
|
# ========= Packages =========
|
||||||
|
#
|
||||||
|
# Add custom packages to be shared or upstreamed.
|
||||||
packages = forAllSystems (
|
packages = forAllSystems (
|
||||||
system:
|
system:
|
||||||
let
|
let
|
||||||
|
@ -170,71 +188,5 @@
|
||||||
in
|
in
|
||||||
customPackages
|
customPackages
|
||||||
);
|
);
|
||||||
|
|
||||||
## SHELL ##
|
|
||||||
|
|
||||||
devShells = forAllSystems (
|
|
||||||
system:
|
|
||||||
let
|
|
||||||
pkgs = import nixpkgs {
|
|
||||||
inherit system;
|
|
||||||
overlays = [ self.overlays.default ];
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
default = pkgs.mkShell {
|
|
||||||
nativeBuildInputs =
|
|
||||||
with pkgs;
|
|
||||||
[
|
|
||||||
# Basic nix tools
|
|
||||||
nix
|
|
||||||
nixos-rebuild
|
|
||||||
home-manager
|
|
||||||
nh
|
|
||||||
# Git and git-crypt
|
|
||||||
git
|
|
||||||
git-crypt
|
|
||||||
gnupg
|
|
||||||
gpg-tui
|
|
||||||
# Shells
|
|
||||||
fish
|
|
||||||
bash
|
|
||||||
# Config tools
|
|
||||||
dconf2nix
|
|
||||||
# Network tools
|
|
||||||
curl
|
|
||||||
wget
|
|
||||||
# System tools
|
|
||||||
coreutils
|
|
||||||
findutils
|
|
||||||
gzip
|
|
||||||
zstd
|
|
||||||
# Text editors
|
|
||||||
micro
|
|
||||||
# microsoft-edit
|
|
||||||
# Diagnostics
|
|
||||||
inxi
|
|
||||||
pciutils
|
|
||||||
usbutils
|
|
||||||
lshw
|
|
||||||
]
|
|
||||||
++ [
|
|
||||||
inputs.yay.packages.${system}.default # My yay.nix tool
|
|
||||||
];
|
|
||||||
|
|
||||||
NIX_CONFIG = "experimental-features = nix-command flakes";
|
|
||||||
|
|
||||||
shellHook = ''
|
|
||||||
clear
|
|
||||||
echo "Development shell initialized"
|
|
||||||
echo -e "Run '\033[1;34myay rebuild\033[0m' to rebuild your system"
|
|
||||||
|
|
||||||
# Set FLAKE to the current working directory
|
|
||||||
export FLAKE="$PWD"
|
|
||||||
echo -e "FLAKE environment variable is set to: \033[1;34m$FLAKE\033[0m"
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
||||||
);
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = lib.custom.scanPaths ./.;
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
prismlauncher
|
|
||||||
# modrinth-app
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,136 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
osConfig,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
inputs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
inputs.play.homeManagerModules.play
|
|
||||||
];
|
|
||||||
|
|
||||||
play = {
|
|
||||||
monitors = config.monitors; # I use the same module as in play.nix
|
|
||||||
gamescoperun = {
|
|
||||||
enable = true;
|
|
||||||
useGit = true;
|
|
||||||
|
|
||||||
# Extra environment variables
|
|
||||||
environment = {
|
|
||||||
XCURSOR_THEME = config.home.pointerCursor.name or "Adwaita";
|
|
||||||
XCURSOR_PATH = "${config.home.pointerCursor.package or pkgs.adwaita-icon-theme}/share/icons";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
wrappers = {
|
|
||||||
steam = {
|
|
||||||
enable = true;
|
|
||||||
command = "${lib.getExe osConfig.programs.steam.package} -bigpicture -tenfoot";
|
|
||||||
extraOptions = {
|
|
||||||
"steam" = true; # equivalent to --steam flag
|
|
||||||
};
|
|
||||||
environment = {
|
|
||||||
STEAM_FORCE_DESKTOPUI_SCALING = 1;
|
|
||||||
STEAM_GAMEPADUI = 1;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
heroic = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.heroic; # No special package configured by play.nix
|
|
||||||
extraOptions = {
|
|
||||||
"force-windows-fullscreen" = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
lutris = {
|
|
||||||
enable = true;
|
|
||||||
package = osConfig.play.lutris.package;
|
|
||||||
extraOptions = {
|
|
||||||
"force-windows-fullscreen" = true;
|
|
||||||
};
|
|
||||||
environment = {
|
|
||||||
LUTRIS_SKIP_INIT = 1;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Override default desktop entries to use gamescope wrappers
|
|
||||||
xdg.desktopEntries = {
|
|
||||||
steam = {
|
|
||||||
name = "Steam";
|
|
||||||
comment = "Steam Big Picture in Gamescope Session";
|
|
||||||
exec = "${lib.getExe config.play.wrappers.steam.wrappedPackage}";
|
|
||||||
icon = "steam";
|
|
||||||
type = "Application";
|
|
||||||
terminal = false;
|
|
||||||
categories = [ "Game" ];
|
|
||||||
mimeType = [
|
|
||||||
"x-scheme-handler/steam"
|
|
||||||
"x-scheme-handler/steamlink"
|
|
||||||
];
|
|
||||||
settings = {
|
|
||||||
StartupNotify = "true";
|
|
||||||
StartupWMClass = "Steam";
|
|
||||||
PrefersNonDefaultGPU = "true";
|
|
||||||
X-KDE-RunOnDiscreteGpu = "true";
|
|
||||||
Keywords = "gaming;";
|
|
||||||
};
|
|
||||||
actions = {
|
|
||||||
bigpicture = {
|
|
||||||
name = "Steam Client (No Gamescope)";
|
|
||||||
exec = "${lib.getExe (config.play.steam.package or pkgs.steam)}";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
"com.heroicgameslauncher.hgl" = {
|
|
||||||
name = "Heroic Games Launcher";
|
|
||||||
comment = "Heroic in Gamescope Session";
|
|
||||||
exec = "${lib.getExe config.play.wrappers.heroic.wrappedPackage}";
|
|
||||||
icon = "com.heroicgameslauncher.hgl";
|
|
||||||
type = "Application";
|
|
||||||
terminal = false;
|
|
||||||
categories = [ "Game" ];
|
|
||||||
actions = {
|
|
||||||
regular = {
|
|
||||||
name = "Heroic (No Gamescope)";
|
|
||||||
exec = "${lib.getExe pkgs.heroic}";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
"net.lutris.Lutris" = {
|
|
||||||
name = "Lutris";
|
|
||||||
comment = "Video Game Preservation Platform";
|
|
||||||
exec = "${lib.getExe (config.play.lutris.package or pkgs.lutris)} %U";
|
|
||||||
icon = "net.lutris.Lutris";
|
|
||||||
type = "Application";
|
|
||||||
terminal = false;
|
|
||||||
categories = [ "Game" ];
|
|
||||||
mimeType = [ "x-scheme-handler/lutris" ];
|
|
||||||
settings = {
|
|
||||||
StartupNotify = "true";
|
|
||||||
StartupWMClass = "Lutris";
|
|
||||||
Keywords = "gaming;wine;emulator;";
|
|
||||||
X-GNOME-UsesNotifications = "true";
|
|
||||||
};
|
|
||||||
actions = {
|
|
||||||
broken = {
|
|
||||||
name = "Lutris (Gamescope BROKEN)";
|
|
||||||
exec = "${lib.getExe config.play.wrappers.lutris.wrappedPackage}";
|
|
||||||
};
|
|
||||||
|
|
||||||
broken-exposed = {
|
|
||||||
name = "Lutris (Gamescope BROKEN; Exposed Wayland)";
|
|
||||||
exec = ''${lib.getExe config.play.gamescoperun.package} -x "--force-windows-fullscreen --expose-wayland" ${
|
|
||||||
lib.getExe (config.play.lutris.package or pkgs.lutris)
|
|
||||||
}'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,19 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
programs.mangohud = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
position = "top-right";
|
|
||||||
cpu_stats = true;
|
|
||||||
gpu_stats = true;
|
|
||||||
fps = true;
|
|
||||||
font_size = 12;
|
|
||||||
cellpadding_y = -0.070;
|
|
||||||
background_alpha = lib.mkForce 0.5;
|
|
||||||
alpha = lib.mkForce 0.75;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,459 +0,0 @@
|
||||||
# Generated via dconf2nix: https://github.com/gvolpe/dconf2nix
|
|
||||||
{ lib, ... }:
|
|
||||||
|
|
||||||
with lib.hm.gvariant;
|
|
||||||
|
|
||||||
{
|
|
||||||
dconf.settings = {
|
|
||||||
"org/gnome/TextEditor" = lib.mkDefault {
|
|
||||||
style-scheme = "stylix";
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/desktop/input-sources" = lib.mkDefault {
|
|
||||||
sources = [
|
|
||||||
(mkTuple [
|
|
||||||
"xkb"
|
|
||||||
"us"
|
|
||||||
])
|
|
||||||
];
|
|
||||||
xkb-options = [
|
|
||||||
"terminate:ctrl_alt_bksp"
|
|
||||||
"lv3:ralt_switch"
|
|
||||||
"compose:menu"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/desktop/wm/keybindings" = lib.mkDefault {
|
|
||||||
maximize = [ ];
|
|
||||||
move-to-monitor-down = [ ];
|
|
||||||
move-to-monitor-left = [ ];
|
|
||||||
move-to-monitor-right = [ ];
|
|
||||||
move-to-monitor-up = [ ];
|
|
||||||
move-to-workspace-down = [ "<Control><Shift><Alt>Down" ];
|
|
||||||
move-to-workspace-left = [ ];
|
|
||||||
move-to-workspace-right = [ ];
|
|
||||||
move-to-workspace-up = [ "<Control><Shift><Alt>Up" ];
|
|
||||||
shift-overview-down = [ "" ];
|
|
||||||
shift-overview-up = [ "" ];
|
|
||||||
switch-applications = [ ];
|
|
||||||
switch-applications-backward = [
|
|
||||||
"<Shift><Super>Tab"
|
|
||||||
"<Shift><Alt>Tab"
|
|
||||||
];
|
|
||||||
switch-group = [
|
|
||||||
"<Super>Above_Tab"
|
|
||||||
"<Alt>Above_Tab"
|
|
||||||
];
|
|
||||||
switch-group-backward = [
|
|
||||||
"<Shift><Super>Above_Tab"
|
|
||||||
"<Shift><Alt>Above_Tab"
|
|
||||||
];
|
|
||||||
switch-input-source = [ ];
|
|
||||||
switch-input-source-backward = [ ];
|
|
||||||
switch-panels = [ "<Control><Alt>Tab" ];
|
|
||||||
switch-panels-backward = [ "<Shift><Control><Alt>Tab" ];
|
|
||||||
switch-to-workspace-1 = [ ];
|
|
||||||
switch-to-workspace-down = [ "" ];
|
|
||||||
switch-to-workspace-last = [ ];
|
|
||||||
switch-to-workspace-left = [ ];
|
|
||||||
switch-to-workspace-right = [ ];
|
|
||||||
switch-to-workspace-up = [ "" ];
|
|
||||||
toggle-application-view = [ "" ];
|
|
||||||
toggle-message-tray = [ "" ];
|
|
||||||
unmaximize = [ ];
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/desktop/wm/preferences" = lib.mkForce {
|
|
||||||
num-workspaces = 3;
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/mutter" = {
|
|
||||||
experimental-features = lib.mkDefault [ "scale-monitor-framebuffer" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/settings-daemon/plugins/color" = lib.mkDefault {
|
|
||||||
night-light-enabled = true;
|
|
||||||
night-light-schedule-automatic = false;
|
|
||||||
night-light-schedule-from = 19.0;
|
|
||||||
night-light-temperature = mkUint32 3892;
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/settings-daemon/plugins/media-keys" = lib.mkDefault {
|
|
||||||
custom-keybindings = [
|
|
||||||
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/"
|
|
||||||
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/"
|
|
||||||
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/"
|
|
||||||
];
|
|
||||||
next = [ "AudioNext" ];
|
|
||||||
play = [ "AudioPlay" ];
|
|
||||||
previous = [ "AudioPrev" ];
|
|
||||||
reboot = [ "<Super>r" ];
|
|
||||||
rotate-video-lock-static = [ ];
|
|
||||||
shutdown = [ "<Super>x" ];
|
|
||||||
volume-down = [ "AudioLowerVolume" ];
|
|
||||||
volume-mute = [ "AudioMute" ];
|
|
||||||
volume-up = [ "AudioRaiseVolume" ];
|
|
||||||
www = [ "<Super>w" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = lib.mkDefault {
|
|
||||||
binding = "<Super>t";
|
|
||||||
command = "ghostty";
|
|
||||||
name = "Terminal";
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1" = lib.mkDefault {
|
|
||||||
binding = "<Super>f";
|
|
||||||
command = "nautilus";
|
|
||||||
name = "Files";
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2" = lib.mkDefault {
|
|
||||||
binding = "<Super>e";
|
|
||||||
command = "code";
|
|
||||||
name = "Code";
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/shell" = {
|
|
||||||
disable-user-extensions = lib.mkForce false;
|
|
||||||
enabled-extensions = lib.mkDefault [
|
|
||||||
"AlphabeticalAppGrid@stuarthayhurst"
|
|
||||||
"appindicatorsupport@rgcjonas.gmail.com"
|
|
||||||
"auto-accent-colour@Wartybix"
|
|
||||||
"blur-my-shell@aunetx"
|
|
||||||
"color-picker@tuberry"
|
|
||||||
"dash-in-panel@fthx"
|
|
||||||
# "eepresetselector@ulville.github.io"
|
|
||||||
"just-perfection-desktop@just-perfection"
|
|
||||||
"monitor-brightness-volume@ailin.nemui"
|
|
||||||
"pano@elhan.io"
|
|
||||||
"paperwm@paperwm.github.com"
|
|
||||||
"quicksettings-audio-devices-hider@marcinjahn.com"
|
|
||||||
"quicksettings-audio-devices-renamer@marcinjahn.com"
|
|
||||||
"solaar-extension@sidevesh"
|
|
||||||
"undecorate@sun.wxg@gmail.com"
|
|
||||||
"user-theme@gnome-shell-extensions.gcampax.github.com"
|
|
||||||
"Vitals@CoreCoding.com"
|
|
||||||
];
|
|
||||||
favorite-apps = lib.mkDefault [
|
|
||||||
"com.mitchellh.ghostty.desktop"
|
|
||||||
"org.gnome.Nautilus.desktop"
|
|
||||||
"zen.desktop"
|
|
||||||
"code.desktop"
|
|
||||||
];
|
|
||||||
last-selected-power-profile = lib.mkDefault "performance";
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/shell/extensions/alphabetical-app-grid" = {
|
|
||||||
folder-order-position = lib.mkDefault "start";
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/shell/extensions/appindicator" = lib.mkDefault {
|
|
||||||
icon-brightness = 0.0;
|
|
||||||
icon-contrast = 0.0;
|
|
||||||
icon-opacity = 240;
|
|
||||||
icon-saturation = 0.0;
|
|
||||||
icon-size = 0;
|
|
||||||
legacy-tray-enabled = true;
|
|
||||||
tray-pos = "right";
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/shell/extensions/auto-accent-colour" = lib.mkDefault {
|
|
||||||
disable-cache = false;
|
|
||||||
hide-indicator = true;
|
|
||||||
highlight-mode = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/shell/extensions/blur-my-shell" = lib.mkDefault {
|
|
||||||
hacks-level = 1;
|
|
||||||
settings-version = 2;
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/shell/extensions/blur-my-shell/appfolder" = lib.mkDefault {
|
|
||||||
brightness = 1.0;
|
|
||||||
sigma = 85;
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/shell/extensions/blur-my-shell/applications" = lib.mkDefault {
|
|
||||||
blacklist = [
|
|
||||||
"Plank"
|
|
||||||
"com.desktop.ding"
|
|
||||||
"Conky"
|
|
||||||
".gamescope-wrapped"
|
|
||||||
"steam_app_*"
|
|
||||||
];
|
|
||||||
blur = true;
|
|
||||||
dynamic-opacity = false;
|
|
||||||
enable-all = true;
|
|
||||||
opacity = 230;
|
|
||||||
sigma = 85;
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/shell/extensions/blur-my-shell/coverflow-alt-tab" = lib.mkDefault {
|
|
||||||
pipeline = "pipeline_default";
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/shell/extensions/blur-my-shell/dash-to-dock" = lib.mkDefault {
|
|
||||||
blur = false;
|
|
||||||
brightness = 1.0;
|
|
||||||
override-background = true;
|
|
||||||
pipeline = "pipeline_default_rounded";
|
|
||||||
sigma = 85;
|
|
||||||
static-blur = false;
|
|
||||||
style-dash-to-dock = 0;
|
|
||||||
unblur-in-overview = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/shell/extensions/blur-my-shell/dash-to-panel" = lib.mkDefault {
|
|
||||||
blur-original-panel = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/shell/extensions/blur-my-shell/hidetopbar" = lib.mkDefault {
|
|
||||||
compatibility = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/shell/extensions/blur-my-shell/lockscreen" = lib.mkDefault {
|
|
||||||
pipeline = "pipeline_default";
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/shell/extensions/blur-my-shell/overview" = lib.mkDefault {
|
|
||||||
pipeline = "pipeline_default";
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/shell/extensions/blur-my-shell/panel" = lib.mkDefault {
|
|
||||||
brightness = 1.0;
|
|
||||||
override-background = true;
|
|
||||||
pipeline = "pipeline_default";
|
|
||||||
sigma = 85;
|
|
||||||
static-blur = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/shell/extensions/blur-my-shell/screenshot" = lib.mkDefault {
|
|
||||||
pipeline = "pipeline_default";
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/shell/extensions/color-picker" = lib.mkDefault {
|
|
||||||
auto-copy = true;
|
|
||||||
color-picker-shortcut = [ "<Control><Super>c" ];
|
|
||||||
enable-format = true;
|
|
||||||
enable-notify = false;
|
|
||||||
enable-shortcut = true;
|
|
||||||
enable-sound = false;
|
|
||||||
notify-sound = mkUint32 1;
|
|
||||||
notify-style = mkUint32 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/shell/extensions/dash-in-panel" = lib.mkDefault {
|
|
||||||
button-margin = 6;
|
|
||||||
center-dash = true;
|
|
||||||
colored-dot = true;
|
|
||||||
icon-size = 32;
|
|
||||||
move-date = true;
|
|
||||||
panel-height = 46;
|
|
||||||
show-apps = false;
|
|
||||||
show-dash = false;
|
|
||||||
show-label = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/shell/extensions/just-perfection" = lib.mkDefault {
|
|
||||||
accessibility-menu = true;
|
|
||||||
activities-button = false;
|
|
||||||
clock-menu = true;
|
|
||||||
clock-menu-position = 1;
|
|
||||||
dash = true;
|
|
||||||
dash-app-running = true;
|
|
||||||
dash-separator = false;
|
|
||||||
keyboard-layout = true;
|
|
||||||
max-displayed-search-results = 0;
|
|
||||||
panel-in-overview = true;
|
|
||||||
quick-settings = true;
|
|
||||||
quick-settings-dark-mode = true;
|
|
||||||
ripple-box = true;
|
|
||||||
show-apps-button = false;
|
|
||||||
support-notifier-showed-version = 34;
|
|
||||||
support-notifier-type = 0;
|
|
||||||
top-panel-position = 0;
|
|
||||||
window-preview-close-button = true;
|
|
||||||
workspace = false;
|
|
||||||
workspace-switcher-size = 0;
|
|
||||||
workspaces-in-app-grid = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/shell/extensions/pano" = lib.mkDefault {
|
|
||||||
global-shortcut = [ "<Super>v" ];
|
|
||||||
history-length = 500;
|
|
||||||
incognito-shortcut = [ "<Shift><Super>v" ];
|
|
||||||
is-in-incognito = false;
|
|
||||||
window-position = mkUint32 2;
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/shell/extensions/paperwm" = lib.mkDefault {
|
|
||||||
cycle-height-steps = [
|
|
||||||
0.25
|
|
||||||
0.3
|
|
||||||
0.5
|
|
||||||
0.7
|
|
||||||
0.95
|
|
||||||
];
|
|
||||||
cycle-width-steps = [
|
|
||||||
0.25
|
|
||||||
0.3
|
|
||||||
0.5
|
|
||||||
0.7
|
|
||||||
0.95
|
|
||||||
];
|
|
||||||
default-focus-mode = 1;
|
|
||||||
disable-topbar-styling = true;
|
|
||||||
edge-preview-enable = true;
|
|
||||||
edge-preview-timeout-enable = false;
|
|
||||||
gesture-enabled = false;
|
|
||||||
gesture-horizontal-fingers = 0;
|
|
||||||
horizontal-margin = 8;
|
|
||||||
last-used-display-server = "Wayland";
|
|
||||||
restore-attach-modal-dialogs = "true";
|
|
||||||
restore-edge-tiling = "true";
|
|
||||||
restore-workspaces-only-on-primary = "true";
|
|
||||||
selection-border-size = 4;
|
|
||||||
show-focus-mode-icon = false;
|
|
||||||
show-open-position-icon = false;
|
|
||||||
show-window-position-bar = false;
|
|
||||||
show-workspace-indicator = false;
|
|
||||||
vertical-margin = 8;
|
|
||||||
vertical-margin-bottom = 8;
|
|
||||||
window-gap = 8;
|
|
||||||
winprops = [
|
|
||||||
''
|
|
||||||
{"wm_class":"Code","spaceIndex":0}
|
|
||||||
''
|
|
||||||
''
|
|
||||||
{"wm_class":"com.jaoushingan.WaydroidHelper","scratch_layer":true}
|
|
||||||
''
|
|
||||||
''
|
|
||||||
{"wm_class":"com.mitchellh.ghostty","scratch_layer":true}
|
|
||||||
''
|
|
||||||
''
|
|
||||||
{"wm_class":"discord","preferredWidth":"100%","spaceIndex":1}
|
|
||||||
''
|
|
||||||
''
|
|
||||||
{"wm_class":"gnome-control-center","scratch_layer":true}
|
|
||||||
''
|
|
||||||
''
|
|
||||||
{"wm_class":"gnome-extensions-app","scratch_layer":true}
|
|
||||||
''
|
|
||||||
''
|
|
||||||
{"wm_class":"org.gnome.Extensions","scratch_layer":true}
|
|
||||||
''
|
|
||||||
''
|
|
||||||
{"wm_class":"org.gnome.Nautilus","scratch_layer":true}
|
|
||||||
''
|
|
||||||
''
|
|
||||||
{"wm_class":"TelegramDesktop","spaceIndex":1}
|
|
||||||
''
|
|
||||||
''
|
|
||||||
{"wm_class":"Waydroid","preferredWidth":"100%","spaceIndex":0,"title":""}
|
|
||||||
''
|
|
||||||
''
|
|
||||||
{"wm_class":".gamescope-wrapped","preferredWidth":"100%","spaceIndex":2}
|
|
||||||
''
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/shell/extensions/paperwm/keybindings" = lib.mkDefault {
|
|
||||||
center = [ "<Super>c" ];
|
|
||||||
center-horizontally = [ "" ];
|
|
||||||
center-vertically = [ "" ];
|
|
||||||
close-window = [ "<Super>q" ];
|
|
||||||
cycle-height = [ "<Alt><Super>Up" ];
|
|
||||||
cycle-height-backwards = [ "<Alt><Super>Down" ];
|
|
||||||
cycle-width = [ "<Alt><Super>Right" ];
|
|
||||||
cycle-width-backwards = [ "<Alt><Super>Left" ];
|
|
||||||
live-alt-tab = [ "<Alt>Tab" ];
|
|
||||||
live-alt-tab-backward = [ "" ];
|
|
||||||
live-alt-tab-scratch = [ "" ];
|
|
||||||
live-alt-tab-scratch-backward = [ "" ];
|
|
||||||
move-down = [ "<Shift><Super>Down" ];
|
|
||||||
move-down-workspace = [ "<Control><Super>Down" ];
|
|
||||||
move-left = [ "<Shift><Super>Left" ];
|
|
||||||
move-monitor-above = [ "" ];
|
|
||||||
move-monitor-below = [ "" ];
|
|
||||||
move-monitor-left = [ "<Control><Super>Left" ];
|
|
||||||
move-monitor-right = [ "<Control><Super>Right" ];
|
|
||||||
move-previous-workspace = [ "" ];
|
|
||||||
move-previous-workspace-backward = [ "" ];
|
|
||||||
move-right = [ "<Shift><Super>Right" ];
|
|
||||||
move-space-monitor-above = [ "" ];
|
|
||||||
move-space-monitor-below = [ "" ];
|
|
||||||
move-space-monitor-left = [ "" ];
|
|
||||||
move-space-monitor-right = [ "" ];
|
|
||||||
move-up = [ "<Shift><Super>Up" ];
|
|
||||||
move-up-workspace = [ "<Control><Super>Up" ];
|
|
||||||
new-window = [ "<Super>n" ];
|
|
||||||
previous-workspace = [ "" ];
|
|
||||||
previous-workspace-backward = [ "" ];
|
|
||||||
swap-monitor-above = [ "" ];
|
|
||||||
swap-monitor-below = [ "" ];
|
|
||||||
swap-monitor-left = [ "" ];
|
|
||||||
swap-monitor-right = [ "" ];
|
|
||||||
switch-down-workspace = [ "<Super>Page_Down" ];
|
|
||||||
switch-focus-mode = [ "<Alt><Super>a" ];
|
|
||||||
switch-monitor-above = [ "" ];
|
|
||||||
switch-monitor-below = [ "" ];
|
|
||||||
switch-monitor-left = [ "" ];
|
|
||||||
switch-monitor-right = [ "" ];
|
|
||||||
switch-next = [ "" ];
|
|
||||||
switch-open-window-position = [ "" ];
|
|
||||||
switch-previous = [ "" ];
|
|
||||||
switch-up-workspace = [ "<Super>Page_Up" ];
|
|
||||||
take-window = [ "" ];
|
|
||||||
toggle-maximize-width = [ "" ];
|
|
||||||
toggle-scratch = [ "<Super>BackSpace" ];
|
|
||||||
toggle-scratch-layer = [ "<Control><Super>BackSpace" ];
|
|
||||||
toggle-scratch-window = [ "" ];
|
|
||||||
toggle-top-and-position-bar = [ "" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/shell/extensions/user-theme" = lib.mkDefault {
|
|
||||||
name = "Stylix";
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/shell/extensions/vitals" = lib.mkDefault {
|
|
||||||
alphabetize = true;
|
|
||||||
fixed-widths = true;
|
|
||||||
hide-icons = false;
|
|
||||||
hide-zeros = true;
|
|
||||||
icon-style = 1;
|
|
||||||
include-static-gpu-info = true;
|
|
||||||
include-static-info = true;
|
|
||||||
menu-centered = false;
|
|
||||||
position-in-panel = 0;
|
|
||||||
show-fan = false;
|
|
||||||
show-gpu = true;
|
|
||||||
show-memory = true;
|
|
||||||
show-network = true;
|
|
||||||
show-processor = true;
|
|
||||||
show-storage = true;
|
|
||||||
show-system = true;
|
|
||||||
show-temperature = true;
|
|
||||||
show-voltage = false;
|
|
||||||
use-higher-precision = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/shell/keybindings" = lib.mkDefault {
|
|
||||||
focus-active-notification = [ ];
|
|
||||||
screenshot = [ "Print" ];
|
|
||||||
screenshot-window = [ ];
|
|
||||||
shift-overview-down = [ ];
|
|
||||||
shift-overview-up = [ ];
|
|
||||||
show-screen-recording-ui = [ ];
|
|
||||||
show-screenshot-ui = [ "<Shift>Print" ];
|
|
||||||
toggle-application-view = [ "Home" ];
|
|
||||||
toggle-message-tray = [ "<Super>s" ];
|
|
||||||
toggle-quick-settings = [ "<Super>a" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/virt-manager/virt-manager/connections" = lib.mkDefault {
|
|
||||||
autoconnect = [ "qemu:///system" ];
|
|
||||||
uris = [ "qemu:///system" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = lib.custom.scanPaths ./.;
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = lib.custom.scanPaths ./.;
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
# Replaces the default terminal emulator; gnome-terminal/gnome-console is disabled
|
|
||||||
programs.ghostty = {
|
|
||||||
enable = true;
|
|
||||||
enableFishIntegration = true;
|
|
||||||
settings = {
|
|
||||||
theme = "stylix";
|
|
||||||
font-family = "monospace";
|
|
||||||
font-size = "11";
|
|
||||||
background-opacity = "0.85";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
home.sessionVariables = {
|
|
||||||
TERM = "ghostty";
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,10 +0,0 @@
|
||||||
{
|
|
||||||
# Processes and system monitor
|
|
||||||
programs.btop = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
color_theme = "stylix";
|
|
||||||
theme_background = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
Before Width: | Height: | Size: 56 KiB |
Before Width: | Height: | Size: 123 KiB |
|
@ -1,49 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
hostSpec,
|
|
||||||
secretsSpec,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
## Get the current user's SSH config ##
|
|
||||||
userSsh = secretsSpec.users.${hostSpec.username}.ssh;
|
|
||||||
|
|
||||||
## Generate local key paths for the config ##
|
|
||||||
sshKeysMap = lib.mapAttrs (name: _: "${hostSpec.home}/.ssh/${name}") userSsh.privateKeys;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
home.file =
|
|
||||||
{
|
|
||||||
## SSH config file ##
|
|
||||||
".ssh/config_source" = {
|
|
||||||
source = userSsh.config;
|
|
||||||
onChange = ''
|
|
||||||
cp $HOME/.ssh/config_source $HOME/.ssh/config
|
|
||||||
chmod 400 $HOME/.ssh/config
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
## Known hosts ##
|
|
||||||
".ssh/known_hosts_source" = {
|
|
||||||
source = pkgs.writeText "known-hosts" (lib.concatStringsSep "\n" userSsh.knownHosts);
|
|
||||||
onChange = ''
|
|
||||||
cp $HOME/.ssh/known_hosts_source $HOME/.ssh/known_hosts
|
|
||||||
chmod 644 $HOME/.ssh/known_hosts
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
## Dynamically copy all SSH private keys from store ensuring symlinks are not used ##
|
|
||||||
// lib.mapAttrs' (name: path: {
|
|
||||||
name = ".ssh/${name}_source";
|
|
||||||
value = {
|
|
||||||
source = path;
|
|
||||||
onChange = ''
|
|
||||||
cp $HOME/.ssh/${name}_source $HOME/.ssh/${name}
|
|
||||||
chmod 600 $HOME/.ssh/${name}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}) userSsh.privateKeys;
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
{
|
|
||||||
programs.yazi = {
|
|
||||||
enable = true;
|
|
||||||
# plugins = [];
|
|
||||||
# settings = {};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,43 +0,0 @@
|
||||||
# Generated via dconf2nix: https://github.com/gvolpe/dconf2nix
|
|
||||||
{ lib, ... }:
|
|
||||||
|
|
||||||
with lib.hm.gvariant;
|
|
||||||
|
|
||||||
{
|
|
||||||
dconf.settings = {
|
|
||||||
"org/gnome/shell" = {
|
|
||||||
favorite-apps = [
|
|
||||||
"com.mitchellh.ghostty.desktop"
|
|
||||||
"org.gnome.Nautilus.desktop"
|
|
||||||
"zen.desktop"
|
|
||||||
"code.desktop"
|
|
||||||
"spotify.desktop"
|
|
||||||
"discord.desktop"
|
|
||||||
"org.telegram.desktop.desktop"
|
|
||||||
"steam.desktop"
|
|
||||||
"Ryujinx.desktop"
|
|
||||||
"Marvel Rivals.desktop"
|
|
||||||
];
|
|
||||||
|
|
||||||
enabled-extensions = [
|
|
||||||
"AlphabeticalAppGrid@stuarthayhurst"
|
|
||||||
"appindicatorsupport@rgcjonas.gmail.com"
|
|
||||||
"auto-accent-colour@Wartybix"
|
|
||||||
"blur-my-shell@aunetx"
|
|
||||||
"color-picker@tuberry"
|
|
||||||
"dash-in-panel@fthx"
|
|
||||||
"just-perfection-desktop@just-perfection"
|
|
||||||
"monitor-brightness-volume@ailin.nemui"
|
|
||||||
"pano@elhan.io"
|
|
||||||
"paperwm@paperwm.github.com"
|
|
||||||
"quicksettings-audio-devices-hider@marcinjahn.com"
|
|
||||||
"quicksettings-audio-devices-renamer@marcinjahn.com"
|
|
||||||
"undecorate@sun.wxg@gmail.com"
|
|
||||||
"user-theme@gnome-shell-extensions.gcampax.github.com"
|
|
||||||
"solaar-extension@sidevesh"
|
|
||||||
"Vitals@CoreCoding.com"
|
|
||||||
"cloudflare-warp-toggle@khaled.is-a.dev"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
{ lib, ... }:
|
|
||||||
{
|
|
||||||
imports = lib.custom.scanPaths ./.;
|
|
||||||
|
|
||||||
# home.file.".config/monitors_source" = {
|
|
||||||
# source = ./monitors.xml;
|
|
||||||
# onChange = ''
|
|
||||||
# cp $HOME/.config/monitors_source $HOME/.config/monitors.xml
|
|
||||||
# '';
|
|
||||||
# };
|
|
||||||
}
|
|
|
@ -1,2 +0,0 @@
|
||||||
<monitors version="2">
|
|
||||||
</monitors>
|
|
|
@ -1,55 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
hostSpec,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = lib.flatten [
|
|
||||||
## Common Imports ##
|
|
||||||
(map lib.custom.relativeToRoot [
|
|
||||||
"home/global/common/gaming"
|
|
||||||
"home/global/common/gnome"
|
|
||||||
"home/global/common/vscode"
|
|
||||||
"home/global/common/xdg.nix"
|
|
||||||
"home/global/common/zen.nix"
|
|
||||||
])
|
|
||||||
|
|
||||||
## Gojo Specific ##
|
|
||||||
./config
|
|
||||||
];
|
|
||||||
|
|
||||||
home.sessionVariables = {
|
|
||||||
FLAKE = "${hostSpec.home}/git/dot.nix";
|
|
||||||
};
|
|
||||||
|
|
||||||
## Packages with no needed configs ##
|
|
||||||
home.packages = builtins.attrValues {
|
|
||||||
inherit (pkgs)
|
|
||||||
## Media ##
|
|
||||||
ffmpeg
|
|
||||||
gpu-screen-recorder-gtk
|
|
||||||
spotify
|
|
||||||
youtube-music
|
|
||||||
|
|
||||||
## Social ##
|
|
||||||
betterdiscordctl
|
|
||||||
discord-krisp
|
|
||||||
telegram-desktop
|
|
||||||
|
|
||||||
## Tools ##
|
|
||||||
bitwarden-desktop
|
|
||||||
inspector
|
|
||||||
solaar
|
|
||||||
|
|
||||||
## Productivity ##
|
|
||||||
gimp
|
|
||||||
inkscape
|
|
||||||
eloquent
|
|
||||||
|
|
||||||
## Minecraft ##
|
|
||||||
# modrinth-app
|
|
||||||
# gdlauncher-carbon
|
|
||||||
;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,24 +0,0 @@
|
||||||
# Generated via dconf2nix: https://github.com/gvolpe/dconf2nix
|
|
||||||
{ lib, ... }:
|
|
||||||
|
|
||||||
with lib.hm.gvariant;
|
|
||||||
|
|
||||||
{
|
|
||||||
dconf.settings = {
|
|
||||||
"org/gnome/shell" = {
|
|
||||||
favorite-apps = [
|
|
||||||
"com.mitchellh.ghostty.desktop"
|
|
||||||
"org.gnome.Nautilus.desktop"
|
|
||||||
"zen.desktop"
|
|
||||||
"code.desktop"
|
|
||||||
"spotify.desktop"
|
|
||||||
"discord.desktop"
|
|
||||||
"org.telegram.desktop.desktop"
|
|
||||||
"steam.desktop"
|
|
||||||
"Ryujinx.desktop"
|
|
||||||
"Overwatch 2.desktop"
|
|
||||||
"Marvel Rivals.desktop"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,29 +0,0 @@
|
||||||
{ lib, ... }:
|
|
||||||
{
|
|
||||||
imports = lib.custom.scanPaths ./.;
|
|
||||||
|
|
||||||
monitors = [
|
|
||||||
{
|
|
||||||
name = "DP-2";
|
|
||||||
primary = true;
|
|
||||||
width = 2560;
|
|
||||||
height = 1440;
|
|
||||||
refreshRate = 160;
|
|
||||||
x = 0;
|
|
||||||
y = 0;
|
|
||||||
scale = 1.0;
|
|
||||||
transform = 0;
|
|
||||||
enabled = true;
|
|
||||||
hdr = true;
|
|
||||||
vrr = true;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
home.file.".config/monitors_source" = {
|
|
||||||
source = ./monitors.xml;
|
|
||||||
onChange = ''
|
|
||||||
cp $HOME/.config/monitors_source $HOME/.config/monitors.xml
|
|
||||||
chmod 755 $HOME/.config/monitors.xml
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,24 +0,0 @@
|
||||||
<monitors version="2">
|
|
||||||
<configuration>
|
|
||||||
<layoutmode>logical</layoutmode>
|
|
||||||
<logicalmonitor>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<scale>1</scale>
|
|
||||||
<primary>yes</primary>
|
|
||||||
<monitor>
|
|
||||||
<monitorspec>
|
|
||||||
<connector>DP-2</connector>
|
|
||||||
<vendor>GBT</vendor>
|
|
||||||
<product>M27Q</product>
|
|
||||||
<serial>21030B006741</serial>
|
|
||||||
</monitorspec>
|
|
||||||
<mode>
|
|
||||||
<width>2560</width>
|
|
||||||
<height>1440</height>
|
|
||||||
<rate>169.831</rate>
|
|
||||||
</mode>
|
|
||||||
</monitor>
|
|
||||||
</logicalmonitor>
|
|
||||||
</configuration>
|
|
||||||
</monitors>
|
|
|
@ -1,44 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = lib.flatten [
|
|
||||||
## Common Imports ##
|
|
||||||
(map lib.custom.relativeToRoot [
|
|
||||||
"home/global/common/gaming"
|
|
||||||
"home/global/common/gnome"
|
|
||||||
"home/global/common/vscode"
|
|
||||||
"home/global/common/xdg.nix"
|
|
||||||
"home/global/common/zen.nix"
|
|
||||||
])
|
|
||||||
|
|
||||||
## Haze Specific ##
|
|
||||||
./config
|
|
||||||
];
|
|
||||||
|
|
||||||
## Packages with no needed configs ##
|
|
||||||
home.packages = builtins.attrValues {
|
|
||||||
inherit (pkgs)
|
|
||||||
## Media ##
|
|
||||||
ffmpeg
|
|
||||||
spotify
|
|
||||||
gpu-screen-recorder-gtk
|
|
||||||
|
|
||||||
## Social ##
|
|
||||||
telegram-desktop
|
|
||||||
discord-krisp
|
|
||||||
betterdiscordctl
|
|
||||||
|
|
||||||
## Tools ##
|
|
||||||
bitwarden-desktop
|
|
||||||
inspector
|
|
||||||
solaar
|
|
||||||
|
|
||||||
## Productivity ##
|
|
||||||
gimp
|
|
||||||
inkscape
|
|
||||||
;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,240 +0,0 @@
|
||||||
# Generated via dconf2nix: https://github.com/gvolpe/dconf2nix
|
|
||||||
{ lib, ... }:
|
|
||||||
|
|
||||||
with lib.hm.gvariant;
|
|
||||||
|
|
||||||
{
|
|
||||||
dconf.settings = {
|
|
||||||
|
|
||||||
"org/gnome/desktop/app-folders" = {
|
|
||||||
folder-children = [
|
|
||||||
"System"
|
|
||||||
"Utilities"
|
|
||||||
"9749f26a-a257-4d4f-937f-e3dd64217eb5"
|
|
||||||
"2e37c30a-0da6-400b-b4d1-172dd613cddc"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
"folders/2e37c30a-0da6-400b-b4d1-172dd613cddc" = {
|
|
||||||
apps = [
|
|
||||||
"Against the Storm.desktop"
|
|
||||||
"ASTRONEER.desktop"
|
|
||||||
"Bloons TD 6.desktop"
|
|
||||||
"Bloons TD Battles 2.desktop"
|
|
||||||
"Enshrouded.desktop"
|
|
||||||
"It Takes Two.desktop"
|
|
||||||
"Persona5 The Phantom X.desktop"
|
|
||||||
"R.E.P.O..desktop"
|
|
||||||
"The Alters.desktop"
|
|
||||||
];
|
|
||||||
name = "Games";
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/desktop/app-folders/folders/9749f26a-a257-4d4f-937f-e3dd64217eb5" = {
|
|
||||||
apps = [
|
|
||||||
"waydroid.de.szalkowski.activitylauncher.desktop"
|
|
||||||
"waydroid.com.android.inputmethod.latin.desktop"
|
|
||||||
"waydroid.com.handycloset.android.eraser.desktop"
|
|
||||||
"waydroid.org.lineageos.jelly.desktop"
|
|
||||||
"waydroid.com.android.calculator2.desktop"
|
|
||||||
"waydroid.org.lineageos.etar.desktop"
|
|
||||||
"waydroid.com.android.camera2.desktop"
|
|
||||||
"waydroid.com.android.deskclock.desktop"
|
|
||||||
"waydroid.com.android.contacts.desktop"
|
|
||||||
"waydroid.com.android.documentsui.desktop"
|
|
||||||
"waydroid.com.android.gallery3d.desktop"
|
|
||||||
"waydroid.com.google.android.apps.bard.desktop"
|
|
||||||
"waydroid.com.android.vending.desktop"
|
|
||||||
"waydroid.com.google.android.apps.chromecast.app.desktop"
|
|
||||||
"waydroid.app.pinya.lime.desktop"
|
|
||||||
"waydroid.com.mojang.minecraftpe.desktop"
|
|
||||||
"waydroid.com.atomicadd.tinylauncher.desktop"
|
|
||||||
"waydroid.org.lineageos.eleven.desktop"
|
|
||||||
"waydroid.tw.nekomimi.nekogram.desktop"
|
|
||||||
"waydroid.com.smartpack.packagemanager.desktop"
|
|
||||||
"waydroid.org.lineageos.recorder.desktop"
|
|
||||||
"waydroid.com.android.settings.desktop"
|
|
||||||
"waydroid.com.niksoftware.snapseed.desktop"
|
|
||||||
"Waydroid.desktop"
|
|
||||||
"com.jaoushingan.WaydroidHelper.desktop"
|
|
||||||
];
|
|
||||||
name = "Waydroid";
|
|
||||||
translate = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/desktop/app-folders/folders/System" = {
|
|
||||||
apps = [
|
|
||||||
"btop.desktop"
|
|
||||||
"org.gnome.DiskUtility.desktop"
|
|
||||||
"org.gnome.Extensions.desktop"
|
|
||||||
"fish.desktop"
|
|
||||||
"io.github.nokse22.inspector.desktop"
|
|
||||||
"kvantummanager.desktop"
|
|
||||||
"io.github.ilya_zlobintsev.LACT.desktop"
|
|
||||||
"org.gnome.Logs.desktop"
|
|
||||||
"cups.desktop"
|
|
||||||
"micro.desktop"
|
|
||||||
"nvtop.desktop"
|
|
||||||
"protontricks.desktop"
|
|
||||||
"qt5ct.desktop"
|
|
||||||
"qt6ct.desktop"
|
|
||||||
"solaar.desktop"
|
|
||||||
"org.gnome.SystemMonitor.desktop"
|
|
||||||
"org.gnome.tweaks.desktop"
|
|
||||||
"yazi.desktop"
|
|
||||||
];
|
|
||||||
name = "X-GNOME-Shell-System.directory";
|
|
||||||
translate = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/desktop/app-folders/folders/Utilities" = {
|
|
||||||
apps = [
|
|
||||||
"org.gnome.Decibels.desktop"
|
|
||||||
"org.gnome.Calculator.desktop"
|
|
||||||
"org.gnome.Calendar.desktop"
|
|
||||||
"org.gnome.Snapshot.desktop"
|
|
||||||
"org.gnome.Characters.desktop"
|
|
||||||
"org.gnome.clocks.desktop"
|
|
||||||
"org.gnome.Connections.desktop"
|
|
||||||
"org.gnome.Evince.desktop"
|
|
||||||
"org.gnome.FileRoller.desktop"
|
|
||||||
"org.gnome.font-viewer.desktop"
|
|
||||||
"com.dec05eba.gpu_screen_recorder.desktop"
|
|
||||||
"org.gnome.Loupe.desktop"
|
|
||||||
"org.gnome.seahorse.Application.desktop"
|
|
||||||
"org.remmina.Remmina.desktop"
|
|
||||||
"org.gnome.TextEditor.desktop"
|
|
||||||
"Vial.desktop"
|
|
||||||
"org.gnome.Totem.desktop"
|
|
||||||
"virt-manager.desktop"
|
|
||||||
"org.gnome.Weather.desktop"
|
|
||||||
];
|
|
||||||
name = "X-GNOME-Shell-Utilities.directory";
|
|
||||||
translate = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/desktop/app-folders/folders/c4b3dde8-cab4-48b0-a20d-6519c6cee231" = {
|
|
||||||
apps = [
|
|
||||||
"waydroid.de.szalkowski.activitylauncher.desktop"
|
|
||||||
"waydroid.com.android.inputmethod.latin.desktop"
|
|
||||||
"waydroid.com.handycloset.android.eraser.desktop"
|
|
||||||
"waydroid.org.lineageos.jelly.desktop"
|
|
||||||
"waydroid.com.android.calculator2.desktop"
|
|
||||||
"waydroid.org.lineageos.etar.desktop"
|
|
||||||
"waydroid.com.android.camera2.desktop"
|
|
||||||
"waydroid.com.android.deskclock.desktop"
|
|
||||||
"waydroid.com.android.contacts.desktop"
|
|
||||||
"waydroid.com.android.documentsui.desktop"
|
|
||||||
"waydroid.com.android.gallery3d.desktop"
|
|
||||||
"waydroid.com.google.android.apps.bard.desktop"
|
|
||||||
"waydroid.com.android.vending.desktop"
|
|
||||||
"waydroid.com.google.android.apps.chromecast.app.desktop"
|
|
||||||
"waydroid.app.pinya.lime.desktop"
|
|
||||||
"waydroid.com.mojang.minecraftpe.desktop"
|
|
||||||
"waydroid.com.atomicadd.tinylauncher.desktop"
|
|
||||||
"waydroid.org.lineageos.eleven.desktop"
|
|
||||||
"waydroid.tw.nekomimi.nekogram.desktop"
|
|
||||||
"waydroid.com.smartpack.packagemanager.desktop"
|
|
||||||
"waydroid.org.lineageos.recorder.desktop"
|
|
||||||
"waydroid.com.android.settings.desktop"
|
|
||||||
"waydroid.com.niksoftware.snapseed.desktop"
|
|
||||||
];
|
|
||||||
name = "Android";
|
|
||||||
translate = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/nautilus/preferences" = {
|
|
||||||
default-folder-viewer = "icon-view";
|
|
||||||
migrated-gtk-settings = true;
|
|
||||||
search-filter-time-type = "last_modified";
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/shell" = {
|
|
||||||
favorite-apps = [
|
|
||||||
"com.mitchellh.ghostty.desktop"
|
|
||||||
"org.gnome.Nautilus.desktop"
|
|
||||||
"win11.desktop"
|
|
||||||
"zen.desktop"
|
|
||||||
"code.desktop"
|
|
||||||
"spotify.desktop"
|
|
||||||
"discord.desktop"
|
|
||||||
"org.telegram.desktop.desktop"
|
|
||||||
"steam.desktop"
|
|
||||||
"Ryujinx.desktop"
|
|
||||||
"FANTASY LIFE i The Girl Who Steals Time.desktop"
|
|
||||||
"Marvel Rivals.desktop"
|
|
||||||
];
|
|
||||||
last-selected-power-profile = "performance";
|
|
||||||
welcome-dialog-last-shown-version = "48.1";
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/shell/extensions/quicksettings-audio-devices-hider" = {
|
|
||||||
available-input-names = [
|
|
||||||
"Digital Input (S/PDIF) \8211 USB Live camera"
|
|
||||||
"Microphone \8211 HyperX Cloud Alpha S"
|
|
||||||
"Microphone \8211 USB Live camera"
|
|
||||||
];
|
|
||||||
available-output-names = [
|
|
||||||
"Analog Output \8211 HyperX Cloud Alpha S"
|
|
||||||
"Digital Output (S/PDIF) \8211 HyperX Cloud Alpha S"
|
|
||||||
"HDMI / DisplayPort \8211 Rembrandt Radeon High Definition Audio Controller"
|
|
||||||
"HDMI / DisplayPort 3 \8211 HD-Audio Generic"
|
|
||||||
];
|
|
||||||
excluded-input-names = [
|
|
||||||
"Digital Input (S/PDIF) – USB Live camera"
|
|
||||||
"Digital Input (S/PDIF) \8211 USB Live camera"
|
|
||||||
"Digital Input (S/PDIF) 8211 USB Live camera"
|
|
||||||
"Digital Input (S/PDIF) 8211 USB Live camera"
|
|
||||||
"Microphone – USB Live camera"
|
|
||||||
"Microphone \8211 USB Live camera"
|
|
||||||
"Microphone 8211 USB Live camera"
|
|
||||||
"Microphone 8211 USB Live camera"
|
|
||||||
];
|
|
||||||
excluded-output-names = [
|
|
||||||
# "Analog Output – HyperX Cloud Alpha S"
|
|
||||||
# "Analog Output \8211 HyperX Cloud Alpha S"
|
|
||||||
# "Analog Output 8211 HyperX Cloud Alpha S"
|
|
||||||
# "Analog Output 8211 HyperX Cloud Alpha S"
|
|
||||||
"HDMI / DisplayPort – Rembrandt Radeon High Definition Audio Controller"
|
|
||||||
"HDMI / DisplayPort \8211 Rembrandt Radeon High Definition Audio Controller"
|
|
||||||
"HDMI / DisplayPort 8211 Rembrandt Radeon High Definition Audio Controller"
|
|
||||||
"HDMI / DisplayPort 8211 Rembrandt Radeon High Definition Audio Controller"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
"org/gnome/shell/extensions/quicksettings-audio-devices-renamer" = {
|
|
||||||
input-names-map = [
|
|
||||||
(lib.hm.gvariant.mkDictionaryEntry [
|
|
||||||
"Microphone – USB Live camera"
|
|
||||||
"NO"
|
|
||||||
])
|
|
||||||
(lib.hm.gvariant.mkDictionaryEntry [
|
|
||||||
"Digital Input (S/PDIF) – USB Live camera"
|
|
||||||
"NO"
|
|
||||||
])
|
|
||||||
(lib.hm.gvariant.mkDictionaryEntry [
|
|
||||||
"Microphone – HyperX Cloud Alpha S"
|
|
||||||
"Cloud S"
|
|
||||||
])
|
|
||||||
];
|
|
||||||
output-names-map = [
|
|
||||||
(lib.hm.gvariant.mkDictionaryEntry [
|
|
||||||
"HDMI / DisplayPort 3 – HD-Audio Generic"
|
|
||||||
"ROG"
|
|
||||||
])
|
|
||||||
(lib.hm.gvariant.mkDictionaryEntry [
|
|
||||||
"HDMI / DisplayPort – Rembrandt Radeon High Definition Audio Controller"
|
|
||||||
"NO"
|
|
||||||
])
|
|
||||||
(lib.hm.gvariant.mkDictionaryEntry [
|
|
||||||
"Analog Output – HyperX Cloud Alpha S"
|
|
||||||
"Cloud S - 7.1"
|
|
||||||
])
|
|
||||||
(lib.hm.gvariant.mkDictionaryEntry [
|
|
||||||
"Digital Output (S/PDIF) – HyperX Cloud Alpha S"
|
|
||||||
"Cloud S"
|
|
||||||
])
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,74 +0,0 @@
|
||||||
{ lib, ... }:
|
|
||||||
{
|
|
||||||
imports = lib.custom.scanPaths ./.;
|
|
||||||
|
|
||||||
xdg.desktopEntries = {
|
|
||||||
nixvm = {
|
|
||||||
name = "NixOS VM";
|
|
||||||
comment = "Testing VM";
|
|
||||||
exec = ''fish -c "sudo virsh start nixos; remmina -c (sudo virsh -q domdisplay nixos)"'';
|
|
||||||
icon = "nix-snowflake";
|
|
||||||
type = "Application";
|
|
||||||
terminal = false;
|
|
||||||
categories = [
|
|
||||||
"System"
|
|
||||||
"Application"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
win11 = {
|
|
||||||
name = "Windows 11";
|
|
||||||
comment = "Windows 11 VM";
|
|
||||||
exec = ''fish -c "sudo virsh start win11; remmina -c (sudo virsh -q domdisplay win11)"'';
|
|
||||||
icon = "windows95";
|
|
||||||
type = "Application";
|
|
||||||
terminal = false;
|
|
||||||
categories = [
|
|
||||||
"System"
|
|
||||||
"Application"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
monitors = [
|
|
||||||
{
|
|
||||||
name = "DP-2";
|
|
||||||
primary = true;
|
|
||||||
width = 3840;
|
|
||||||
height = 2160;
|
|
||||||
refreshRate = 120;
|
|
||||||
x = 0;
|
|
||||||
y = 0;
|
|
||||||
scale = 1.0;
|
|
||||||
transform = 0;
|
|
||||||
enabled = true;
|
|
||||||
hdr = true;
|
|
||||||
vrr = true;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "HDMI-1";
|
|
||||||
primary = false;
|
|
||||||
width = 1920;
|
|
||||||
height = 1080;
|
|
||||||
refreshRate = 60;
|
|
||||||
x = 1920; # Positioned to the right of DP-1
|
|
||||||
y = 0;
|
|
||||||
scale = 1.0;
|
|
||||||
transform = 1;
|
|
||||||
enabled = true;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
## TODO:
|
|
||||||
## I want to automate this monitors.xml
|
|
||||||
## But dk how to do it properly yet.
|
|
||||||
## So for now ill still use this for the gnome config
|
|
||||||
|
|
||||||
home.file.".config/monitors_source" = {
|
|
||||||
source = ./monitors.xml;
|
|
||||||
onChange = ''
|
|
||||||
cp $HOME/.config/monitors_source $HOME/.config/monitors.xml
|
|
||||||
chmod 755 $HOME/.config/monitors.xml
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,46 +0,0 @@
|
||||||
<monitors version="2">
|
|
||||||
<configuration>
|
|
||||||
<layoutmode>logical</layoutmode>
|
|
||||||
<logicalmonitor>
|
|
||||||
<x>1080</x>
|
|
||||||
<y>0</y>
|
|
||||||
<scale>1</scale>
|
|
||||||
<primary>yes</primary>
|
|
||||||
<monitor>
|
|
||||||
<monitorspec>
|
|
||||||
<connector>DP-3</connector>
|
|
||||||
<vendor>AUS</vendor>
|
|
||||||
<product>PG42UQ</product>
|
|
||||||
<serial>R1LMTF056092</serial>
|
|
||||||
</monitorspec>
|
|
||||||
<mode>
|
|
||||||
<width>3840</width>
|
|
||||||
<height>2160</height>
|
|
||||||
<rate>120.000</rate>
|
|
||||||
</mode>
|
|
||||||
</monitor>
|
|
||||||
</logicalmonitor>
|
|
||||||
<logicalmonitor>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<scale>1</scale>
|
|
||||||
<transform>
|
|
||||||
<rotation>right</rotation>
|
|
||||||
<flipped>no</flipped>
|
|
||||||
</transform>
|
|
||||||
<monitor>
|
|
||||||
<monitorspec>
|
|
||||||
<connector>HDMI-2</connector>
|
|
||||||
<vendor>DEL</vendor>
|
|
||||||
<product>DELL U2417H</product>
|
|
||||||
<serial>XVNNT67I176L</serial>
|
|
||||||
</monitorspec>
|
|
||||||
<mode>
|
|
||||||
<width>1920</width>
|
|
||||||
<height>1080</height>
|
|
||||||
<rate>60.000</rate>
|
|
||||||
</mode>
|
|
||||||
</monitor>
|
|
||||||
</logicalmonitor>
|
|
||||||
</configuration>
|
|
||||||
</monitors>
|
|
|
@ -1,58 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
inputs,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = lib.flatten [
|
|
||||||
## Common Imports ##
|
|
||||||
(map lib.custom.relativeToRoot [
|
|
||||||
"home/global/common/gaming"
|
|
||||||
"home/global/common/gnome"
|
|
||||||
"home/global/common/vscode"
|
|
||||||
"home/global/common/xdg.nix"
|
|
||||||
"home/global/common/zen.nix"
|
|
||||||
])
|
|
||||||
|
|
||||||
## Rune Specific ##
|
|
||||||
./config
|
|
||||||
];
|
|
||||||
|
|
||||||
## Packages with no needed configs ##
|
|
||||||
home.packages = builtins.attrValues {
|
|
||||||
inherit (pkgs)
|
|
||||||
## Media ##
|
|
||||||
ffmpeg
|
|
||||||
spotify
|
|
||||||
gpu-screen-recorder-gtk
|
|
||||||
|
|
||||||
## Social ##
|
|
||||||
telegram-desktop
|
|
||||||
discord-krisp
|
|
||||||
betterdiscordctl
|
|
||||||
|
|
||||||
## Tools ##
|
|
||||||
bitwarden-desktop
|
|
||||||
inspector
|
|
||||||
remmina
|
|
||||||
solaar
|
|
||||||
vial # KB setup
|
|
||||||
|
|
||||||
## Productivity ##
|
|
||||||
gimp
|
|
||||||
inkscape
|
|
||||||
eloquent
|
|
||||||
|
|
||||||
## Minecraft ##
|
|
||||||
modrinth-app
|
|
||||||
gdlauncher-carbon
|
|
||||||
;
|
|
||||||
|
|
||||||
inherit (pkgs.jetbrains)
|
|
||||||
## Development ##
|
|
||||||
idea-ultimate
|
|
||||||
;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,24 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = lib.flatten [
|
|
||||||
## Common Imports ##
|
|
||||||
(map lib.custom.relativeToRoot [
|
|
||||||
"home/global/common/gnome"
|
|
||||||
"home/global/common/vscode"
|
|
||||||
"home/global/common/xdg.nix"
|
|
||||||
"home/global/common/zen.nix"
|
|
||||||
])
|
|
||||||
];
|
|
||||||
|
|
||||||
## Packages with no needed configs ##
|
|
||||||
home.packages = builtins.attrValues {
|
|
||||||
inherit (pkgs)
|
|
||||||
## Tools ##
|
|
||||||
inspector
|
|
||||||
;
|
|
||||||
};
|
|
||||||
}
|
|
10
home/toph/cloud/default.nix
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
## Required Configs ##
|
||||||
|
../common/core # required
|
||||||
|
];
|
||||||
|
}
|
33
home/toph/common/core/bat.nix
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
# https://github.com/sharkdp/bat
|
||||||
|
# https://github.com/eth-p/bat-extras
|
||||||
|
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
programs.bat = {
|
||||||
|
enable = true;
|
||||||
|
config = {
|
||||||
|
# Git modifications and file header (but no grid)
|
||||||
|
style = "changes,header";
|
||||||
|
# theme = "gruvbox-dark";
|
||||||
|
};
|
||||||
|
extraPackages = builtins.attrValues {
|
||||||
|
inherit (pkgs.bat-extras)
|
||||||
|
|
||||||
|
batgrep # search through and highlight files using ripgrep
|
||||||
|
batdiff # Diff a file against the current git index, or display the diff between to files
|
||||||
|
batman # read manpages using bat as the formatter
|
||||||
|
;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Avoid [bat error]: The binary caches for the user-customized syntaxes and themes in
|
||||||
|
# '/home/<user>/.cache/bat' are not compatible with this version of bat (0.25.0).
|
||||||
|
home.activation.batCacheRebuild = {
|
||||||
|
after = [ "linkGeneration" ];
|
||||||
|
before = [ ];
|
||||||
|
data = ''
|
||||||
|
${pkgs.bat}/bin/bat cache --build
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
|
@ -1,3 +1,5 @@
|
||||||
|
#FIXME: Move attrs that will only work on linux to nixos.nix
|
||||||
|
#FIXME: if pulling in homemanager for isMinimal maybe set up conditional for some packages
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
|
@ -8,7 +10,7 @@
|
||||||
let
|
let
|
||||||
username = hostSpec.username;
|
username = hostSpec.username;
|
||||||
homeDir = hostSpec.home;
|
homeDir = hostSpec.home;
|
||||||
shell = hostSpec.shell or pkgs.fish;
|
shell = hostSpec.shell;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = lib.flatten [
|
imports = lib.flatten [
|
||||||
|
@ -16,7 +18,17 @@ in
|
||||||
"modules/global"
|
"modules/global"
|
||||||
"modules/home"
|
"modules/home"
|
||||||
])
|
])
|
||||||
(lib.custom.scanPaths ./.)
|
./asdf.nix
|
||||||
|
./bash.nix # TODO: setup a nicer bash config... or zsh
|
||||||
|
./bat.nix
|
||||||
|
./direnv.nix
|
||||||
|
./fastfetch
|
||||||
|
./fish
|
||||||
|
./git.nix
|
||||||
|
./ranger.nix
|
||||||
|
./screen.nix
|
||||||
|
./ssh.nix
|
||||||
|
./zoxide.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
services.ssh-agent.enable = true;
|
services.ssh-agent.enable = true;
|
||||||
|
@ -29,14 +41,19 @@ in
|
||||||
"${homeDir}/.local/bin"
|
"${homeDir}/.local/bin"
|
||||||
];
|
];
|
||||||
sessionVariables = {
|
sessionVariables = {
|
||||||
EDITOR = lib.mkDefault "micro";
|
EDITOR = "micro";
|
||||||
VISUAL = lib.mkDefault "micro";
|
FLAKE = "${homeDir}/git/Nix/dot.nix";
|
||||||
FLAKE = lib.mkDefault "${homeDir}/git/Nix/dot.nix";
|
MANPAGER = "batman"; # see ./cli/bat.nix
|
||||||
SHELL = lib.getExe shell;
|
SHELL = shell;
|
||||||
|
TERM = "foot";
|
||||||
|
VISUAL = "micro";
|
||||||
};
|
};
|
||||||
preferXdgDirectories = true; # whether to make programs use XDG directories whenever supported
|
preferXdgDirectories = true; # whether to make programs use XDG directories whenever supported
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#TODO(xdg): maybe move this to its own xdg.nix?
|
||||||
|
# xdg packages are pulled in below
|
||||||
xdg = {
|
xdg = {
|
||||||
enable = true;
|
enable = true;
|
||||||
userDirs = {
|
userDirs = {
|
||||||
|
@ -50,18 +67,21 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Core pkgs with no configs
|
|
||||||
home.packages = builtins.attrValues {
|
home.packages = builtins.attrValues {
|
||||||
inherit (pkgs)
|
inherit (pkgs)
|
||||||
|
# Packages that don't have custom configs go here
|
||||||
|
btop # resource monitor
|
||||||
coreutils # basic gnu utils
|
coreutils # basic gnu utils
|
||||||
direnv # environment per directory
|
|
||||||
dust # disk usage
|
dust # disk usage
|
||||||
eza # ls replacement
|
eza # ls replacement
|
||||||
microsoft-edit
|
jq # json parser
|
||||||
nmap # network scanner
|
p7zip # compression & encryption
|
||||||
|
pre-commit # git hooks
|
||||||
trashy # trash cli
|
trashy # trash cli
|
||||||
unrar # rar extraction
|
unrar # rar extraction
|
||||||
unzip # zip extraction
|
unzip # zip extraction
|
||||||
|
xdg-user-dirs
|
||||||
|
xdg-utils # provide cli tools such as `xdg-mime` and `xdg-open`
|
||||||
zip # zip compression
|
zip # zip compression
|
||||||
;
|
;
|
||||||
};
|
};
|
||||||
|
@ -70,6 +90,7 @@ in
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# disable manuals as nmd fails to build often
|
||||||
manual = {
|
manual = {
|
||||||
html.enable = false;
|
html.enable = false;
|
||||||
json.enable = false;
|
json.enable = false;
|
||||||
|
@ -89,25 +110,6 @@ in
|
||||||
|
|
||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
|
|
||||||
## NIX NIX NIX ##
|
|
||||||
home.file =
|
|
||||||
let
|
|
||||||
nixConfig = pkgs.writeText "config.nix" ''
|
|
||||||
{
|
|
||||||
allowUnfree = true;
|
|
||||||
permittedInsecurePackages = [
|
|
||||||
"ventoy-gtk3-1.1.05"
|
|
||||||
"modrinth-app"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
in
|
|
||||||
{
|
|
||||||
".config/nixpkgs/config.nix" = {
|
|
||||||
source = nixConfig;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Nicely reload system units when changing configs
|
# Nicely reload system units when changing configs
|
||||||
systemd.user.startServices = "sd-switch";
|
systemd.user.startServices = "sd-switch";
|
||||||
}
|
}
|
|
@ -6,29 +6,24 @@
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
|
#TODO: Scripts might need a rework
|
||||||
programs.fastfetch =
|
programs.fastfetch =
|
||||||
let
|
let
|
||||||
hostname = hostSpec.hostName;
|
hostname = hostSpec.hostName;
|
||||||
logoFile =
|
logoFile = ./. + "/host/${hostname}.txt";
|
||||||
let
|
weather = import ./scripts/weather.nix { inherit pkgs; };
|
||||||
hostLogoPath = ./. + "/host/images/${hostname}.png";
|
|
||||||
in
|
|
||||||
if builtins.pathExists hostLogoPath then hostLogoPath else ./host/images/nix.png;
|
|
||||||
weather = import ./scripts/weather.nix { inherit pkgs lib; };
|
|
||||||
title = import ./scripts/title.nix { inherit pkgs; };
|
title = import ./scripts/title.nix { inherit pkgs; };
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
logo = {
|
logo = {
|
||||||
type = "kitty";
|
source = builtins.readFile logoFile;
|
||||||
source = logoFile;
|
type = "data";
|
||||||
width = 21; # columns
|
position = "left";
|
||||||
height = 12; # rows
|
|
||||||
padding = {
|
padding = {
|
||||||
top = 1;
|
top = 0;
|
||||||
right = 2;
|
right = 0;
|
||||||
left = 2;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
display = {
|
display = {
|
||||||
|
@ -73,11 +68,7 @@
|
||||||
type = "wm";
|
type = "wm";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
text =
|
text = "printf '%s%s' (string upper (string sub -l 1 $SHELL)) (string lower (string sub -s 2 $SHELL))";
|
||||||
let
|
|
||||||
name = lib.getName pkgs.fish;
|
|
||||||
in
|
|
||||||
"printf '%s%s' (string upper (string sub -l 1 ${name})) (string lower (string sub -s 2 ${name}))";
|
|
||||||
key = "shell » {#keys}";
|
key = "shell » {#keys}";
|
||||||
keyColor = "1;33";
|
keyColor = "1;33";
|
||||||
type = "command";
|
type = "command";
|
Before Width: | Height: | Size: 8.9 KiB After Width: | Height: | Size: 8.9 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
BIN
home/toph/common/core/fastfetch/host/images/rune.png
Normal file
After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 189 KiB After Width: | Height: | Size: 189 KiB |
13
home/toph/common/core/fastfetch/host/vm.txt
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
|
||||||
|
[?25l[0m [38;2;201;171;246;48;2;170;145;205m▄[38;2;198;167;250;48;2;196;166;243m▄[0m[38;2;157;132;205m▄[0m [38;2;42;98;133;48;2;68;158;214m▄[38;2;80;187;253;48;2;70;163;221m▄[48;2;55;130;176m▄[0m [38;2;69;145;208m▄[38;2;85;173;253;48;2;72;159;221m▄[38;2;83;164;244;48;2;53;114;162m▄[0m [0m
|
||||||
|
[7m[38;2;113;96;142m▄[0m[38;2;174;146;228;48;2;194;163;249m▄[38;2;183;153;247;48;2;187;156;248m▄[38;2;173;143;242;48;2;93;77;127m▄[0m [7m[38;2;72;162;224m▄[0m[38;2;86;171;253;48;2;83;180;253m▄[38;2;87;167;253;48;2;76;160;230m▄[38;2;88;163;253;48;2;44;86;128m▄[38;2;90;159;253;48;2;87;168;253m▄[38;2;86;147;239;48;2;88;164;253m▄[0m[7m[38;2;49;89;139m▄[0m [0m
|
||||||
|
[38;2;169;144;202m▄[38;2;203;172;250;48;2;172;146;208m▄[38;2;196;166;249;48;2;168;142;209m▄[38;2;189;159;248;48;2;163;137;210m▄[38;2;182;152;247;48;2;176;147;235m▄[38;2;175;145;246;48;2;179;149;247m▄[38;2;168;138;245;48;2;172;142;246m▄[38;2;161;131;244;48;2;160;131;237m▄[38;2;153;124;243;48;2;147;120;228m▄[38;2;146;117;242;48;2;140;113;226m▄[38;2;139;110;241;48;2;132;105;223m▄[38;2;127;110;241;48;2;104;146;249m▄[38;2;94;147;253;48;2;90;158;253m▄[38;2;94;145;254;48;2;91;154;253m▄[38;2;94;139;251;48;2;92;150;253m▄[0m[7m[38;2;47;74;127m▄[0m [38;2;110;93;135m▄[38;2;155;132;185m▄[0m [0m
|
||||||
|
[7m[38;2;121;102;146m▄[38;2;115;97;144m▄[38;2;111;93;143m▄[38;2;107;90;143m▄[0m[38;2;102;106;245;48;2;134;115;214m▄[38;2;107;106;254;48;2;146;126;249m▄[38;2;93;90;220;48;2;141;122;249m▄[0m[7m[38;2;107;89;178m▄[38;2;86;70;140m▄[38;2;82;66;139m▄[38;2;78;62;138m▄[38;2;74;58;138m▄[38;2;77;93;184m▄[0m[38;2;90;113;228;48;2;97;136;254m▄[38;2;102;123;254;48;2;99;132;254m▄[0m[38;2;97;111;239m▄[0m [38;2;138;116;182m▄[38;2;189;159;239;48;2;197;167;249m░[38;2;199;168;246;48;2;207;176;251m▄[0m [0m
|
||||||
|
[38;2;49;75;132m▄[38;2;61;88;161m▄[38;2;99;132;254;48;2;73;89;183m▄[38;2;100;127;254;48;2;103;119;254m▄[38;2;68;82;171;48;2;104;113;254m▄[0m [38;2;81;80;192;48;2;104;113;254m▄[38;2;110;106;254;48;2;106;109;254m▄[38;2;166;139;247;48;2;112;102;207m▄[38;2;180;150;247;48;2;184;154;248m▄[38;2;182;153;242;48;2;191;161;249m▄[0m[7m[38;2;111;94;140m▄[0m [0m
|
||||||
|
[38;2;48;101;145;48;2;67;132;197m▄[38;2;85;174;253;48;2;88;165;253m▄[38;2;86;169;253;48;2;89;160;253m▄[38;2;88;164;253;48;2;91;155;253m▄[38;2;90;159;253;48;2;92;150;253m▄[38;2;91;154;253;48;2;94;146;254m▄[38;2;93;149;253;48;2;96;141;254m▄[38;2;102;111;228;48;2;92;129;241m▄[0m [38;2;153;125;238;48;2;135;118;246m▄[38;2;164;135;245;48;2;169;139;245m▄[38;2;171;141;246;48;2;176;146;246m▄[38;2;178;148;247;48;2;182;152;247m▄[38;2;185;155;248;48;2;189;159;248m▄[38;2;192;161;249;48;2;196;166;249m▄[38;2;199;168;250;48;2;203;172;250m▄[38;2;155;132;188;48;2;137;117;166m░[0m
|
||||||
|
[38;2;56;124;173m▄[38;2;84;176;253;48;2;85;164;248m▄[38;2;85;170;252;48;2;88;163;253m▄[38;2;110;110;212;48;2;98;148;251m▄[38;2;141;112;241;48;2;132;105;240m▄[38;2;139;111;238;48;2;78;61;139m▄[0m [38;2;142;113;241;48;2;106;85;175m▄[38;2;149;120;242;48;2;153;124;243m▄[38;2;103;83;161;48;2;160;130;244m▄[0m [0m
|
||||||
|
[38;2;80;187;253;48;2;80;187;253m░[38;2;74;173;234;48;2;81;184;253m▄[0m[7m[38;2;51;110;155m▄[0m [38;2;98;80;153;48;2;148;119;241m▄[38;2;158;129;244;48;2;149;120;242m▄[48;2;114;92;184m▄[0m[38;2;99;87;187m▄[38;2;76;74;180m▄[38;2;75;77;180m▄[38;2;73;84;180m▄[38;2;70;91;180m▄[38;2;80;107;203m▄[38;2;103;134;249;48;2;116;91;212m▄[38;2;103;143;249;48;2;137;109;240m▄[38;2;89;141;227;48;2;137;109;229m▄[0m[38;2;60;128;183m▄[38;2;58;134;183m▄[38;2;58;135;183m▄[38;2;55;129;175m▄[0m [0m
|
||||||
|
[7m[38;2;56;130;176m▄[0m [38;2;107;89;151m▄[38;2;174;145;246;48;2;166;137;245m▄[38;2;175;145;246m▄[48;2;161;134;246m▄[38;2;139;122;238;48;2;110;106;254m▄[38;2;85;88;204;48;2;106;109;254m▄[38;2;82;96;204;48;2;103;119;254m▄[38;2;80;103;204;48;2;100;129;254m▄[38;2;91;131;241;48;2;97;138;254m▄[38;2;93;148;253;48;2;93;148;253m░[38;2;90;157;253;48;2;90;158;253m░[38;2;74;141;214;48;2;87;167;253m▄[38;2;60;127;182;48;2;84;177;253m▄[38;2;57;132;180;48;2;81;186;253m▄[38;2;53;123;167;48;2;80;187;253m▄[0m [0m
|
||||||
|
[38;2;128;107;166m▄[38;2;191;160;249;48;2;180;150;244m▄[38;2;191;161;249;48;2;183;153;247m▄[38;2;98;82;128;48;2;183;153;248m▄[38;2;189;159;245m▄[38;2;192;161;249;48;2;179;149;242m▄[0m[38;2;139;117;180m▄[0m [38;2;62;99;169;48;2;93;148;253m▄[38;2;90;157;253;48;2;90;158;253m░[38;2;87;167;253;48;2;71;135;206m▄[0m [0m
|
||||||
|
[38;2;170;144;207;48;2;198;167;249m▄[38;2;191;162;231;48;2;199;168;250m▄[0m[7m[38;2;145;122;182m▄[0m [7m[38;2;113;96;142m▄[0m[38;2;181;154;218;48;2;200;169;250m▄[38;2;199;169;239;48;2;201;170;250m▄[0m[38;2;174;148;209m▄[0m [7m[38;2;82;145;231m▄[0m[38;2;74;142;215;48;2;87;167;253m▄[0m[7m[38;2;75;158;227m▄[0m [0m
|
||||||
|
[?25h
|
|
@ -21,10 +21,7 @@ for i in (seq 1 $num)
|
||||||
set type2 $types[$j]
|
set type2 $types[$j]
|
||||||
set combination "$type1+$type2"
|
set combination "$type1+$type2"
|
||||||
echo "Creating with type $combination"
|
echo "Creating with type $combination"
|
||||||
yay try chafa -- chafa -s 24x11 -w 9 --symbols $combination --view-size 24x11 $input_png
|
nix run nixpkgs#chafa -- -s 24x11 -w 9 --symbols $combination --view-size 24x11 $input_png
|
||||||
# yay try chafa -- chafa -s 23x12 -w 9 --stretch --symbols $combination --view-size 23x12 $input_png
|
# chafa -s 23x12 -w 9 --stretch --symbols $combination --view-size 23x12 $input_png
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# yay try chafa -- chafa -s 23x12 -w 9 --symbols half --view-size 23x12 ./1989.png
|
|
||||||
# fastfetch --logo-height 12 --logo-width 21 --logo-type kitty --logo-position left --logo-preserve-aspect-ratio --logo ./haze.png --logo-padding 2 --logo-padding-top 1
|
|
|
@ -1,15 +1,11 @@
|
||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
# INFO: Based on https://github.com/fcambus/ansiweather
|
||||||
jq = lib.getExe pkgs.jq;
|
|
||||||
in
|
|
||||||
pkgs.writeScript "weather" ''
|
pkgs.writeScript "weather" ''
|
||||||
#!/usr/bin/env fish
|
#!/usr/bin/env fish
|
||||||
|
|
||||||
# INFO: Based on https://github.com/fcambus/ansiweather
|
|
||||||
# Usage: ./weather.fish "Richmond,US"
|
# Usage: ./weather.fish "Richmond,US"
|
||||||
|
|
||||||
if not set -q argv[1]
|
if not set -q argv[1]
|
||||||
|
@ -32,17 +28,17 @@ pkgs.writeScript "weather" ''
|
||||||
set weather_data (curl -s "$WEATHER_API_URL")
|
set weather_data (curl -s "$WEATHER_API_URL")
|
||||||
|
|
||||||
# Parse needed fields
|
# Parse needed fields
|
||||||
set city_name (set_color -i green)(echo $weather_data | ${jq} -r '.name')(set_color reset)
|
set city_name (set_color -i green)(echo $weather_data | jq -r '.name')(set_color reset)
|
||||||
set temperature (echo $weather_data | ${jq} -r '.main.temp' | xargs printf "%.0f")
|
set temperature (echo $weather_data | jq -r '.main.temp' | xargs printf "%.0f")
|
||||||
set humidity (echo $weather_data | ${jq} -r '.main.humidity')
|
set humidity (echo $weather_data | jq -r '.main.humidity')
|
||||||
set weather_main (echo $weather_data | ${jq} -r '.weather[0].main')
|
set weather_main (echo $weather_data | jq -r '.weather[0].main')
|
||||||
set lon (echo $weather_data | ${jq} -r '.coord.lon')
|
set lon (echo $weather_data | jq -r '.coord.lon')
|
||||||
set lat (echo $weather_data | ${jq} -r '.coord.lat')
|
set lat (echo $weather_data | jq -r '.coord.lat')
|
||||||
|
|
||||||
# Fetch UVI data
|
# Fetch UVI data
|
||||||
set UVI_API_URL "https://api.openweathermap.org/data/2.5/uvi?lat=$lat&lon=$lon&appid=$API_KEY"
|
set UVI_API_URL "https://api.openweathermap.org/data/2.5/uvi?lat=$lat&lon=$lon&appid=$API_KEY"
|
||||||
set uvi_data (curl -s "$UVI_API_URL")
|
set uvi_data (curl -s "$UVI_API_URL")
|
||||||
set uvi (echo $uvi_data | ${jq} -r '.value')
|
set uvi (echo $uvi_data | jq -r '.value')
|
||||||
|
|
||||||
# Helper function for weather icon
|
# Helper function for weather icon
|
||||||
function weather_icon
|
function weather_icon
|
|
@ -1,13 +1,11 @@
|
||||||
function fish_greeting
|
set fish_greeting # Disable greeting
|
||||||
if not string match -q "*ghostty*" "$TERM"
|
|
||||||
fastfetch --logo-type sixel
|
|
||||||
else
|
|
||||||
fastfetch
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
## Aliases and Overrides ##
|
## Aliases and Overrides ##
|
||||||
|
|
||||||
|
function cd
|
||||||
|
zoxide $argv
|
||||||
|
end
|
||||||
|
|
||||||
function ls
|
function ls
|
||||||
eza $argv
|
eza $argv
|
||||||
end
|
end
|
||||||
|
@ -64,7 +62,7 @@ function zipz
|
||||||
# - The tar command outputs the archive to stdout.
|
# - The tar command outputs the archive to stdout.
|
||||||
# - zstd compresses it using 4 threads (-T4) and a compression level of 12 (-12).
|
# - zstd compresses it using 4 threads (-T4) and a compression level of 12 (-12).
|
||||||
# - The -c flag forces zstd to write to stdout.
|
# - The -c flag forces zstd to write to stdout.
|
||||||
tar cf - $directory | nix run nixpkgs#zstd -- -c -T5 -15 -v >$output_file
|
tar cf - $directory | nix run nixpkgs#zstd -- -c -T5 -15 -v > $output_file
|
||||||
|
|
||||||
# Check the exit status of the pipeline
|
# Check the exit status of the pipeline
|
||||||
if test $status -eq 0
|
if test $status -eq 0
|
||||||
|
@ -114,3 +112,7 @@ function unzipz
|
||||||
return 1
|
return 1
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
## Fish Prompt ##
|
||||||
|
|
||||||
|
fastfetch
|
26
home/toph/common/core/ranger.nix
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
{
|
||||||
|
programs.ranger = {
|
||||||
|
enable = true;
|
||||||
|
plugins = [
|
||||||
|
{
|
||||||
|
name = "zoxide";
|
||||||
|
src = builtins.fetchGit {
|
||||||
|
url = "https://github.com/jchook/ranger-zoxide.git";
|
||||||
|
rev = "281828de060299f73fe0b02fcabf4f2f2bd78ab3";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "archives";
|
||||||
|
src = builtins.fetchGit {
|
||||||
|
url = "https://github.com/maximtrp/ranger-archives.git";
|
||||||
|
rev = "b4e136b24fdca7670e0c6105fb496e5df356ef25";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
settings = {
|
||||||
|
show_hidden = true;
|
||||||
|
# preview_images = true;
|
||||||
|
# preview_images_method = w3m;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
66
home/toph/common/core/ssh.nix
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
hostSpec,
|
||||||
|
secretsSpec,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
# Generate local key paths for the config
|
||||||
|
sshKeysMap = lib.mapAttrs (name: _: "${hostSpec.home}/.ssh/${name}") secretsSpec.ssh.privateKeys;
|
||||||
|
|
||||||
|
# Create the SSH config file with local paths
|
||||||
|
sshConfig = pkgs.writeText "ssh-config" ''
|
||||||
|
Host git.ryot.foo
|
||||||
|
IdentityFile ${sshKeysMap.git}
|
||||||
|
|
||||||
|
Host *
|
||||||
|
ForwardAgent no
|
||||||
|
AddKeysToAgent yes
|
||||||
|
Compression no
|
||||||
|
ServerAliveInterval 5
|
||||||
|
ServerAliveCountMax 3
|
||||||
|
HashKnownHosts no
|
||||||
|
UserKnownHostsFile ~/.ssh/known_hosts
|
||||||
|
ControlMaster no
|
||||||
|
ControlPath ~/.ssh/master-%r@%n:%p
|
||||||
|
ControlPersist no
|
||||||
|
|
||||||
|
IdentityFile ${sshKeysMap.pve}
|
||||||
|
UpdateHostKeys ask
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
{
|
||||||
|
home.file =
|
||||||
|
{
|
||||||
|
# SSH config file
|
||||||
|
".ssh/config_source" = {
|
||||||
|
source = sshConfig;
|
||||||
|
onChange = ''
|
||||||
|
cp $HOME/.ssh/config_source $HOME/.ssh/config
|
||||||
|
chmod 400 $HOME/.ssh/config
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
".ssh/known_hosts_source" = {
|
||||||
|
source = pkgs.writeText "known-hosts" (lib.concatStringsSep "\n" secretsSpec.ssh.knownHosts);
|
||||||
|
onChange = ''
|
||||||
|
cp $HOME/.ssh/known_hosts_source $HOME/.ssh/known_hosts
|
||||||
|
chmod 644 $HOME/.ssh/known_hosts
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
|
# Dynamically add all SSH private keys using the existing store paths
|
||||||
|
# Ensures the keys have correct permissions and are not symlinks
|
||||||
|
// lib.mapAttrs' (name: path: {
|
||||||
|
name = ".ssh/${name}_source";
|
||||||
|
value = {
|
||||||
|
source = path;
|
||||||
|
onChange = ''
|
||||||
|
cp $HOME/.ssh/${name}_source $HOME/.ssh/${name}
|
||||||
|
chmod 600 $HOME/.ssh/${name}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}) secretsSpec.ssh.privateKeys;
|
||||||
|
}
|
10
home/toph/common/core/zoxide.nix
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
programs.zoxide = {
|
||||||
|
enable = true;
|
||||||
|
enableBashIntegration = true;
|
||||||
|
enableFishIntegration = true;
|
||||||
|
options = [
|
||||||
|
"--cmd cd" # replace cd with z and zi (via cdi)
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
6
home/toph/common/optional/browsers/default.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./chromium.nix
|
||||||
|
./zen.nix
|
||||||
|
];
|
||||||
|
}
|
44
home/toph/common/optional/development/default.nix
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
# Development utilities I want across all systems
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
imports = lib.custom.scanPaths ./.;
|
||||||
|
|
||||||
|
home.packages = lib.flatten [
|
||||||
|
(builtins.attrValues {
|
||||||
|
inherit (pkgs)
|
||||||
|
# Development
|
||||||
|
direnv
|
||||||
|
delta # diffing
|
||||||
|
gh # github cli
|
||||||
|
|
||||||
|
logisim-evolution
|
||||||
|
mcaselector
|
||||||
|
prettierd
|
||||||
|
|
||||||
|
# nix
|
||||||
|
nixpkgs-review
|
||||||
|
nixfmt-rfc-style
|
||||||
|
|
||||||
|
# networking
|
||||||
|
nmap
|
||||||
|
|
||||||
|
# Diffing
|
||||||
|
difftastic
|
||||||
|
|
||||||
|
# serial debugging
|
||||||
|
screen
|
||||||
|
|
||||||
|
# Standard man pages for linux API
|
||||||
|
man-pages
|
||||||
|
man-pages-posix
|
||||||
|
;
|
||||||
|
inherit (pkgs.jetbrains)
|
||||||
|
idea-ultimate
|
||||||
|
;
|
||||||
|
})
|
||||||
|
];
|
||||||
|
}
|
|
@ -9,13 +9,4 @@ in
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.vscode.fhsWithPackages (_: [ patched-openssh ]);
|
package = pkgs.vscode.fhsWithPackages (_: [ patched-openssh ]);
|
||||||
};
|
};
|
||||||
|
|
||||||
# Pkgs used with vscode regularly
|
|
||||||
home.packages = builtins.attrValues {
|
|
||||||
inherit (pkgs)
|
|
||||||
nixfmt-rfc-style # nix formatter
|
|
||||||
nixpkgs-review # nix review tool
|
|
||||||
biome
|
|
||||||
;
|
|
||||||
};
|
|
||||||
}
|
}
|
64
home/toph/common/optional/gaming/default.nix
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
# This module just provides a customized .desktop file with gamescope args dynamically created based on the
|
||||||
|
# host's monitors configuration
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
monitor = lib.head (lib.filter (m: m.primary) config.monitors);
|
||||||
|
steam-session =
|
||||||
|
let
|
||||||
|
gamescope = lib.concatStringsSep " " [
|
||||||
|
(lib.getExe pkgs.gamescope)
|
||||||
|
"--rt"
|
||||||
|
"--output-width ${toString monitor.width}"
|
||||||
|
"--output-height ${toString monitor.height}"
|
||||||
|
"--framerate-limit ${toString monitor.refreshRate}"
|
||||||
|
"--prefer-output ${monitor.name}"
|
||||||
|
"--adaptive-sync"
|
||||||
|
"--expose-wayland"
|
||||||
|
"--backend wayland"
|
||||||
|
"--force-grab-cursor"
|
||||||
|
"--steam"
|
||||||
|
# "--hdr-enabled"
|
||||||
|
];
|
||||||
|
steam = lib.concatStringsSep " " [
|
||||||
|
"steam"
|
||||||
|
#"steam://open/bigpicture"
|
||||||
|
"-forcedesktopscaling ${toString monitor.scale}"
|
||||||
|
"-nofriendsui"
|
||||||
|
"-noschatui"
|
||||||
|
];
|
||||||
|
in
|
||||||
|
pkgs.writeTextDir "share/applications/steam-session.desktop" ''
|
||||||
|
[Desktop Entry]
|
||||||
|
Name=Steam Session
|
||||||
|
Comment=Steam with Gamescope
|
||||||
|
Exec=${gamescope} -- ${steam}
|
||||||
|
Icon=steam
|
||||||
|
Type=Application
|
||||||
|
Categories=Network;FileTransfer;Game;
|
||||||
|
MimeType=x-scheme-handler/steam;x-scheme-handler/steamlink;
|
||||||
|
PrefersNonDefaultGPU = true;
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = lib.custom.scanPaths ./.;
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
prismlauncher
|
||||||
|
steam-session
|
||||||
|
# modrinth-app
|
||||||
|
(lutris.override {
|
||||||
|
extraLibraries = pkgs: [
|
||||||
|
# List library dependencies here
|
||||||
|
];
|
||||||
|
extraPkgs = pkgs: [
|
||||||
|
# List package dependencies here
|
||||||
|
];
|
||||||
|
})
|
||||||
|
];
|
||||||
|
}
|
|
@ -8,6 +8,13 @@
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
# citron-emu = pkgs.callPackage (lib.custom.relativeToRoot "pkgs/common/citron-emu/package.nix") {
|
||||||
|
# inherit pkgs;
|
||||||
|
# };
|
||||||
|
# borgtui = pkgs.callPackage (lib.custom.relativeToRoot "pkgs/common/borgtui/package.nix") {
|
||||||
|
# inherit pkgs;
|
||||||
|
# };
|
||||||
|
|
||||||
homeDir = hostSpec.home;
|
homeDir = hostSpec.home;
|
||||||
|
|
||||||
borg-wrapper = pkgs.writeScript "borg-wrapper" ''
|
borg-wrapper = pkgs.writeScript "borg-wrapper" ''
|
||||||
|
@ -158,6 +165,7 @@ let
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
|
citron-emu
|
||||||
ryubing
|
ryubing
|
||||||
borgbackup
|
borgbackup
|
||||||
borgtui
|
borgtui
|
||||||
|
@ -195,35 +203,34 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# FIXME: change to edenemu
|
citron-emu = {
|
||||||
# citron-emu = {
|
name = "Citron w/ Borg Backups";
|
||||||
# name = "Citron w/ Borg Backups";
|
comment = "Citron Emulator with Borg Backups";
|
||||||
# comment = "Citron Emulator with Borg Backups";
|
exec = mkLaunchCommand {
|
||||||
# exec = mkLaunchCommand {
|
savePath = "${homeDir}/.local/share/citron/nand/user/save";
|
||||||
# savePath = "${homeDir}/.local/share/citron/nand/user/save";
|
backupPath = "/pool/Backups/Switch/CitronSaves";
|
||||||
# backupPath = "/pool/Backups/Switch/CitronSaves";
|
maxBackups = 30;
|
||||||
# maxBackups = 30;
|
command = "citron-emu";
|
||||||
# command = "citron-emu";
|
};
|
||||||
# };
|
icon = "applications-games";
|
||||||
# icon = "applications-games";
|
type = "Application";
|
||||||
# type = "Application";
|
terminal = false;
|
||||||
# terminal = false;
|
categories = [
|
||||||
# categories = [
|
"Game"
|
||||||
# "Game"
|
"Emulator"
|
||||||
# "Emulator"
|
];
|
||||||
# ];
|
mimeType = [
|
||||||
# mimeType = [
|
"application/x-nx-nca"
|
||||||
# "application/x-nx-nca"
|
"application/x-nx-nro"
|
||||||
# "application/x-nx-nro"
|
"application/x-nx-nso"
|
||||||
# "application/x-nx-nso"
|
"application/x-nx-nsp"
|
||||||
# "application/x-nx-nsp"
|
"application/x-nx-xci"
|
||||||
# "application/x-nx-xci"
|
];
|
||||||
# ];
|
prefersNonDefaultGPU = true;
|
||||||
# prefersNonDefaultGPU = true;
|
settings = {
|
||||||
# settings = {
|
StartupWMClass = "Citron";
|
||||||
# StartupWMClass = "Citron";
|
GenericName = "Nintendo Switch Emulator";
|
||||||
# GenericName = "Nintendo Switch Emulator";
|
};
|
||||||
# };
|
};
|
||||||
# };
|
|
||||||
};
|
};
|
||||||
}
|
}
|
575
home/toph/common/optional/gnome/dconf.conf
Normal file
|
@ -0,0 +1,575 @@
|
||||||
|
# Generated via dconf2nix: https://github.com/gvolpe/dconf2nix
|
||||||
|
{ lib, ... }:
|
||||||
|
|
||||||
|
with lib.hm.gvariant;
|
||||||
|
|
||||||
|
{
|
||||||
|
dconf.settings = {
|
||||||
|
"desktop/ibus/general" = {
|
||||||
|
preload-engines = [];
|
||||||
|
};
|
||||||
|
|
||||||
|
"io/elementary/code/folder-manager" = {
|
||||||
|
opened-folders = [ "/home/toph/git/Nix/dot.nix" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"io/elementary/code/saved-state" = {
|
||||||
|
hp1-size = 144;
|
||||||
|
last-opened-path = "/home/toph";
|
||||||
|
vp-size = 125;
|
||||||
|
window-size = mkTuple [ 850 550 ];
|
||||||
|
window-state = "Normal";
|
||||||
|
};
|
||||||
|
|
||||||
|
"io/elementary/code/settings" = {
|
||||||
|
focused-document = "file:///home/toph/git/Nix/dot.nix/home/toph/common/optional/gaming/default.nix";
|
||||||
|
opened-files = [ (mkTuple [ "file:///home/toph/git/Nix/dot.nix/home/toph/rune/default.nix" 258 ]) (mkTuple [ "file:///home/toph/git/Nix/dot.nix/home/toph/common/optional/gaming/default.nix" 1079 ]) ];
|
||||||
|
plugins-enabled = [ "brackets-completion" "detect-indent" "editorconfig" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"io/elementary/desktop/wingpanel/applications-menu" = {
|
||||||
|
use-category = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
"io/elementary/desktop/wingpanel/bluetooth" = {
|
||||||
|
bluetooth-enabled = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
"io/elementary/desktop/wingpanel/sound" = {
|
||||||
|
last-title-info = [ "io.elementary.music.desktop" "" "" ];
|
||||||
|
preferred-devices = {
|
||||||
|
alsa_card.usb-Sonix_Technology_Co.__Ltd._USB_Live_camera_SN0001-02:analog-input-mic = 1741729685;
|
||||||
|
alsa_card.usb-Kingston_HyperX_Cloud_Alpha_S_000000000001-00:analog-input-mic = 1741729685;
|
||||||
|
alsa_card.pci-0000_03_00.1:hdmi-output-4 = 1741729685;
|
||||||
|
alsa_card.pci-0000_13_00.1:hdmi-output-0 = 1741724405;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
"io/elementary/files/file-chooser" = {
|
||||||
|
last-folder-uri = "file:///home/toph/git/Nix/dot.nix";
|
||||||
|
window-size = mkTuple [ 800 450 ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"io/elementary/files/icon-view" = {
|
||||||
|
zoom-level = "large";
|
||||||
|
};
|
||||||
|
|
||||||
|
"io/elementary/files/preferences" = {
|
||||||
|
active-tab-position = 0;
|
||||||
|
default-viewmode = "icon";
|
||||||
|
show-hiddenfiles = true;
|
||||||
|
sidebar-cat-personal-expander = true;
|
||||||
|
sidebar-width = 365;
|
||||||
|
tab-info-list = [ (mkTuple [ (mkUint32 0) "file:///home/toph/git/Nix/dot.nix/home/toph/rune" "" ]) ];
|
||||||
|
window-size = mkTuple [ 1970 1450 ];
|
||||||
|
window-state = "normal";
|
||||||
|
};
|
||||||
|
|
||||||
|
"io/elementary/settings" = {
|
||||||
|
window-height = 817;
|
||||||
|
window-maximized = false;
|
||||||
|
window-width = 1207;
|
||||||
|
};
|
||||||
|
|
||||||
|
"io/elementary/settings/keyboard" = {
|
||||||
|
first-launch = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
"io/elementary/terminal/saved-state" = {
|
||||||
|
focused-tab = 0;
|
||||||
|
tab-zooms = [ "1" ];
|
||||||
|
tabs = [ "/home/toph/git/Nix/dot.nix" ];
|
||||||
|
window-size = mkTuple [ 1844 1281 ];
|
||||||
|
window-state = "Normal";
|
||||||
|
zoom = 1.0;
|
||||||
|
};
|
||||||
|
|
||||||
|
"io/elementary/terminal/settings" = {
|
||||||
|
prefer-dark-style = true;
|
||||||
|
theme = "dark";
|
||||||
|
};
|
||||||
|
|
||||||
|
"net/launchpad/plank/docks/dock1" = {
|
||||||
|
dock-items = [ "gala-multitaskingview.dockitem" "io.elementary.files.dockitem" "org.gnome.Epiphany.dockitem" "io.elementary.mail.dockitem" "io.elementary.tasks.dockitem" "io.elementary.calendar.dockitem" "io.elementary.music.dockitem" "io.elementary.videos.dockitem" "io.elementary.photos.dockitem" "io.elementary.settings.dockitem" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/Console" = {
|
||||||
|
last-window-maximised = false;
|
||||||
|
last-window-size = mkTuple [ 1463 1048 ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/Extensions" = {
|
||||||
|
window-height = 1144;
|
||||||
|
window-maximized = false;
|
||||||
|
window-width = 1736;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/Weather" = {
|
||||||
|
window-height = 420;
|
||||||
|
window-maximized = false;
|
||||||
|
window-width = 992;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/baobab/ui" = {
|
||||||
|
is-maximized = false;
|
||||||
|
window-size = mkTuple [ 2023 1374 ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/clocks/state/window" = {
|
||||||
|
maximized = false;
|
||||||
|
panel-id = "world";
|
||||||
|
size = mkTuple [ 870 690 ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/control-center" = {
|
||||||
|
last-panel = "keyboard";
|
||||||
|
window-state = mkTuple [ 1663 1048 false ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/app-folders" = {
|
||||||
|
folder-children = [ "Utilities" "YaST" "Pardus" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/app-folders/folders/Pardus" = {
|
||||||
|
categories = [ "X-Pardus-Apps" ];
|
||||||
|
name = "X-Pardus-Apps.directory";
|
||||||
|
translate = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/app-folders/folders/Utilities" = {
|
||||||
|
apps = [ "org.freedesktop.GnomeAbrt.desktop" "nm-connection-editor.desktop" "org.gnome.baobab.desktop" "org.gnome.Connections.desktop" "org.gnome.DejaDup.desktop" "org.gnome.DiskUtility.desktop" "org.gnome.Evince.desktop" "org.gnome.FileRoller.desktop" "org.gnome.font-viewer.desktop" "org.gnome.Loupe.desktop" "org.freedesktop.MalcontentControl.desktop" "org.gnome.seahorse.Application.desktop" "org.gnome.tweaks.desktop" "org.gnome.Usage.desktop" ];
|
||||||
|
categories = [ "X-GNOME-Utilities" ];
|
||||||
|
name = "X-GNOME-Utilities.directory";
|
||||||
|
translate = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/app-folders/folders/YaST" = {
|
||||||
|
categories = [ "X-SuSE-YaST" ];
|
||||||
|
name = "suse-yast.directory";
|
||||||
|
translate = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/background" = {
|
||||||
|
color-shading-type = "solid";
|
||||||
|
picture-options = "zoom";
|
||||||
|
picture-uri = "file:////nix/store/2fkxipgns07ik26hswq58kkx1m889ycw-wallpaper.jpg";
|
||||||
|
picture-uri-dark = "file:////nix/store/2fkxipgns07ik26hswq58kkx1m889ycw-wallpaper.jpg";
|
||||||
|
primary-color = "#000000";
|
||||||
|
secondary-color = "#000000";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/datetime" = {
|
||||||
|
automatic-timezone = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/input-sources" = {
|
||||||
|
sources = [ (mkTuple [ "xkb" "us" ]) ];
|
||||||
|
xkb-options = [ "compose:menu" "lv3:ralt_switch" "terminate:ctrl_alt_bksp" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/input-sources/xkb-options" = {
|
||||||
|
xkb-options = [ "compose:menu" "lv3:ralt_switch" "terminate:ctrl_alt_bksp" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/interface" = {
|
||||||
|
accent-color = "blue";
|
||||||
|
color-scheme = "prefer-dark";
|
||||||
|
cursor-theme = "Numix-Cursor";
|
||||||
|
gtk-theme = "Gruvbox-Dark";
|
||||||
|
icon-theme = "Papirus-Dark";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/notifications" = {
|
||||||
|
application-children = [ "org-gnome-console" "zen-twilight" "gnome-power-panel" "org-gnome-nautilus" "org-gnome-baobab" "spotify" "vesktop" "org-wezfurlong-wezterm" "org-remmina-remmina" "idea-ultimate" "org-telegram-desktop" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/notifications/application/gnome-power-panel" = {
|
||||||
|
application-id = "gnome-power-panel.desktop";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/notifications/application/idea-ultimate" = {
|
||||||
|
application-id = "idea-ultimate.desktop";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/notifications/application/org-gnome-baobab" = {
|
||||||
|
application-id = "org.gnome.baobab.desktop";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/notifications/application/org-gnome-console" = {
|
||||||
|
application-id = "org.gnome.Console.desktop";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/notifications/application/org-gnome-nautilus" = {
|
||||||
|
application-id = "org.gnome.Nautilus.desktop";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/notifications/application/org-remmina-remmina" = {
|
||||||
|
application-id = "org.remmina.Remmina.desktop";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/notifications/application/org-telegram-desktop" = {
|
||||||
|
application-id = "org.telegram.desktop.desktop";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/notifications/application/org-wezfurlong-wezterm" = {
|
||||||
|
application-id = "org.wezfurlong.wezterm.desktop";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/notifications/application/spotify" = {
|
||||||
|
application-id = "spotify.desktop";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/notifications/application/vesktop" = {
|
||||||
|
application-id = "vesktop.desktop";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/notifications/application/zen-twilight" = {
|
||||||
|
application-id = "zen.desktop";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/peripherals/mouse" = {
|
||||||
|
accel-profile = "flat";
|
||||||
|
natural-scroll = false;
|
||||||
|
speed = 0.0;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/peripherals/touchpad" = {
|
||||||
|
edge-scrolling-enabled = false;
|
||||||
|
two-finger-scrolling-enabled = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/screensaver" = {
|
||||||
|
color-shading-type = "solid";
|
||||||
|
picture-options = "zoom";
|
||||||
|
picture-uri = "file:////nix/store/2fkxipgns07ik26hswq58kkx1m889ycw-wallpaper.jpg";
|
||||||
|
primary-color = "#241f31";
|
||||||
|
secondary-color = "#000000";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/search-providers" = {
|
||||||
|
disabled = [ "org.gnome.seahorse.Application.desktop" "org.gnome.Epiphany.desktop" "org.gnome.Contacts.desktop" "org.gnome.Calendar.desktop" "org.gnome.Characters.desktop" "org.gnome.clocks.desktop" "org.gnome.Calculator.desktop" ];
|
||||||
|
enabled = [ "org.gnome.Weather.desktop" ];
|
||||||
|
sort-order = [ "org.gnome.Settings.desktop" "org.gnome.Contacts.desktop" "org.gnome.Nautilus.desktop" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/session" = {
|
||||||
|
idle-delay = mkUint32 480;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/sound" = {
|
||||||
|
event-sounds = true;
|
||||||
|
theme-name = "__custom";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/wm/keybindings" = {
|
||||||
|
close = [ "<Super>q" ];
|
||||||
|
maximize = [""];
|
||||||
|
move-to-monitor-left = [""];
|
||||||
|
move-to-monitor-right = [""];
|
||||||
|
move-to-workspace-right = [""];
|
||||||
|
shift-overview-down = [ "" ];
|
||||||
|
shift-overview-up = [ "" ];
|
||||||
|
switch-to-workspace-down = [ "" ];
|
||||||
|
switch-to-workspace-right = [];
|
||||||
|
switch-to-workspace-up = [ "" ];
|
||||||
|
toggle-application-view = [ "" ];
|
||||||
|
toggle-message-tray = [ "<Super>a" ];
|
||||||
|
unmaximize = [ "" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/evolution-data-server" = {
|
||||||
|
migrated = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/mutter" = {
|
||||||
|
dynamic-workspaces = true;
|
||||||
|
edge-tiling = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/mutter/keybindings" = {
|
||||||
|
toggle-tiled-left = [ "" ];
|
||||||
|
toggle-tiled-right = [ "" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/nautilus/preferences" = {
|
||||||
|
default-folder-viewer = "icon-view";
|
||||||
|
migrated-gtk-settings = true;
|
||||||
|
search-filter-time-type = "last_modified";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/nautilus/window-state" = {
|
||||||
|
initial-size = mkTuple [ 2120 1584 ];
|
||||||
|
initial-size-file-chooser = mkTuple [ 890 550 ];
|
||||||
|
maximized = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/portal/filechooser/org/gnome/Settings" = {
|
||||||
|
last-folder-path = "/home/toph/Pictures";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/settings-daemon/plugins/color" = {
|
||||||
|
night-light-enabled = true;
|
||||||
|
night-light-schedule-automatic = true;
|
||||||
|
night-light-schedule-from = 18.0;
|
||||||
|
night-light-schedule-to = 7.0;
|
||||||
|
night-light-temperature = mkUint32 3700;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/settings-daemon/plugins/media-keys" = {
|
||||||
|
custom-keybindings = [ "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/" "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = {
|
||||||
|
binding = "<Super>t";
|
||||||
|
command = "wezterm";
|
||||||
|
name = "Terminal";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1" = {
|
||||||
|
binding = "<Super>f";
|
||||||
|
command = "nautilus";
|
||||||
|
name = "Files";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/settings-daemon/plugins/power" = {
|
||||||
|
power-button-action = "hibernate";
|
||||||
|
sleep-inactive-ac-timeout = 1200;
|
||||||
|
sleep-inactive-ac-type = "suspend";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell" = {
|
||||||
|
disable-user-extensions = false;
|
||||||
|
enabled-extensions = [ "appindicatorsupport@rgcjonas.gmail.com" "blur-my-shell@aunetx" "clipboard-indicator@tudmotu.com" "color-picker@tuberry" "dash-to-panel@jderose9.github.com" "hibernate@dafne.rocks" "monitor-brightness-volume@ailin.nemui" "native-window-placement@gnome-shell-extensions.gcampax.github.com" "screenshot-window-sizer@gnome-shell-extensions.gcampax.github.com" "tilingshell@ferrarodomenico.com" "user-theme@gnome-shell-extensions.gcampax.github.com" "Vitals@CoreCoding.com" ];
|
||||||
|
favorite-apps = [ "org.gnome.Nautilus.desktop" "org.wezfurlong.wezterm.desktop" "win11.desktop" "zen.desktop" "spotify.desktop" "vesktop.desktop" "org.telegram.desktop.desktop" "code.desktop" "fleet-jet.desktop" "steam.desktop" "Marvel Rivals.desktop" "org.prismlauncher.PrismLauncher.desktop" ];
|
||||||
|
last-selected-power-profile = "performance";
|
||||||
|
welcome-dialog-last-shown-version = "47.4";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell/extensions/blur-my-shell" = {
|
||||||
|
settings-version = 2;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell/extensions/blur-my-shell/appfolder" = {
|
||||||
|
brightness = 0.6;
|
||||||
|
sigma = 30;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell/extensions/blur-my-shell/dash-to-dock" = {
|
||||||
|
blur = true;
|
||||||
|
brightness = 0.6;
|
||||||
|
sigma = 30;
|
||||||
|
static-blur = true;
|
||||||
|
style-dash-to-dock = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell/extensions/blur-my-shell/panel" = {
|
||||||
|
brightness = 0.6;
|
||||||
|
sigma = 50;
|
||||||
|
static-blur = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell/extensions/blur-my-shell/window-list" = {
|
||||||
|
brightness = 0.6;
|
||||||
|
sigma = 30;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell/extensions/clipboard-indicator" = {
|
||||||
|
cache-only-favorites = false;
|
||||||
|
cache-size = 120;
|
||||||
|
display-mode = 0;
|
||||||
|
enable-keybindings = true;
|
||||||
|
history-size = 40;
|
||||||
|
notify-on-copy = false;
|
||||||
|
pinned-on-bottom = true;
|
||||||
|
strip-text = false;
|
||||||
|
toggle-menu = [ "<Super>v" ];
|
||||||
|
topbar-preview-size = 10;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell/extensions/color-picker" = {
|
||||||
|
color-history = [ (mkUint32 3158064) 1447446 14538709 14637907 1447446 3355443 16777215 1644825 ];
|
||||||
|
color-picker-shortcut = [ "<Super>c" ];
|
||||||
|
enable-notify = true;
|
||||||
|
enable-shortcut = true;
|
||||||
|
enable-systray = true;
|
||||||
|
menu-size = mkUint32 8;
|
||||||
|
notify-style = mkUint32 0;
|
||||||
|
persistent-mode = false;
|
||||||
|
preview-style = mkUint32 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell/extensions/dash-to-panel" = {
|
||||||
|
appicon-margin = 6;
|
||||||
|
appicon-padding = 8;
|
||||||
|
available-monitors = [ 0 1 ];
|
||||||
|
dot-position = "TOP";
|
||||||
|
dot-style-focused = "DASHES";
|
||||||
|
dot-style-unfocused = "DASHES";
|
||||||
|
multi-monitors = false;
|
||||||
|
panel-positions = ''
|
||||||
|
{"0":"TOP","1":"TOP"}\n
|
||||||
|
'';
|
||||||
|
primary-monitor = 0;
|
||||||
|
scroll-icon-action = "CYCLE_WINDOWS";
|
||||||
|
scroll-panel-action = "SWITCH_WORKSPACE";
|
||||||
|
trans-panel-opacity = "0.40";
|
||||||
|
trans-use-custom-opacity = true;
|
||||||
|
tray-padding = 8;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell/extensions/hibernate-status-button" = {
|
||||||
|
show-hibernate-dialog = true;
|
||||||
|
show-hybrid-sleep = true;
|
||||||
|
show-hybrid-sleep-dialog = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell/extensions/tilingshell" = {
|
||||||
|
enable-autotiling = false;
|
||||||
|
enable-smart-window-border-radius = false;
|
||||||
|
enable-window-border = true;
|
||||||
|
inner-gaps = mkUint32 8;
|
||||||
|
last-version-name-installed = "16.2";
|
||||||
|
layouts-json = "[{\"id\":\"Layout 1\",\"tiles\":[{\"x\":0,\"y\":0,\"width\":0.22,\"height\":0.5,\"groups\":[2,1]},{\"x\":0,\"y\":0.5,\"width\":0.22,\"height\":0.5,\"groups\":[1,2]},{\"x\":0.22,\"y\":0,\"width\":0.2794791666666666,\"height\":0.5,\"groups\":[7,5,2]},{\"x\":0.753125,\"y\":0,\"width\":0.24687499999999998,\"height\":0.5,\"groups\":[4,3]},{\"x\":0.753125,\"y\":0.5,\"width\":0.24687499999999998,\"height\":0.5,\"groups\":[4,3]},{\"x\":0.22,\"y\":0.5,\"width\":0.2797395833333334,\"height\":0.5,\"groups\":[5,6,2]},{\"x\":0.49973958333333335,\"y\":0.5,\"width\":0.2533854166666667,\"height\":0.5,\"groups\":[5,3,6]},{\"x\":0.49947916666666664,\"y\":0,\"width\":0.25364583333333346,\"height\":0.5,\"groups\":[3,5,7]}]},{\"id\":\"Layout 2\",\"tiles\":[{\"x\":0,\"y\":0,\"width\":0.22,\"height\":1,\"groups\":[1]},{\"x\":0.22,\"y\":0,\"width\":0.56,\"height\":1,\"groups\":[1,2]},{\"x\":0.78,\"y\":0,\"width\":0.22,\"height\":1,\"groups\":[2]}]},{\"id\":\"985825\",\"tiles\":[{\"x\":0,\"y\":0,\"width\":1,\"height\":0.5,\"groups\":[1]},{\"x\":0,\"y\":0.5,\"width\":1,\"height\":0.5,\"groups\":[1]}]}]";
|
||||||
|
move-window-center = [ "<Super>Return" ];
|
||||||
|
outer-gaps = mkUint32 4;
|
||||||
|
overridden-settings = "{\"org.gnome.mutter.keybindings\":{\"toggle-tiled-right\":\"['<Super>Right']\",\"toggle-tiled-left\":\"['<Super>Left']\"},\"org.gnome.desktop.wm.keybindings\":{\"maximize\":\"['<Super>Up']\",\"unmaximize\":\"['<Super>Down', '<Alt>F5']\"},\"org.gnome.mutter\":{\"edge-tiling\":\"false\"}}";
|
||||||
|
restore-window-original-size = false;
|
||||||
|
selected-layouts = [ [ "Layout 1" "985825" ] [ "Layout 1" "985825" ] ];
|
||||||
|
span-multiple-tiles-activation-key = [ "1" ];
|
||||||
|
span-window-all-tiles = [ "<Control><Super>Page_Up" ];
|
||||||
|
span-window-down = [ "<Alt><Super>Down" ];
|
||||||
|
span-window-left = [ "<Alt><Super>Left" ];
|
||||||
|
span-window-right = [ "<Alt><Super>Right" ];
|
||||||
|
span-window-up = [ "<Alt><Super>Up" ];
|
||||||
|
tiling-system-activation-key = [ "2" ];
|
||||||
|
untile-window = [ "<Control><Super>Page_Down" ];
|
||||||
|
window-border-color = "rgb(53,132,228)";
|
||||||
|
window-border-width = mkUint32 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell/extensions/user-theme" = {
|
||||||
|
name = "Gruvbox-Dark";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell/extensions/vitals" = {
|
||||||
|
alphabetize = true;
|
||||||
|
hide-icons = false;
|
||||||
|
hide-zeros = false;
|
||||||
|
hot-sensors = [ "_memory_usage_" "_storage_free_" "_network_public_ip_" "_processor_usage_" "__temperature_avg__" "_system_uptime_" ];
|
||||||
|
icon-style = 0;
|
||||||
|
include-static-gpu-info = false;
|
||||||
|
menu-centered = false;
|
||||||
|
position-in-panel = 4;
|
||||||
|
show-gpu = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell/keybindings" = {
|
||||||
|
shift-overview-down = [];
|
||||||
|
shift-overview-up = [];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell/weather" = {
|
||||||
|
automatic-location = true;
|
||||||
|
locations = [];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell/world-clocks" = {
|
||||||
|
locations = [];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/tweaks" = {
|
||||||
|
show-extensions-notice = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gtk/gtk4/settings/color-chooser" = {
|
||||||
|
custom-colors = [ (mkTuple [ 0.2078431397676468 0.5176469683647156 0.8941176533699036 1.0 ]) (mkTuple [ 0.9254902005195618 0.3686274588108063 0.3686274588108063 1.0 ]) ];
|
||||||
|
selected-color = mkTuple [ true 0.2078431397676468 0.5176469683647156 0.8941176533699036 1.0 ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gtk/gtk4/settings/file-chooser" = {
|
||||||
|
show-hidden = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gtk/settings/file-chooser" = {
|
||||||
|
date-format = "regular";
|
||||||
|
location-mode = "path-bar";
|
||||||
|
show-hidden = true;
|
||||||
|
show-size-column = true;
|
||||||
|
show-type-column = true;
|
||||||
|
sidebar-width = 165;
|
||||||
|
sort-column = "name";
|
||||||
|
sort-directories-first = true;
|
||||||
|
sort-order = "ascending";
|
||||||
|
type-format = "category";
|
||||||
|
window-position = mkTuple [ 102 102 ];
|
||||||
|
window-size = mkTuple [ 1231 902 ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/onboard" = {
|
||||||
|
schema-version = "2.3";
|
||||||
|
system-theme-associations = {
|
||||||
|
HighContrast = "HighContrast";
|
||||||
|
HighContrastInverse = "HighContrastInverse";
|
||||||
|
LowContrast = "LowContrast";
|
||||||
|
ContrastHighInverse = "HighContrastInverse";
|
||||||
|
Default = "";
|
||||||
|
};
|
||||||
|
use-system-defaults = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/virt-manager/virt-manager" = {
|
||||||
|
manager-window-height = 960;
|
||||||
|
manager-window-width = 1557;
|
||||||
|
xmleditor-enabled = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/virt-manager/virt-manager/confirm" = {
|
||||||
|
delete-storage = true;
|
||||||
|
forcepoweroff = true;
|
||||||
|
removedev = false;
|
||||||
|
unapplied-dev = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/virt-manager/virt-manager/connections" = {
|
||||||
|
autoconnect = [ "qemu:///session" "qemu:///system" ];
|
||||||
|
uris = [ "qemu:///session" "qemu:///system" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/virt-manager/virt-manager/conns/qemu:session" = {
|
||||||
|
window-size = mkTuple [ 800 600 ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/virt-manager/virt-manager/conns/qemu:system" = {
|
||||||
|
window-size = mkTuple [ 800 600 ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/virt-manager/virt-manager/details" = {
|
||||||
|
show-toolbar = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/virt-manager/virt-manager/new-vm" = {
|
||||||
|
graphics-type = "system";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/virt-manager/virt-manager/vmlist-fields" = {
|
||||||
|
disk-usage = true;
|
||||||
|
network-traffic = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/virt-manager/virt-manager/vms/338a0af844bb4ac49039e20b1763e86b" = {
|
||||||
|
autoconnect = 1;
|
||||||
|
vm-window-size = mkTuple [ 1280 872 ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/virt-manager/virt-manager/vms/9148c8b7c3584392a70d923a0d8ae8ad" = {
|
||||||
|
autoconnect = 1;
|
||||||
|
vm-window-size = mkTuple [ 1280 844 ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/virt-manager/virt-manager/vms/af177cf0fd0a4cc9817e574402e106f5" = {
|
||||||
|
autoconnect = 1;
|
||||||
|
vm-window-size = mkTuple [ 2021 1178 ];
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
411
home/toph/common/optional/gnome/default.nix
Normal file
|
@ -0,0 +1,411 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
gruvbox-gtk-theme
|
||||||
|
papirus-icon-theme
|
||||||
|
numix-cursor-theme
|
||||||
|
];
|
||||||
|
|
||||||
|
gtk = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
iconTheme = {
|
||||||
|
name = "Papirus-Dark";
|
||||||
|
package = pkgs.papirus-icon-theme;
|
||||||
|
};
|
||||||
|
|
||||||
|
theme = {
|
||||||
|
name = "Gruvbox-Dark";
|
||||||
|
package = pkgs.gruvbox-gtk-theme;
|
||||||
|
};
|
||||||
|
|
||||||
|
cursorTheme = {
|
||||||
|
name = "Numix-Cursor";
|
||||||
|
package = pkgs.numix-cursor-theme;
|
||||||
|
};
|
||||||
|
|
||||||
|
gtk3.extraConfig = {
|
||||||
|
Settings = ''
|
||||||
|
gtk-application-prefer-dark-theme=1
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
gtk4.extraConfig = {
|
||||||
|
Settings = ''
|
||||||
|
gtk-application-prefer-dark-theme=1
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Created with 'dconf dump / | dconf2nix > dconf.nix'
|
||||||
|
dconf = {
|
||||||
|
enable = true;
|
||||||
|
settings = with lib.hm.gvariant; {
|
||||||
|
|
||||||
|
"org/gnome/desktop/background" = {
|
||||||
|
color-shading-type = "solid";
|
||||||
|
picture-options = "zoom";
|
||||||
|
picture-uri = "file:///" + ./wallpaper.jpg;
|
||||||
|
picture-uri-dark = "file:///" + ./wallpaper.jpg;
|
||||||
|
primary-color = "#000000";
|
||||||
|
secondary-color = "#000000";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/screensaver" = {
|
||||||
|
color-shading-type = "solid";
|
||||||
|
picture-options = "zoom";
|
||||||
|
picture-uri = "file:///" + ./wallpaper.jpg;
|
||||||
|
primary-color = "#241f31";
|
||||||
|
secondary-color = "#000000";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/interface" = {
|
||||||
|
accent-color = "blue";
|
||||||
|
color-scheme = "prefer-dark";
|
||||||
|
cursor-theme = "Numix-Cursor";
|
||||||
|
gtk-theme = "Gruvbox-Dark";
|
||||||
|
icon-theme = "Papirus-Dark";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/datetime" = {
|
||||||
|
automatic-timezone = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/input-sources" = {
|
||||||
|
sources = [
|
||||||
|
(mkTuple [
|
||||||
|
"xkb"
|
||||||
|
"us"
|
||||||
|
])
|
||||||
|
];
|
||||||
|
xkb-options = [
|
||||||
|
"compose:menu"
|
||||||
|
"lv3:ralt_switch"
|
||||||
|
"terminate:ctrl_alt_bksp"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/input-sources/xkb-options" = {
|
||||||
|
xkb-options = [
|
||||||
|
"compose:menu"
|
||||||
|
"lv3:ralt_switch"
|
||||||
|
"terminate:ctrl_alt_bksp"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/peripherals/mouse" = {
|
||||||
|
accel-profile = "flat";
|
||||||
|
natural-scroll = false;
|
||||||
|
speed = 0.0;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/search-providers" = {
|
||||||
|
disabled = [
|
||||||
|
"org.gnome.seahorse.Application.desktop"
|
||||||
|
"org.gnome.Epiphany.desktop"
|
||||||
|
"org.gnome.Contacts.desktop"
|
||||||
|
"org.gnome.Calendar.desktop"
|
||||||
|
"org.gnome.Characters.desktop"
|
||||||
|
"org.gnome.clocks.desktop"
|
||||||
|
"org.gnome.Calculator.desktop"
|
||||||
|
];
|
||||||
|
enabled = [ "org.gnome.Weather.desktop" ];
|
||||||
|
sort-order = [
|
||||||
|
"org.gnome.Settings.desktop"
|
||||||
|
"org.gnome.Contacts.desktop"
|
||||||
|
"org.gnome.Nautilus.desktop"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/session" = {
|
||||||
|
idle-delay = mkUint32 480;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/wm/keybindings" = {
|
||||||
|
close = [ "<Super>q" ];
|
||||||
|
maximize = [ "" ];
|
||||||
|
move-to-monitor-left = [ "" ];
|
||||||
|
move-to-monitor-right = [ "" ];
|
||||||
|
move-to-workspace-right = [ "" ];
|
||||||
|
shift-overview-down = [ "" ];
|
||||||
|
shift-overview-up = [ "" ];
|
||||||
|
switch-to-workspace-down = [ "" ];
|
||||||
|
switch-to-workspace-right = [ ];
|
||||||
|
switch-to-workspace-up = [ "" ];
|
||||||
|
toggle-application-view = [ "" ];
|
||||||
|
toggle-message-tray = [ "<Super>a" ];
|
||||||
|
unmaximize = [ "" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/mutter" = {
|
||||||
|
dynamic-workspaces = true;
|
||||||
|
edge-tiling = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/mutter/keybindings" = {
|
||||||
|
toggle-tiled-left = [ "" ];
|
||||||
|
toggle-tiled-right = [ "" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/settings-daemon/plugins/color" = {
|
||||||
|
night-light-enabled = true;
|
||||||
|
night-light-schedule-automatic = true;
|
||||||
|
night-light-schedule-from = 18.0;
|
||||||
|
night-light-schedule-to = 7.0;
|
||||||
|
night-light-temperature = mkUint32 3700;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/settings-daemon/plugins/media-keys" = {
|
||||||
|
custom-keybindings = [
|
||||||
|
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/"
|
||||||
|
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = {
|
||||||
|
binding = "<Super>t";
|
||||||
|
command = "wezterm";
|
||||||
|
name = "Terminal";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1" = {
|
||||||
|
binding = "<Super>f";
|
||||||
|
command = "nautilus";
|
||||||
|
name = "Files";
|
||||||
|
};
|
||||||
|
|
||||||
|
# "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2" = {
|
||||||
|
# binding = "<Super>f";
|
||||||
|
# command = "rofi?";
|
||||||
|
# name = "rofi";
|
||||||
|
# };
|
||||||
|
|
||||||
|
"org/gnome/settings-daemon/plugins/power" = {
|
||||||
|
power-button-action = "hibernate";
|
||||||
|
sleep-inactive-ac-timeout = 1200;
|
||||||
|
sleep-inactive-ac-type = "suspend";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell" = {
|
||||||
|
disable-user-extensions = false;
|
||||||
|
enabled-extensions = [
|
||||||
|
"appindicatorsupport@rgcjonas.gmail.com"
|
||||||
|
"blur-my-shell@aunetx"
|
||||||
|
"clipboard-indicator@tudmotu.com"
|
||||||
|
"color-picker@tuberry"
|
||||||
|
"dash-to-panel@jderose9.github.com"
|
||||||
|
"monitor-brightness-volume@ailin.nemui"
|
||||||
|
"native-window-placement@gnome-shell-extensions.gcampax.github.com"
|
||||||
|
"screenshot-window-sizer@gnome-shell-extensions.gcampax.github.com"
|
||||||
|
"tilingshell@ferrarodomenico.com"
|
||||||
|
"user-theme@gnome-shell-extensions.gcampax.github.com"
|
||||||
|
"Vitals@CoreCoding.com"
|
||||||
|
# pkgs.gnomeExtensions.just-perfection.extensionUuid
|
||||||
|
pkgs.gnomeExtensions.alphabetical-app-grid.extensionUuid
|
||||||
|
pkgs.gnomeExtensions.quick-settings-audio-devices-hider.extensionUuid
|
||||||
|
pkgs.gnomeExtensions.quick-settings-audio-devices-renamer.extensionUuid
|
||||||
|
];
|
||||||
|
favorite-apps = [
|
||||||
|
"org.gnome.Nautilus.desktop"
|
||||||
|
"org.wezfurlong.wezterm.desktop"
|
||||||
|
"win11.desktop"
|
||||||
|
"zen.desktop"
|
||||||
|
"spotify.desktop"
|
||||||
|
"vesktop.desktop"
|
||||||
|
"org.telegram.desktop.desktop"
|
||||||
|
"code.desktop"
|
||||||
|
"fleet-jet.desktop"
|
||||||
|
"steam.desktop"
|
||||||
|
"Marvel Rivals.desktop"
|
||||||
|
"org.prismlauncher.PrismLauncher.desktop"
|
||||||
|
];
|
||||||
|
last-selected-power-profile = "performance";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell/extensions/blur-my-shell" = {
|
||||||
|
settings-version = 2;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell/extensions/blur-my-shell/appfolder" = {
|
||||||
|
brightness = 0.6;
|
||||||
|
sigma = 30;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell/extensions/blur-my-shell/dash-to-dock" = {
|
||||||
|
blur = true;
|
||||||
|
brightness = 0.6;
|
||||||
|
sigma = 30;
|
||||||
|
static-blur = true;
|
||||||
|
style-dash-to-dock = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell/extensions/blur-my-shell/panel" = {
|
||||||
|
brightness = 0.6;
|
||||||
|
sigma = 50;
|
||||||
|
static-blur = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell/extensions/blur-my-shell/window-list" = {
|
||||||
|
brightness = 0.6;
|
||||||
|
sigma = 30;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell/extensions/clipboard-indicator" = {
|
||||||
|
cache-only-favorites = false;
|
||||||
|
cache-size = 120;
|
||||||
|
display-mode = 0;
|
||||||
|
enable-keybindings = true;
|
||||||
|
history-size = 40;
|
||||||
|
notify-on-copy = false;
|
||||||
|
pinned-on-bottom = true;
|
||||||
|
strip-text = false;
|
||||||
|
toggle-menu = [ "<Super>v" ];
|
||||||
|
topbar-preview-size = 10;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell/extensions/color-picker" = {
|
||||||
|
color-history = [
|
||||||
|
(mkUint32 3158064)
|
||||||
|
1447446
|
||||||
|
14538709
|
||||||
|
14637907
|
||||||
|
1447446
|
||||||
|
3355443
|
||||||
|
16777215
|
||||||
|
1644825
|
||||||
|
];
|
||||||
|
color-picker-shortcut = [ "<Super>c" ];
|
||||||
|
enable-notify = true;
|
||||||
|
enable-shortcut = true;
|
||||||
|
enable-systray = true;
|
||||||
|
menu-size = mkUint32 8;
|
||||||
|
notify-style = mkUint32 0;
|
||||||
|
persistent-mode = false;
|
||||||
|
preview-style = mkUint32 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell/extensions/dash-to-panel" = {
|
||||||
|
appicon-margin = 6;
|
||||||
|
appicon-padding = 8;
|
||||||
|
available-monitors = [
|
||||||
|
0
|
||||||
|
1
|
||||||
|
];
|
||||||
|
dot-position = "TOP";
|
||||||
|
dot-style-focused = "DASHES";
|
||||||
|
dot-style-unfocused = "DASHES";
|
||||||
|
multi-monitors = false;
|
||||||
|
panel-positions = ''
|
||||||
|
{"0":"TOP","1":"TOP"}
|
||||||
|
'';
|
||||||
|
primary-monitor = 0;
|
||||||
|
scroll-icon-action = "CYCLE_WINDOWS";
|
||||||
|
scroll-panel-action = "SWITCH_WORKSPACE";
|
||||||
|
trans-panel-opacity = "0.40";
|
||||||
|
trans-use-custom-opacity = true;
|
||||||
|
tray-padding = 8;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell/extensions/tilingshell" = {
|
||||||
|
enable-autotiling = false;
|
||||||
|
enable-smart-window-border-radius = false;
|
||||||
|
enable-window-border = true;
|
||||||
|
inner-gaps = mkUint32 8;
|
||||||
|
last-version-name-installed = "16.2";
|
||||||
|
layouts-json = "[{\"id\":\"Layout 1\",\"tiles\":[{\"x\":0,\"y\":0,\"width\":0.22,\"height\":0.5,\"groups\":[2,1]},{\"x\":0,\"y\":0.5,\"width\":0.22,\"height\":0.5,\"groups\":[1,2]},{\"x\":0.22,\"y\":0,\"width\":0.2794791666666666,\"height\":0.5,\"groups\":[7,5,2]},{\"x\":0.753125,\"y\":0,\"width\":0.24687499999999998,\"height\":0.5,\"groups\":[4,3]},{\"x\":0.753125,\"y\":0.5,\"width\":0.24687499999999998,\"height\":0.5,\"groups\":[4,3]},{\"x\":0.22,\"y\":0.5,\"width\":0.2797395833333334,\"height\":0.5,\"groups\":[5,6,2]},{\"x\":0.49973958333333335,\"y\":0.5,\"width\":0.2533854166666667,\"height\":0.5,\"groups\":[5,3,6]},{\"x\":0.49947916666666664,\"y\":0,\"width\":0.25364583333333346,\"height\":0.5,\"groups\":[3,5,7]}]},{\"id\":\"Layout 2\",\"tiles\":[{\"x\":0,\"y\":0,\"width\":0.22,\"height\":1,\"groups\":[1]},{\"x\":0.22,\"y\":0,\"width\":0.56,\"height\":1,\"groups\":[1,2]},{\"x\":0.78,\"y\":0,\"width\":0.22,\"height\":1,\"groups\":[2]}]},{\"id\":\"985825\",\"tiles\":[{\"x\":0,\"y\":0,\"width\":1,\"height\":0.5,\"groups\":[1]},{\"x\":0,\"y\":0.5,\"width\":1,\"height\":0.5,\"groups\":[1]}]}]";
|
||||||
|
move-window-center = [ "<Super>Return" ];
|
||||||
|
outer-gaps = mkUint32 4;
|
||||||
|
overridden-settings = "{\"org.gnome.mutter.keybindings\":{\"toggle-tiled-right\":\"['<Super>Right']\",\"toggle-tiled-left\":\"['<Super>Left']\"},\"org.gnome.desktop.wm.keybindings\":{\"maximize\":\"['<Super>Up']\",\"unmaximize\":\"['<Super>Down', '<Alt>F5']\"},\"org.gnome.mutter\":{\"edge-tiling\":\"false\"}}";
|
||||||
|
restore-window-original-size = false;
|
||||||
|
selected-layouts = [
|
||||||
|
[
|
||||||
|
"Layout 1"
|
||||||
|
"985825"
|
||||||
|
]
|
||||||
|
[
|
||||||
|
"Layout 1"
|
||||||
|
"985825"
|
||||||
|
]
|
||||||
|
];
|
||||||
|
span-multiple-tiles-activation-key = [ "1" ];
|
||||||
|
span-window-all-tiles = [ "<Control><Super>Page_Up" ];
|
||||||
|
span-window-down = [ "<Alt><Super>Down" ];
|
||||||
|
span-window-left = [ "<Alt><Super>Left" ];
|
||||||
|
span-window-right = [ "<Alt><Super>Right" ];
|
||||||
|
span-window-up = [ "<Alt><Super>Up" ];
|
||||||
|
tiling-system-activation-key = [ "2" ];
|
||||||
|
untile-window = [ "<Control><Super>Page_Down" ];
|
||||||
|
window-border-width = mkUint32 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell/extensions/user-theme" = {
|
||||||
|
name = "Gruvbox-Dark";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell/extensions/vitals" = {
|
||||||
|
alphabetize = true;
|
||||||
|
hide-icons = false;
|
||||||
|
hide-zeros = false;
|
||||||
|
hot-sensors = [
|
||||||
|
"_memory_usage_"
|
||||||
|
"_storage_free_"
|
||||||
|
"_network_public_ip_"
|
||||||
|
"_processor_usage_"
|
||||||
|
"__temperature_avg__"
|
||||||
|
"_system_uptime_"
|
||||||
|
];
|
||||||
|
icon-style = 0;
|
||||||
|
include-static-gpu-info = false;
|
||||||
|
menu-centered = false;
|
||||||
|
position-in-panel = 4;
|
||||||
|
show-gpu = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gtk/gtk4/settings/file-chooser" = {
|
||||||
|
show-hidden = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gtk/settings/file-chooser" = {
|
||||||
|
date-format = "regular";
|
||||||
|
location-mode = "path-bar";
|
||||||
|
show-hidden = true;
|
||||||
|
show-size-column = true;
|
||||||
|
show-type-column = true;
|
||||||
|
sidebar-width = 165;
|
||||||
|
sort-column = "name";
|
||||||
|
sort-directories-first = true;
|
||||||
|
sort-order = "ascending";
|
||||||
|
type-format = "category";
|
||||||
|
window-position = mkTuple [
|
||||||
|
102
|
||||||
|
102
|
||||||
|
];
|
||||||
|
window-size = mkTuple [
|
||||||
|
1231
|
||||||
|
902
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/virt-manager/virt-manager/connections" = {
|
||||||
|
autoconnect = [
|
||||||
|
"qemu:///session"
|
||||||
|
"qemu:///system"
|
||||||
|
];
|
||||||
|
uris = [
|
||||||
|
"qemu:///session"
|
||||||
|
"qemu:///system"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/virt-manager/virt-manager/vmlist-fields" = {
|
||||||
|
disk-usage = true;
|
||||||
|
network-traffic = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
Before Width: | Height: | Size: 2.9 MiB After Width: | Height: | Size: 2.9 MiB |
179
home/toph/common/optional/hyprland/binds.nix
Normal file
|
@ -0,0 +1,179 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
inputs,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
## Functions, Variables and Launchers ##
|
||||||
|
|
||||||
|
# colorpicker = exec ./scripts/colorpicker.fish;
|
||||||
|
# lockscreen = exec ./scripts/lockscreen.fish;
|
||||||
|
# notify = exec ./scripts/notify.fish;
|
||||||
|
# wlogout = exec ./scripts/wlogout.fish;
|
||||||
|
#gtk-play = "${pkgs.libcanberra-gtk3}/bin/canberra-gtk-play";
|
||||||
|
#makoctl = "${config.services.mako.package}/bin/makoctl";
|
||||||
|
#notify-send = "${pkgs.libnotify}/bin/notify-send";
|
||||||
|
#playerctl = lib.getExe pkgs.playerctl; # installed via /home/common/optional/desktops/playerctl.nix
|
||||||
|
#swaylock = "lib.getExe pkgs.swaylock;
|
||||||
|
|
||||||
|
betterControl = inputs.better-control.packages.${pkgs.system}.better-control;
|
||||||
|
|
||||||
|
defaultApp =
|
||||||
|
type: "${pkgs.gtk3}/bin/gtk-launch $(${pkgs.xdg-utils}/bin/xdg-mime query default ${type})";
|
||||||
|
exec = script: "${pkgs.fish}/bin/fish ${script}";
|
||||||
|
|
||||||
|
files = "${pkgs.nautilus}/bin/nautilus $HOME";
|
||||||
|
browser = defaultApp "x-scheme-handler/https";
|
||||||
|
editor = "code";
|
||||||
|
launcher = "${pkgs.walker}/bin/walker --modules applications,ssh";
|
||||||
|
pactl = lib.getExe' pkgs.pulseaudio "pactl";
|
||||||
|
terminal = exec (import ./scripts/terminal.nix { inherit pkgs; });
|
||||||
|
brightness = exec (import ./scripts/brightness.nix { inherit pkgs lib; });
|
||||||
|
|
||||||
|
## Long ass keys ##
|
||||||
|
lowerVol = "XF86AudioLowerVolume";
|
||||||
|
raiseVol = "XF86AudioRaiseVolume";
|
||||||
|
brightUp = "XF86MonBrightnessUp";
|
||||||
|
brightDown = "XF86MonBrightnessDown";
|
||||||
|
|
||||||
|
## Keybinds & Submaps ##
|
||||||
|
|
||||||
|
#INFO: Did this scripts to avoid the shitty hyprland config implementation for nix :)
|
||||||
|
submaps = {
|
||||||
|
## Submap: Reset ##
|
||||||
|
"" = {
|
||||||
|
binds = {
|
||||||
|
## One-Shot Binds ##
|
||||||
|
"" = [
|
||||||
|
## Terminal ##
|
||||||
|
"SUPER, T, exec, ${terminal}"
|
||||||
|
# "SUPER_SHIFT, T, exec, ${terminal}" # Floating
|
||||||
|
# "SUPER_ALT, T, exec, ${terminal}" # Select
|
||||||
|
|
||||||
|
## App Runs ##
|
||||||
|
"SUPER, F, exec, ${files}"
|
||||||
|
"SUPER, E, exec, ${editor}"
|
||||||
|
"SUPER, W, exec, ${browser}"
|
||||||
|
"SUPER, N, exec, nm-connection-editor"
|
||||||
|
|
||||||
|
## Launcher ##
|
||||||
|
"SUPER, SUPER_L, exec, ${launcher}"
|
||||||
|
# "SUPER, SUPER_L, exec, ${launcher} --app launcher"
|
||||||
|
# "SUPER, P, exec, ${launcher} --app color" # Color Picker
|
||||||
|
# "SUPER, V, exec, ${launcher} --app clip" # Clipboard
|
||||||
|
# "SUPER, X, exec, ${launcher} --app power" # Power Menu
|
||||||
|
"SUPER, X, exec, ${lib.getExe betterControl} -pm" # Power Menu
|
||||||
|
|
||||||
|
## System ##
|
||||||
|
"SUPER, L, exec, hyprlock"
|
||||||
|
# "SUPER, L, exec, ${lockscreen}"
|
||||||
|
"SUPER, Q, killactive,"
|
||||||
|
"CTRL_ALT, Delete, exec, uwsm stop"
|
||||||
|
", ${brightUp}, exec, ${brightness} + 10"
|
||||||
|
", ${brightDown}, exec, ${brightness} - 10"
|
||||||
|
|
||||||
|
## Window Management ##
|
||||||
|
"SUPER_SHIFT, F, fullscreen, 0"
|
||||||
|
"SUPER_ALT, F, fullscreenstate, 0 3"
|
||||||
|
# "SUPER, F, exec, ${notify} 'Fullscreen Mode'"
|
||||||
|
"SUPER, Backspace, togglefloating,"
|
||||||
|
"SUPER, Backspace, centerwindow,"
|
||||||
|
"SUPER, left, scroller:movefocus, l"
|
||||||
|
"SUPER, right, scroller:movefocus, r"
|
||||||
|
"SUPER, up, scroller:movefocus, u"
|
||||||
|
"SUPER, down, scroller:movefocus, d"
|
||||||
|
"SUPER_SHIFT, left, scroller:movewindow, l, nomode"
|
||||||
|
"SUPER_SHIFT, right, scroller:movewindow, r, nomode"
|
||||||
|
"SUPER_SHIFT, up, scroller:movewindow, u, nomode"
|
||||||
|
"SUPER_SHIFT, down, scroller:movewindow, d, nomode"
|
||||||
|
"SUPER_SHIFT, P, pin,"
|
||||||
|
# "SUPER_SHIFT, P, exec, ${notify} 'Toggled Pin'"
|
||||||
|
"SUPER_SHIFT, S, swapnext"
|
||||||
|
# "SUPER_SHIFT, O, toggleopaque"
|
||||||
|
"SUPER, G, togglegroup"
|
||||||
|
# "SUPER, G, exec, ${notify} 'Toggled Group'"
|
||||||
|
"SUPER, Tab, changegroupactive, f"
|
||||||
|
|
||||||
|
# ## Workspaces ##
|
||||||
|
# ", Home, hyprexpo:expo, toggle"
|
||||||
|
", Home, overview:toggle"
|
||||||
|
"ALT, Tab, cyclenext,"
|
||||||
|
"ALT, Tab, bringactivetotop,"
|
||||||
|
"SUPER, 1, workspace, 1"
|
||||||
|
"SUPER, 2, workspace, 2"
|
||||||
|
"SUPER, 3, workspace, 3"
|
||||||
|
"SUPER, 4, workspace, 4"
|
||||||
|
"SUPER_ALT, G, exec, ${steam-map} on ${monitors-json}"
|
||||||
|
|
||||||
|
## Scroller ##
|
||||||
|
"SUPER, P, scroller:pin"
|
||||||
|
"SUPER, P, scroller:alignwindow, left"
|
||||||
|
"SUPER, P, scroller:setsize, onethird"
|
||||||
|
# "\\notify"
|
||||||
|
"SUPER_SHIFT, P, scroller:pin"
|
||||||
|
"SUPER_SHIFT, P, scroller:alignwindow, right"
|
||||||
|
"SUPER_SHIFT, P, scroller:setsize, onethird"
|
||||||
|
# "\\notify"
|
||||||
|
"SUPER, A, scroller:jump"
|
||||||
|
# F20 - F23
|
||||||
|
", code:198, scroller:selectiontoggle"
|
||||||
|
", code:199, scroller:selectionworkspace"
|
||||||
|
", code:200, scroller:selectionmove, e"
|
||||||
|
", code:201, scroller:selectionreset"
|
||||||
|
|
||||||
|
];
|
||||||
|
|
||||||
|
## Repeating Binds ##
|
||||||
|
e = [
|
||||||
|
"SUPER_ALT, left, scroller:cyclewidth, next"
|
||||||
|
"SUPER_ALT, right, scroller:cyclewidth, prev"
|
||||||
|
"SUPER_ALT, up, scroller:cycleheight, next"
|
||||||
|
"SUPER_ALT, down, scroller:cycleheight, prev"
|
||||||
|
# "SUPER_ALT, left, resizeactive, -20 0"
|
||||||
|
# "SUPER_ALT, right, resizeactive, 20 0"
|
||||||
|
# "SUPER_ALT, up, resizeactive, 0 -20"
|
||||||
|
# "SUPER_ALT, down, resizeactive, 0 20"
|
||||||
|
", ${raiseVol}, exec, ${pactl} set-sink-volume @DEFAULT_SINK@ +5%"
|
||||||
|
", ${lowerVol}, exec, ${pactl} set-sink-volume @DEFAULT_SINK@ -5%"
|
||||||
|
", ${raiseVol}, exec, ${pactl} set-source-volume @DEFAULT_SOURCE@ +5%"
|
||||||
|
", ${lowerVol}, exec, ${pactl} set-source-volume @DEFAULT_SOURCE@ -5%"
|
||||||
|
];
|
||||||
|
|
||||||
|
## Mouse Binds ##
|
||||||
|
m = [
|
||||||
|
", mouse:275, movewindow"
|
||||||
|
", mouse:276, resizewindow"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
## Submap: Steam ##
|
||||||
|
steam = {
|
||||||
|
binds = {
|
||||||
|
"" = [
|
||||||
|
"SUPER, Escape, exec, ${steam-map} off ${monitors-json}"
|
||||||
|
];
|
||||||
|
n = [
|
||||||
|
"SUPER, SUPER_L, pass"
|
||||||
|
", mouse:275, pass"
|
||||||
|
", mouse:276, pass"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
steam-map = import ./scripts/steam-map.nix { inherit pkgs; };
|
||||||
|
monitors-json = pkgs.writeText "monitors.json" (builtins.toJSON config.monitors);
|
||||||
|
|
||||||
|
submaps-script = import ./scripts/submaps.nix { inherit pkgs; };
|
||||||
|
submaps-json = pkgs.writeText "submaps.json" (builtins.toJSON submaps);
|
||||||
|
submaps-run = pkgs.runCommand "submaps-run" { inherit submaps-json submaps-script; } ''
|
||||||
|
mkdir -p $out
|
||||||
|
${pkgs.fish}/bin/fish ${submaps-script} ${submaps-json} > $out/submaps-out
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
{
|
||||||
|
wayland.windowManager.hyprland.extraConfig = builtins.readFile "${submaps-run}/submaps-out";
|
||||||
|
}
|
190
home/toph/common/optional/hyprland/default.nix
Normal file
|
@ -0,0 +1,190 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
inputs,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = lib.custom.scanPaths ./.;
|
||||||
|
|
||||||
|
wayland.windowManager.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
systemd.enable = false; # using withUWSM
|
||||||
|
package = null;
|
||||||
|
portalPackage = null;
|
||||||
|
|
||||||
|
# systemd = {
|
||||||
|
# enable = true;
|
||||||
|
# variables = [ "--all" ];
|
||||||
|
# extraCommands = lib.mkBefore [
|
||||||
|
# "systemctl --user stop graphical-session.target"
|
||||||
|
# "systemctl --user start hyprland-session.target"
|
||||||
|
# ];
|
||||||
|
# };
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
## Environment Vars ##
|
||||||
|
env = [
|
||||||
|
"NIXOS_XDG_OPEN_USE_PORTAL, 1" # for xdg-open to use portal
|
||||||
|
"NIXOS_OZONE_WL, 1" # for ozone-based and electron apps to run on wayland
|
||||||
|
"MOZ_ENABLE_WAYLAND, 1" # for firefox to run on wayland
|
||||||
|
"MOZ_WEBRENDER, 1" # for firefox to run on wayland
|
||||||
|
"XDG_SESSION_TYPE, wayland"
|
||||||
|
"XDG_SESSION_DESKTOP, Hyprland"
|
||||||
|
"XDG_CURRENT_DESKTOP, Hyprland"
|
||||||
|
"WLR_NO_HARDWARE_CURSORS, 1"
|
||||||
|
"WLR_RENDERER_ALLOW_SOFTWARE, 1"
|
||||||
|
"QT_QPA_PLATFORM, wayland"
|
||||||
|
"GTK_USE_PORTAL, 1"
|
||||||
|
"HYPRCURSOR_THEME, rose-pine-hyprcursor" # this will be better than default for now
|
||||||
|
];
|
||||||
|
|
||||||
|
xwayland = {
|
||||||
|
force_zero_scaling = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
## Monitor ##
|
||||||
|
|
||||||
|
monitor = (
|
||||||
|
# INFO: parse the monitors defined in home/<user>/<host>/default.nix
|
||||||
|
map (
|
||||||
|
m:
|
||||||
|
"${m.name},${
|
||||||
|
if m.enabled then
|
||||||
|
"${toString m.width}x${toString m.height}@${toString m.refreshRate},${toString m.x}x${toString m.y},${toString m.scale},transform,${toString m.transform},vrr,${toString m.vrr}"
|
||||||
|
else
|
||||||
|
"disable"
|
||||||
|
}"
|
||||||
|
) (config.monitors)
|
||||||
|
);
|
||||||
|
|
||||||
|
# This used to be usefull now its just overkill
|
||||||
|
# Creates 1 persistent workspaces for all monitors
|
||||||
|
workspace =
|
||||||
|
let
|
||||||
|
json = pkgs.writeTextFile {
|
||||||
|
name = "monitors.json";
|
||||||
|
text = builtins.toJSON config.monitors;
|
||||||
|
};
|
||||||
|
parse = pkgs.runCommand "parse-workspaces" { } ''
|
||||||
|
mkdir "$out"; ${pkgs.jq}/bin/jq -r '
|
||||||
|
[ to_entries[] |
|
||||||
|
(.key as $i | .value.name as $name |
|
||||||
|
[ range(1;2) | ($i * 1 + .) as $wsnum |
|
||||||
|
if . == 0 then "\($wsnum), monitor:\($name), default:true, persistent:true"
|
||||||
|
else "\($wsnum), monitor:\($name)" end
|
||||||
|
]
|
||||||
|
)
|
||||||
|
] | flatten
|
||||||
|
' ${json} > "$out/out.json"
|
||||||
|
'';
|
||||||
|
output = builtins.fromJSON (builtins.readFile "${parse}/out.json");
|
||||||
|
in
|
||||||
|
output;
|
||||||
|
|
||||||
|
## Behavior ##
|
||||||
|
|
||||||
|
binds = {
|
||||||
|
workspace_center_on = 1;
|
||||||
|
movefocus_cycles_fullscreen = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
input = {
|
||||||
|
follow_mouse = 2;
|
||||||
|
mouse_refocus = false;
|
||||||
|
kb_options = "fkeys:basic_13-24";
|
||||||
|
sensitivity = 0.5;
|
||||||
|
};
|
||||||
|
|
||||||
|
cursor = {
|
||||||
|
inactive_timeout = 10;
|
||||||
|
};
|
||||||
|
|
||||||
|
misc = {
|
||||||
|
disable_hyprland_logo = true;
|
||||||
|
animate_manual_resizes = true;
|
||||||
|
animate_mouse_windowdragging = true;
|
||||||
|
#disable_autoreload = true;
|
||||||
|
new_window_takes_over_fullscreen = 2;
|
||||||
|
middle_click_paste = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
group = {
|
||||||
|
drag_into_group = 2;
|
||||||
|
merge_groups_on_drag = true;
|
||||||
|
# col.border_active = "";
|
||||||
|
# col.border_inactive = "";
|
||||||
|
groupbar = {
|
||||||
|
enabled = true;
|
||||||
|
height = 12;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
dwindle = {
|
||||||
|
pseudotile = false;
|
||||||
|
force_split = 0;
|
||||||
|
smart_split = true;
|
||||||
|
split_bias = 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
## Appearance ##
|
||||||
|
|
||||||
|
general = {
|
||||||
|
layout = "scroller";
|
||||||
|
border_size = 2;
|
||||||
|
gaps_in = 6;
|
||||||
|
gaps_out = 6;
|
||||||
|
# "col.inactive_border" = "rgb(191b1c)";
|
||||||
|
# "col.active_border" = "rgb(1cbdd9) rgb(f6ef9d) 30deg";
|
||||||
|
allow_tearing = true; # used to reduce latency and/or jitter in games
|
||||||
|
snap = {
|
||||||
|
enabled = true;
|
||||||
|
window_gap = 6;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
decoration = {
|
||||||
|
rounding = 10;
|
||||||
|
rounding_power = 4.0;
|
||||||
|
active_opacity = 0.85;
|
||||||
|
inactive_opacity = 0.75;
|
||||||
|
fullscreen_opacity = 1.0;
|
||||||
|
dim_inactive = true;
|
||||||
|
dim_strength = 0.2;
|
||||||
|
blur = {
|
||||||
|
enabled = true;
|
||||||
|
size = 7;
|
||||||
|
passes = 3;
|
||||||
|
new_optimizations = true;
|
||||||
|
ignore_opacity = true;
|
||||||
|
xray = true;
|
||||||
|
# noise = 0.15;
|
||||||
|
popups = true;
|
||||||
|
};
|
||||||
|
shadow = {
|
||||||
|
enabled = true;
|
||||||
|
range = 30;
|
||||||
|
render_power = 2;
|
||||||
|
scale = 1.5;
|
||||||
|
# color = "rgb(191b1c)";
|
||||||
|
# color_inactive = "rgb(191b1c)";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
animation = [
|
||||||
|
"windowsIn, 1, 5 ,default, popin 0%"
|
||||||
|
"windowsOut, 1, 5 ,default, popin"
|
||||||
|
"windowsMove, 1, 5 ,default, slide"
|
||||||
|
"fadeIn, 1, 8 ,default"
|
||||||
|
"fadeOut, 1, 8 ,default"
|
||||||
|
"fadeSwitch, 1, 8 ,default"
|
||||||
|
"fadeShadow, 1, 8 ,default"
|
||||||
|
"fadeDim, 1, 8 ,default"
|
||||||
|
"border, 1, 10 ,default"
|
||||||
|
"workspaces, 1, 5 ,default, slide"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
68
home/toph/common/optional/hyprland/plugins.nix
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
{ pkgs, inputs, ... }:
|
||||||
|
{
|
||||||
|
|
||||||
|
home.packages = [
|
||||||
|
# pkgs.hyprlandPlugins.hyprexpo
|
||||||
|
pkgs.hyprlandPlugins.hyprspace
|
||||||
|
pkgs.hyprlandPlugins.hyprscroller
|
||||||
|
];
|
||||||
|
|
||||||
|
wayland.windowManager.hyprland = {
|
||||||
|
plugins = [
|
||||||
|
# pkgs.hyprlandPlugins.hyprexpo
|
||||||
|
pkgs.hyprlandPlugins.hyprspace
|
||||||
|
pkgs.hyprlandPlugins.hyprscroller
|
||||||
|
];
|
||||||
|
|
||||||
|
# TODO: Colors and Theme
|
||||||
|
settings = {
|
||||||
|
windowrulev2 = [
|
||||||
|
"bordercolor rgb(191b1c) rgb(ffffff) 25deg, tag: scroller:pinned"
|
||||||
|
];
|
||||||
|
|
||||||
|
plugin = {
|
||||||
|
# hyprexpo = {
|
||||||
|
# columns = 3;
|
||||||
|
# gap_size = 5;
|
||||||
|
# bg_col = "rgb(000000)";
|
||||||
|
# workspace_method = "center current"; # [center/first] [workspace] e.g. first 1 or center m+1
|
||||||
|
# };
|
||||||
|
overview = {
|
||||||
|
centerAligned = true;
|
||||||
|
hideOverlayLayers = true;
|
||||||
|
showSpecialWorkspaces = true;
|
||||||
|
};
|
||||||
|
scroller = {
|
||||||
|
mode = "row";
|
||||||
|
center_active_column = true;
|
||||||
|
center_active_window = false;
|
||||||
|
focus_wrap = true;
|
||||||
|
overview_scale_content = false;
|
||||||
|
"col.selection_border" = "rgb(191b1c)";
|
||||||
|
jump_labels_font = "Monocraft";
|
||||||
|
jump_labels_color = "rgb(ffffff)";
|
||||||
|
jump_labels_scale = "0.1";
|
||||||
|
jump_labels_keys = "qwfpgarstd";
|
||||||
|
# monitor_options = ''
|
||||||
|
# (
|
||||||
|
# DP-1 = (
|
||||||
|
# mode = row;
|
||||||
|
# column_default_width = onehalf;
|
||||||
|
# column_widths = onehalf onethird twothirds threefourths;
|
||||||
|
# window_default_height = seveneighths;
|
||||||
|
# window_heights = seveneighths onehalf onethird twothirds
|
||||||
|
# ),
|
||||||
|
# HDMI-A-2 = (
|
||||||
|
# mode = col;
|
||||||
|
# column_default_width = one;
|
||||||
|
# column_widths = one onehalf;
|
||||||
|
# window_default_height = twothirds;
|
||||||
|
# window_heights = seveneighths onehalf onethird twothirds
|
||||||
|
# ),
|
||||||
|
# )'';
|
||||||
|
monitor_options = "(DP-1 = (mode = row;column_default_width = onehalf;column_widths = seveneighths threequarters twothirds onehalf onethird;window_default_height = one;window_heights = one seveneighths twothirds onehalf onethird),HDMI-A-2 = (mode = col; column_default_width = one;column_widths = one onehalf;window_default_height = twothirds;window_heights = seveneighths twothirds onehalf onethird),)";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
38
home/toph/common/optional/hyprland/programs/hyprlock.nix
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
{ lib, ... }:
|
||||||
|
{
|
||||||
|
programs.hyprlock = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
general = {
|
||||||
|
disable_loading_bar = true;
|
||||||
|
immediate_render = true;
|
||||||
|
hide_cursor = false;
|
||||||
|
no_fade_in = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
background = lib.mkDefault [
|
||||||
|
{
|
||||||
|
path = "screenshot";
|
||||||
|
blur_passes = 3;
|
||||||
|
blur_size = 8;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
input-field = lib.mkDefault [
|
||||||
|
{
|
||||||
|
size = "200, 50";
|
||||||
|
position = "0, -80";
|
||||||
|
monitor = "";
|
||||||
|
dots_center = true;
|
||||||
|
fade_on_empty = false;
|
||||||
|
font_color = "rgb(202, 211, 245)";
|
||||||
|
inner_color = "rgb(91, 96, 120)";
|
||||||
|
outer_color = "rgb(24, 25, 38)";
|
||||||
|
outline_thickness = 5;
|
||||||
|
shadow_passes = 2;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
248
home/toph/common/optional/hyprland/programs/walker/config.toml
Normal file
|
@ -0,0 +1,248 @@
|
||||||
|
app_launch_prefix = ""
|
||||||
|
terminal_title_flag = ""
|
||||||
|
locale = ""
|
||||||
|
close_when_open = false
|
||||||
|
theme = "default"
|
||||||
|
monitor = ""
|
||||||
|
hotreload_theme = false
|
||||||
|
as_window = false
|
||||||
|
timeout = 0
|
||||||
|
disable_click_to_close = false
|
||||||
|
force_keyboard_focus = true
|
||||||
|
|
||||||
|
[keys]
|
||||||
|
accept_typeahead = ["tab"]
|
||||||
|
trigger_labels = "lalt"
|
||||||
|
next = ["down"]
|
||||||
|
prev = ["up"]
|
||||||
|
close = ["esc"]
|
||||||
|
remove_from_history = ["shift backspace"]
|
||||||
|
resume_query = ["ctrl r"]
|
||||||
|
toggle_exact_search = ["ctrl m"]
|
||||||
|
|
||||||
|
[keys.activation_modifiers]
|
||||||
|
keep_open = "shift"
|
||||||
|
alternate = "alt"
|
||||||
|
|
||||||
|
[keys.ai]
|
||||||
|
clear_session = ["ctrl x"]
|
||||||
|
copy_last_response = ["ctrl c"]
|
||||||
|
resume_session = ["ctrl r"]
|
||||||
|
run_last_response = ["ctrl e"]
|
||||||
|
|
||||||
|
[events]
|
||||||
|
on_activate = ""
|
||||||
|
on_selection = ""
|
||||||
|
on_exit = ""
|
||||||
|
on_launch = ""
|
||||||
|
on_query_change = ""
|
||||||
|
|
||||||
|
[list]
|
||||||
|
dynamic_sub = true
|
||||||
|
keyboard_scroll_style = "emacs"
|
||||||
|
max_entries = 50
|
||||||
|
show_initial_entries = true
|
||||||
|
single_click = true
|
||||||
|
visibility_threshold = 20
|
||||||
|
placeholder = "No Results"
|
||||||
|
|
||||||
|
[search]
|
||||||
|
argument_delimiter = "#"
|
||||||
|
placeholder = "Search..."
|
||||||
|
delay = 0
|
||||||
|
resume_last_query = false
|
||||||
|
|
||||||
|
[activation_mode]
|
||||||
|
labels = "jkl;asdf"
|
||||||
|
|
||||||
|
[builtins.applications]
|
||||||
|
weight = 5
|
||||||
|
name = "applications"
|
||||||
|
placeholder = "Applications"
|
||||||
|
prioritize_new = true
|
||||||
|
hide_actions_with_empty_query = true
|
||||||
|
context_aware = true
|
||||||
|
refresh = true
|
||||||
|
show_sub_when_single = true
|
||||||
|
show_icon_when_single = true
|
||||||
|
show_generic = true
|
||||||
|
history = true
|
||||||
|
|
||||||
|
[builtins.applications.actions]
|
||||||
|
enabled = true
|
||||||
|
hide_category = false
|
||||||
|
hide_without_query = true
|
||||||
|
|
||||||
|
[builtins.bookmarks]
|
||||||
|
weight = 5
|
||||||
|
placeholder = "Bookmarks"
|
||||||
|
name = "bookmarks"
|
||||||
|
icon = "bookmark"
|
||||||
|
switcher_only = true
|
||||||
|
|
||||||
|
[[builtins.bookmarks.entries]]
|
||||||
|
label = "Walker"
|
||||||
|
url = "https://github.com/abenz1267/walker"
|
||||||
|
keywords = ["walker", "github"]
|
||||||
|
|
||||||
|
[builtins.xdph_picker]
|
||||||
|
hidden = true
|
||||||
|
weight = 5
|
||||||
|
placeholder = "Screen/Window Picker"
|
||||||
|
show_sub_when_single = true
|
||||||
|
name = "xdphpicker"
|
||||||
|
switcher_only = true
|
||||||
|
|
||||||
|
[builtins.ai]
|
||||||
|
weight = 5
|
||||||
|
placeholder = "AI"
|
||||||
|
name = "ai"
|
||||||
|
icon = "help-browser"
|
||||||
|
switcher_only = true
|
||||||
|
|
||||||
|
[[builtins.ai.anthropic.prompts]]
|
||||||
|
model = "claude-3-5-sonnet-20241022"
|
||||||
|
temperature = 1
|
||||||
|
max_tokens = 1_000
|
||||||
|
label = "General Assistant"
|
||||||
|
prompt = "You are a helpful general assistant. Keep your answers short and precise."
|
||||||
|
|
||||||
|
[builtins.calc]
|
||||||
|
require_number = true
|
||||||
|
weight = 5
|
||||||
|
name = "calc"
|
||||||
|
icon = "accessories-calculator"
|
||||||
|
placeholder = "Calculator"
|
||||||
|
min_chars = 4
|
||||||
|
|
||||||
|
[builtins.windows]
|
||||||
|
weight = 5
|
||||||
|
icon = "view-restore"
|
||||||
|
name = "windows"
|
||||||
|
placeholder = "Windows"
|
||||||
|
show_icon_when_single = true
|
||||||
|
|
||||||
|
[builtins.clipboard]
|
||||||
|
always_put_new_on_top = true
|
||||||
|
exec = "wl-copy"
|
||||||
|
weight = 5
|
||||||
|
name = "clipboard"
|
||||||
|
avoid_line_breaks = true
|
||||||
|
placeholder = "Clipboard"
|
||||||
|
image_height = 300
|
||||||
|
max_entries = 10
|
||||||
|
switcher_only = true
|
||||||
|
|
||||||
|
[builtins.commands]
|
||||||
|
weight = 5
|
||||||
|
icon = "utilities-terminal"
|
||||||
|
switcher_only = true
|
||||||
|
name = "commands"
|
||||||
|
placeholder = "Commands"
|
||||||
|
|
||||||
|
[builtins.custom_commands]
|
||||||
|
weight = 5
|
||||||
|
icon = "utilities-terminal"
|
||||||
|
name = "custom_commands"
|
||||||
|
placeholder = "Custom Commands"
|
||||||
|
|
||||||
|
[builtins.emojis]
|
||||||
|
exec = "wl-copy"
|
||||||
|
weight = 5
|
||||||
|
name = "emojis"
|
||||||
|
placeholder = "Emojis"
|
||||||
|
switcher_only = true
|
||||||
|
history = true
|
||||||
|
typeahead = true
|
||||||
|
show_unqualified = false
|
||||||
|
|
||||||
|
[builtins.symbols]
|
||||||
|
after_copy = ""
|
||||||
|
weight = 5
|
||||||
|
name = "symbols"
|
||||||
|
placeholder = "Symbols"
|
||||||
|
switcher_only = true
|
||||||
|
history = true
|
||||||
|
typeahead = true
|
||||||
|
|
||||||
|
[builtins.finder]
|
||||||
|
use_fd = false
|
||||||
|
weight = 5
|
||||||
|
icon = "file"
|
||||||
|
name = "finder"
|
||||||
|
placeholder = "Finder"
|
||||||
|
switcher_only = true
|
||||||
|
ignore_gitignore = true
|
||||||
|
refresh = true
|
||||||
|
concurrency = 8
|
||||||
|
show_icon_when_single = true
|
||||||
|
preview_images = false
|
||||||
|
|
||||||
|
[builtins.runner]
|
||||||
|
eager_loading = true
|
||||||
|
weight = 5
|
||||||
|
icon = "utilities-terminal"
|
||||||
|
name = "runner"
|
||||||
|
placeholder = "Runner"
|
||||||
|
typeahead = true
|
||||||
|
history = true
|
||||||
|
generic_entry = false
|
||||||
|
refresh = true
|
||||||
|
use_fd = false
|
||||||
|
|
||||||
|
[builtins.ssh]
|
||||||
|
weight = 5
|
||||||
|
icon = "preferences-system-network"
|
||||||
|
name = "ssh"
|
||||||
|
placeholder = "SSH"
|
||||||
|
switcher_only = true
|
||||||
|
history = true
|
||||||
|
refresh = true
|
||||||
|
|
||||||
|
[builtins.switcher]
|
||||||
|
weight = 5
|
||||||
|
name = "switcher"
|
||||||
|
placeholder = "Switcher"
|
||||||
|
prefix = "/"
|
||||||
|
|
||||||
|
[builtins.websearch]
|
||||||
|
keep_selection = true
|
||||||
|
weight = 5
|
||||||
|
icon = "applications-internet"
|
||||||
|
name = "websearch"
|
||||||
|
placeholder = "Websearch"
|
||||||
|
|
||||||
|
[[builtins.websearch.entries]]
|
||||||
|
name = "Google"
|
||||||
|
url = "https://www.google.com/search?q=%TERM%"
|
||||||
|
|
||||||
|
[[builtins.websearch.entries]]
|
||||||
|
name = "DuckDuckGo"
|
||||||
|
url = "https://duckduckgo.com/?q=%TERM%"
|
||||||
|
switcher_only = true
|
||||||
|
|
||||||
|
[[builtins.websearch.entries]]
|
||||||
|
name = "Ecosia"
|
||||||
|
url = "https://www.ecosia.org/search?q=%TERM%"
|
||||||
|
switcher_only = true
|
||||||
|
|
||||||
|
[[builtins.websearch.entries]]
|
||||||
|
name = "Yandex"
|
||||||
|
url = "https://yandex.com/search/?text=%TERM%"
|
||||||
|
switcher_only = true
|
||||||
|
|
||||||
|
[builtins.dmenu]
|
||||||
|
hidden = true
|
||||||
|
weight = 5
|
||||||
|
name = "dmenu"
|
||||||
|
placeholder = "Dmenu"
|
||||||
|
switcher_only = true
|
||||||
|
|
||||||
|
[builtins.translation]
|
||||||
|
delay = 1000
|
||||||
|
weight = 5
|
||||||
|
name = "translation"
|
||||||
|
icon = "accessories-dictionary"
|
||||||
|
placeholder = "Translation"
|
||||||
|
switcher_only = true
|
||||||
|
provider = "googlefree"
|
|
@ -0,0 +1,13 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
home.packages = [ pkgs.walker ];
|
||||||
|
|
||||||
|
wayland.windowManager.hyprland.settings.exec-once = [
|
||||||
|
''walker --gapplication-service''
|
||||||
|
];
|
||||||
|
|
||||||
|
home.file."~/.config/walker/config.toml" = {
|
||||||
|
source = ./config.toml;
|
||||||
|
target = ".config/walker/config.toml";
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
{ pkgs, inputs, ... }:
|
||||||
|
{
|
||||||
|
home.packages = [
|
||||||
|
inputs.watershot.packages.${pkgs.system}.default
|
||||||
|
pkgs.grim
|
||||||
|
];
|
||||||
|
|
||||||
|
home.file.".config/watershot.ron" = {
|
||||||
|
source = ./watershot.ron;
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,25 @@
|
||||||
|
Config(
|
||||||
|
handle_radius: 10,
|
||||||
|
line_width: 2,
|
||||||
|
display_highlight_width: 5,
|
||||||
|
selection_color: Color(
|
||||||
|
r: 0.38,
|
||||||
|
g: 0.68,
|
||||||
|
b: 0.94,
|
||||||
|
a: 1.0,
|
||||||
|
),
|
||||||
|
shade_color: Color(
|
||||||
|
r: 0.11,
|
||||||
|
g: 0.0,
|
||||||
|
b: 0.11,
|
||||||
|
a: 0.6,
|
||||||
|
),
|
||||||
|
text_color: Color(
|
||||||
|
r: 1.0,
|
||||||
|
g: 1.0,
|
||||||
|
b: 1.0,
|
||||||
|
a: 1.0,
|
||||||
|
),
|
||||||
|
mode_text_size: 50,
|
||||||
|
font_family: "monospace",
|
||||||
|
)
|
134
home/toph/common/optional/hyprland/rules.nix
Normal file
|
@ -0,0 +1,134 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
let
|
||||||
|
# Zen extensions to float
|
||||||
|
zen-script = import ./scripts/zen-float.nix { inherit pkgs; };
|
||||||
|
zen-json = pkgs.writeText "zen-extensions.json" (builtins.toJSON zen-extensions);
|
||||||
|
zen-extensions = {
|
||||||
|
bitwarden = {
|
||||||
|
regex = "'*(Bitwarden Password Manager) - Bitwarden*'";
|
||||||
|
x = 500;
|
||||||
|
y = 900;
|
||||||
|
};
|
||||||
|
authenticator = {
|
||||||
|
regex = "'*(Authenticator) - Authenticator*'";
|
||||||
|
x = 335;
|
||||||
|
y = 525;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
wayland.windowManager.hyprland.settings = {
|
||||||
|
|
||||||
|
# Floats zen extensions
|
||||||
|
exec-once = [
|
||||||
|
"${pkgs.fish}/bin/fish ${zen-script} ${zen-json}"
|
||||||
|
];
|
||||||
|
|
||||||
|
## Layers Rules ##
|
||||||
|
|
||||||
|
layer = [
|
||||||
|
#"blur, rofi"
|
||||||
|
#"ignorezero, rofi"
|
||||||
|
#"ignorezero, logout_dialog"
|
||||||
|
];
|
||||||
|
|
||||||
|
## Window Rules ##
|
||||||
|
|
||||||
|
windowrulev2 = [
|
||||||
|
# Dialogs
|
||||||
|
"float, title:^(Open File)(.*)$"
|
||||||
|
"float, title:^(Select a File)(.*)$"
|
||||||
|
"float, title:^(Choose wallpaper)(.*)$"
|
||||||
|
"float, title:^(Open Folder)(.*)$"
|
||||||
|
"float, title:^(Save As)(.*)$"
|
||||||
|
"float, title:^(Library)(.*)$"
|
||||||
|
"float, title:^(Accounts)(.*)$"
|
||||||
|
"float, title:^(Media viewer)$"
|
||||||
|
|
||||||
|
# Zen
|
||||||
|
"suppressevent maximize, class:^(zen)$"
|
||||||
|
"float, initialTitle:^(Picture-in-Picture)$"
|
||||||
|
"nodim, initialTitle:^(Picture-in-Picture)$"
|
||||||
|
"keepaspectratio, initialTitle:^(Picture-in-Picture)$"
|
||||||
|
"float, class:^(zen)$, title:^(File Upload)$"
|
||||||
|
"workspace special silent, title:^(Zen — Sharing Indicator)$"
|
||||||
|
"workspace special silent, title:^(.*is sharing (your screen|a window)\.)$"
|
||||||
|
|
||||||
|
# Foot
|
||||||
|
"plugin:scroller:modemodifier col after focus, class:^(foot)$"
|
||||||
|
"plugin:scroller:windowheight onethird, class:^(foot)$"
|
||||||
|
|
||||||
|
# Vesktop
|
||||||
|
"workspace 2, class:^(vesktop)$"
|
||||||
|
"plugin:scroller:group vesktop, class:^(vesktop)$"
|
||||||
|
"opaque, initialTitle:^(Discord Popout)$"
|
||||||
|
"plugin:scroller:modemodifier row before focus, initialTitle:^(Discord Popout)$"
|
||||||
|
"plugin:scroller:windowheight onethird, initialTitle:^(Discord Popout)$"
|
||||||
|
|
||||||
|
# VsCode
|
||||||
|
"plugin:scroller:group code, class:^(code)$"
|
||||||
|
"plugin:scroller:alignwindow center, class:^(code)$"
|
||||||
|
"plugin:scroller:windowheight seveneighths, class:^(code)$"
|
||||||
|
|
||||||
|
# Float Apps
|
||||||
|
"float, class:^(galculator)$"
|
||||||
|
"float, class:^(waypaper)$"
|
||||||
|
"float, class:^(keymapp)$"
|
||||||
|
|
||||||
|
# Nautilus
|
||||||
|
"float, initialClass:^(org.gnome.Nautilus)$"
|
||||||
|
"float, initialClass:^(org.gnome.Nautilus)$, move 10% 50%"
|
||||||
|
"size 30% 30%, initialClass:^(org.gnome.Nautilus)$"
|
||||||
|
|
||||||
|
# Always opaque
|
||||||
|
"opaque, class:^([Gg]imp)$"
|
||||||
|
"opaque, class:^([Ff]lameshot)$"
|
||||||
|
"opaque, class:^([Ii]nkscape)$"
|
||||||
|
"opaque, class:^([Bb]lender)$"
|
||||||
|
"opaque, class:^([Oo][Bb][Ss])$"
|
||||||
|
"opaque, class:^([Vv]lc)$"
|
||||||
|
|
||||||
|
# Remove transparency from video
|
||||||
|
"opaque, title:^(Netflix)(.*)$"
|
||||||
|
"opaque, title:^(.*YouTube.*)$"
|
||||||
|
|
||||||
|
## Scratch rules ##
|
||||||
|
#"size 80% 85%, workspace:^(special:special)$"
|
||||||
|
#"center, workspace:^(special:special)$"
|
||||||
|
|
||||||
|
#Ryujinx
|
||||||
|
"opaque, initialClass:^(Ryujinx)$"
|
||||||
|
"immediate, initialClass:^(Ryujinx)$"
|
||||||
|
"workspace 3, initialClass:^(Ryujinx)$"
|
||||||
|
"float, initialTitle:^(ContentDialogOverlayWindow)$"
|
||||||
|
"center, initialTitle:^(ContentDialogOverlayWindow)$"
|
||||||
|
|
||||||
|
## Steam rules ##
|
||||||
|
"opaque, initialClass:^([Gg]amescope)$"
|
||||||
|
# "stayfocused, initialClass:^([Gg]amescope)$"
|
||||||
|
"fullscreen, initialClass:^([Gg]amescope)$"
|
||||||
|
"minsize 1 1, initialClass:^([Gg]amescope)$"
|
||||||
|
"immediate, initialClass:^([Gg]amescope)$"
|
||||||
|
"workspace 3, initialClass:^([Gg]amescope)$"
|
||||||
|
|
||||||
|
#
|
||||||
|
# ========== Fameshot rules ==========
|
||||||
|
#
|
||||||
|
# flameshot currently doesn't have great wayland support so needs some tweaks
|
||||||
|
#"rounding 0, class:^([Ff]lameshot)$"
|
||||||
|
#"noborder, class:^([Ff]lameshot)$"
|
||||||
|
#"float, class:^([Ff]lameshot)$"
|
||||||
|
#"move 0 0, class:^([Ff]lameshot)$"
|
||||||
|
#"suppressevent fullscreen, class:^([Ff]lameshot)$"
|
||||||
|
# "monitor:DP-1, ${flameshot}"
|
||||||
|
|
||||||
|
## Workspace Assignments ##
|
||||||
|
"workspace 2, initialClass:^(spotify)$"
|
||||||
|
"workspace 2, initialClass:^(org.telegram.desktop)$"
|
||||||
|
# "workspace name:4, initialClass:^(virt-manager)$"
|
||||||
|
|
||||||
|
# "workspace 8, class:^(obsidian)$"
|
||||||
|
# "workspace 9, class:^(brave-browser)$"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
46
home/toph/common/optional/hyprland/scripts/brightness.nix
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
{ pkgs, lib, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
# Define your I2C bus numbers
|
||||||
|
# Couldnt find a non hardcoded way to get the bus numbers :(
|
||||||
|
busesList = [
|
||||||
|
6
|
||||||
|
9
|
||||||
|
];
|
||||||
|
busesStr = lib.concatStringsSep " " (map toString busesList);
|
||||||
|
in
|
||||||
|
|
||||||
|
pkgs.writeScript "brightness-control" ''
|
||||||
|
#!/usr/bin/env fish
|
||||||
|
|
||||||
|
# Usage:
|
||||||
|
# brightness-control --up 10
|
||||||
|
# brightness-control + 10
|
||||||
|
# brightness-control --down 15
|
||||||
|
# brightness-control - 15
|
||||||
|
|
||||||
|
if test (count $argv) -ne 2
|
||||||
|
echo "Usage: $argv[0] [--up|+|--down|-] <INTEGER>"
|
||||||
|
exit 1
|
||||||
|
end
|
||||||
|
|
||||||
|
set option $argv[1]
|
||||||
|
set value $argv[2]
|
||||||
|
|
||||||
|
if test "$option" = "--up" -o "$option" = "+"
|
||||||
|
set op "+"
|
||||||
|
else if test "$option" = "--down" -o "$option" = "-"
|
||||||
|
set op "-"
|
||||||
|
else
|
||||||
|
echo "Invalid option. Use --up | + or --down | -"
|
||||||
|
exit 1
|
||||||
|
end
|
||||||
|
|
||||||
|
# Hard-coded bus list:
|
||||||
|
set buses ${busesStr}
|
||||||
|
|
||||||
|
for bus in $buses
|
||||||
|
echo "Changing brightness on bus $bus: ddcutil setvcp 10 $op $value --bus $bus"
|
||||||
|
${pkgs.ddcutil}/bin/ddcutil setvcp 10 $op $value --bus $bus
|
||||||
|
end
|
||||||
|
''
|
3
home/toph/common/optional/hyprland/scripts/default.nix
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
# :D
|
||||||
|
}
|
55
home/toph/common/optional/hyprland/scripts/steam-map.nix
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
pkgs.writeScript "steam-map" ''
|
||||||
|
#!/usr/bin/env fish
|
||||||
|
# Usage: ./steam-map-toggle.fish on|off <monitors.json>
|
||||||
|
|
||||||
|
if test (count $argv) -lt 2
|
||||||
|
echo "Usage: $0 on|off <monitors.json>"
|
||||||
|
exit 1
|
||||||
|
end
|
||||||
|
|
||||||
|
set mode $argv[1]
|
||||||
|
set json_file $argv[2]
|
||||||
|
|
||||||
|
if not test -e $json_file
|
||||||
|
echo "Error: File $json_file does not exist"
|
||||||
|
exit 1
|
||||||
|
end
|
||||||
|
|
||||||
|
# Parse the JSON and generate instructions for NON-primary monitors.
|
||||||
|
# When 'off', build the monitor string; when 'on', disable the monitor.
|
||||||
|
set instructions (${pkgs.jq}/bin/jq -r --arg mode "$mode" '
|
||||||
|
.[] |
|
||||||
|
if .primary then empty else
|
||||||
|
if $mode == "off" then
|
||||||
|
.name + "," +
|
||||||
|
(.width|tostring) + "x" + (.height|tostring) + "@" + (.refreshRate|tostring) + "," +
|
||||||
|
(.x|tostring) + "x" + (.y|tostring) + "," +
|
||||||
|
(.scale|tostring) +
|
||||||
|
(if has("transform") then ",transform," + (.transform|tostring) else "" end) +
|
||||||
|
",vrr," + (if has("vrr") then (.vrr|tostring) else "0" end)
|
||||||
|
else
|
||||||
|
.name + ", disable"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
' $json_file)
|
||||||
|
|
||||||
|
# Execute hyprctl keyword monitor for each instruction.
|
||||||
|
for instruction in $instructions
|
||||||
|
echo "Running: hyprctl keyword monitor $instruction"
|
||||||
|
hyprctl keyword monitor "$instruction"
|
||||||
|
end
|
||||||
|
|
||||||
|
# Dispatch the appropriate submap.
|
||||||
|
if [ "$mode" = "on" ]
|
||||||
|
hyprctl --batch "dispatch submap steam; dispatch workspace 3"
|
||||||
|
else if [ "$mode" = "off" ]
|
||||||
|
hyprctl dispatch submap reset
|
||||||
|
else
|
||||||
|
echo "Invalid mode: $mode"
|
||||||
|
exit 1
|
||||||
|
end
|
||||||
|
''
|
44
home/toph/common/optional/hyprland/scripts/submaps.nix
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
pkgs.writeScript "submap-script" ''
|
||||||
|
#!/usr/bin/env fish
|
||||||
|
|
||||||
|
# Usage: ./parse_submaps.fish path/to/file.json
|
||||||
|
if test (count $argv) -lt 1
|
||||||
|
echo "Usage: $argv[0] path/to/file.json"
|
||||||
|
exit 1
|
||||||
|
end
|
||||||
|
|
||||||
|
set json_file $argv[1]
|
||||||
|
|
||||||
|
# Iterate over submaps preserving order
|
||||||
|
for entry in (${pkgs.jq}/bin/jq -c '.| to_entries[]' $json_file)
|
||||||
|
set submap_name (echo $entry | ${pkgs.jq}/bin/jq -r '.key')
|
||||||
|
echo "submap=$submap_name"
|
||||||
|
|
||||||
|
# Process each binds entry within the submap
|
||||||
|
for bind_entry in (echo $entry | ${pkgs.jq}/bin/jq -c '.value.binds | to_entries[]')
|
||||||
|
set bind_key (echo $bind_entry | ${pkgs.jq}/bin/jq -r '.key')
|
||||||
|
|
||||||
|
if test "$bind_key" = ""
|
||||||
|
set prefix "bind="
|
||||||
|
else if test "$bind_key" = "unbind"
|
||||||
|
set prefix "unbind="
|
||||||
|
else
|
||||||
|
set prefix "bind$bind_key="
|
||||||
|
end
|
||||||
|
|
||||||
|
# Process each binding's value in the array
|
||||||
|
for binding in (echo $bind_entry | ${pkgs.jq}/bin/jq -r '.value[]')
|
||||||
|
echo "$prefix$binding"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Append submap reset except for default "" submap
|
||||||
|
if not test "$submap_name" = ""
|
||||||
|
echo "submap=reset"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
''
|
10
home/toph/common/optional/hyprland/scripts/terminal.nix
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
# TODO: obviously lol
|
||||||
|
# Handle float terminal and grim select terminal
|
||||||
|
pkgs.writeScript "terminal-launch" ''
|
||||||
|
#!/usr/bin/env fish
|
||||||
|
foot
|
||||||
|
''
|
60
home/toph/common/optional/hyprland/scripts/zen-float.nix
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
pkgs.writeScript "zen-script" ''
|
||||||
|
#!/usr/bin/env fish
|
||||||
|
|
||||||
|
if test (count $argv) -lt 1
|
||||||
|
echo "Usage: $argv[0] path/to/your.json"
|
||||||
|
exit 1
|
||||||
|
end
|
||||||
|
|
||||||
|
set json_file $argv[1]
|
||||||
|
|
||||||
|
function handle
|
||||||
|
set -l line $argv[1]
|
||||||
|
set -l file_path $argv[2]
|
||||||
|
switch $line
|
||||||
|
case "windowtitlev2*"
|
||||||
|
# Expected format: windowtitlev2>><id>,<title>
|
||||||
|
set -l payload (string replace -r '^windowtitlev2>>' "" $line)
|
||||||
|
set -l parts (string split "," $payload)
|
||||||
|
set -l window_id (string trim $parts[1])
|
||||||
|
set -l title (string join "," $parts[2..-1])
|
||||||
|
|
||||||
|
# Debug output
|
||||||
|
echo "Extracted window_id: [$window_id]"
|
||||||
|
echo "Extracted title: [$title]"
|
||||||
|
|
||||||
|
# Loop over the extensions defined in the JSON file.
|
||||||
|
for ext in ( ${pkgs.jq}/bin/jq -r 'keys[]' $file_path )
|
||||||
|
echo "Processing extension: [$ext]"
|
||||||
|
# Get regex, x and y for the current extension.
|
||||||
|
set -l reg ( ${pkgs.jq}/bin/jq -r --arg k $ext '.[$k].regex' $file_path )
|
||||||
|
set -l ext_x ( ${pkgs.jq}/bin/jq -r --arg k $ext '.[$k].x' $file_path )
|
||||||
|
set -l ext_y ( ${pkgs.jq}/bin/jq -r --arg k $ext '.[$k].y' $file_path )
|
||||||
|
|
||||||
|
# Remove any extra surrounding single quotes.
|
||||||
|
set -l reg (string trim -c "'" $reg)
|
||||||
|
|
||||||
|
# Debug: show the extension and regex being used.
|
||||||
|
echo "Checking extension [$ext] with regex [$reg] against title [$title]"
|
||||||
|
|
||||||
|
# If the title matches the regex, dispatch floating commands.
|
||||||
|
if string match -q -- "*$reg*" "$title"
|
||||||
|
echo "$ext window id: $window_id -- setting float mode with size $ext_x x $ext_y"
|
||||||
|
hyprctl --batch "dispatch togglefloating address:0x$window_id; dispatch resizewindowpixel exact $ext_x $ext_y,address:0x$window_id;"
|
||||||
|
return
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
case "*"
|
||||||
|
# Do nothing for other events.
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
${pkgs.socat}/bin/socat -U - UNIX-CONNECT:/run/user/1000/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock | while read -l line
|
||||||
|
handle "$line" "$json_file"
|
||||||
|
end
|
||||||
|
''
|
200
home/toph/common/optional/hyprland/services/dunst.nix
Normal file
|
@ -0,0 +1,200 @@
|
||||||
|
#
|
||||||
|
# Dunst
|
||||||
|
# Notification Daemon
|
||||||
|
#
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
home.packages = builtins.attrValues {
|
||||||
|
inherit (pkgs) libnotify; # required by dunst
|
||||||
|
};
|
||||||
|
|
||||||
|
services.dunst = {
|
||||||
|
enable = true;
|
||||||
|
# waylandDisplay = ""; # set the service's WAYLAND_DISPLAY environment variable
|
||||||
|
# configFile = "";
|
||||||
|
iconTheme = {
|
||||||
|
name = "Adwaita";
|
||||||
|
package = pkgs.adwaita-icon-theme;
|
||||||
|
size = "16x16";
|
||||||
|
};
|
||||||
|
settings = {
|
||||||
|
global = {
|
||||||
|
# Allow a small subset of html markup:<b></b>, <i></i>, <s></s>, and <u></u>.
|
||||||
|
# For a complete reference see
|
||||||
|
# <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>.
|
||||||
|
# If markup is not allowed, those tags will be stripped out of the message.
|
||||||
|
allow_markup = "yes";
|
||||||
|
|
||||||
|
# The format of the message. Possible variables are:
|
||||||
|
# %a appname
|
||||||
|
# %s summary
|
||||||
|
# %b body
|
||||||
|
# %i iconname (including its path)
|
||||||
|
# %I iconname (without its path)
|
||||||
|
# %p progress value if set ([ 0%] to [100%]) or nothing
|
||||||
|
# Markup is allowed
|
||||||
|
format = "%I %s %p\\n%b";
|
||||||
|
|
||||||
|
#TODO dynamic fonts
|
||||||
|
#font = "Droid Sans 12";
|
||||||
|
alignment = "left"; # Options are "left", "center", and "right".
|
||||||
|
|
||||||
|
sort = "yes"; # Sort messages by urgency.
|
||||||
|
indicate_hidden = "yes"; # Show how many messages are currently hidden (because of geometry).
|
||||||
|
|
||||||
|
# The frequency with which text that is longer than the notification
|
||||||
|
# window allows bounces back and forth.
|
||||||
|
# This option conflicts with "word_wrap".
|
||||||
|
# Set to 0 to disable.
|
||||||
|
bounce_freq = 5;
|
||||||
|
|
||||||
|
# Show age of message if message is older than show_age_threshold
|
||||||
|
# seconds.
|
||||||
|
# Set to -1 to disable.
|
||||||
|
show_age_threshold = 60;
|
||||||
|
|
||||||
|
# Split notifications into multiple lines if they don't fit into
|
||||||
|
# geometry.
|
||||||
|
word_wrap = "no";
|
||||||
|
|
||||||
|
# Ignore newlines '\n' in notifications.
|
||||||
|
ignore_newline = "no";
|
||||||
|
|
||||||
|
# The geometry of the window:
|
||||||
|
# [{width}]x{height}[+/-{x}+/-{y}]
|
||||||
|
# The geometry of the message window.
|
||||||
|
# The height is measured in number of notifications everything else
|
||||||
|
# in pixels. If the width is omitted but the height is given
|
||||||
|
# ("-geometry x2"), the message window expands over the whole screen
|
||||||
|
# (dmenu-like). If width is 0, the window expands to the longest
|
||||||
|
# message displayed. A positive x is measured from the left, a
|
||||||
|
# negative from the right side of the screen. Y is measured from
|
||||||
|
# the top and down respectevly.
|
||||||
|
# The width can be negative. In this case the actual width is the
|
||||||
|
# screen width minus the width defined in within the geometry option.
|
||||||
|
geometry = "0x4-25+25";
|
||||||
|
|
||||||
|
# Shrink window if it's smaller than the width. Will be ignored if
|
||||||
|
# width is 0.
|
||||||
|
shrink = "yes";
|
||||||
|
|
||||||
|
# Display notification on focused monitor. Possible modes are:
|
||||||
|
# mouse: follow mouse pointer
|
||||||
|
# keyboard: follow window with keyboard focus
|
||||||
|
# none: don't follow anything
|
||||||
|
#
|
||||||
|
# "keyboard" needs a windowmanager that exports the _NET_ACTIVE_WINDOW property.
|
||||||
|
# This should be the case for almost all modern windowmanagers.
|
||||||
|
#
|
||||||
|
# If this option is set to mouse or keyboard, the monitor option will be ignored.
|
||||||
|
follow = "mouse";
|
||||||
|
|
||||||
|
# Should a notification popped up from history be sticky or timeout
|
||||||
|
# as if it would normally do.
|
||||||
|
sticky_history = "yes";
|
||||||
|
|
||||||
|
# Maximum amount of notifications kept in history
|
||||||
|
history_length = 20;
|
||||||
|
|
||||||
|
# Display indicators for URLs (U) and actions (A).
|
||||||
|
show_indicators = "yes";
|
||||||
|
|
||||||
|
# The height of a single line. If the height is smaller than the
|
||||||
|
# font height, it will get raised to the font height.
|
||||||
|
# This adds empty space above and under the text.
|
||||||
|
line_height = 0;
|
||||||
|
|
||||||
|
# Draw a line of "separator_height" pixel height between two
|
||||||
|
# notifications. Set to 0 to disable.
|
||||||
|
separator_height = 1;
|
||||||
|
|
||||||
|
# Padding between text and separator.
|
||||||
|
padding = 8;
|
||||||
|
|
||||||
|
# Horizontal padding.
|
||||||
|
horizontal_padding = 10;
|
||||||
|
|
||||||
|
# The transparency of the window. Range: [0; 100].
|
||||||
|
# This option will only work if a compositing windowmanager is
|
||||||
|
# present (e.g. xcompmgr, compiz, etc.).
|
||||||
|
transparency = 15;
|
||||||
|
|
||||||
|
# Define a color for the separator.
|
||||||
|
# possible values are:
|
||||||
|
# * auto: dunst tries to find a color fitting to the background;
|
||||||
|
# * foreground: use the same color as the foreground;
|
||||||
|
# * frame: use the same color as the frame;
|
||||||
|
# * anything else will be interpreted as a X color.
|
||||||
|
# separator_color = "#454947";
|
||||||
|
|
||||||
|
# Print a notification on startup.
|
||||||
|
# This is mainly for error detection, since dbus (re-)starts dunst
|
||||||
|
# automatically after a crash.
|
||||||
|
|
||||||
|
#set to true for debugging
|
||||||
|
startup_notification = false;
|
||||||
|
|
||||||
|
# Align icons left/right/off
|
||||||
|
icon_position = "left";
|
||||||
|
|
||||||
|
width = 300;
|
||||||
|
height = 300;
|
||||||
|
offset = "30x50";
|
||||||
|
#origin = "top-right";
|
||||||
|
origin = "top-center";
|
||||||
|
|
||||||
|
#TODO dynamic theme colours
|
||||||
|
# frame_color = "#dc7f41";
|
||||||
|
|
||||||
|
# Browser for opening urls in context menu.
|
||||||
|
browser = "firefox";
|
||||||
|
};
|
||||||
|
|
||||||
|
frame = {
|
||||||
|
width = 2;
|
||||||
|
#TODO dynamic colours
|
||||||
|
# color = "#dc7f41";
|
||||||
|
};
|
||||||
|
|
||||||
|
shortcuts = {
|
||||||
|
# Shortcuts are specified as [modifier+][modifier+]...key
|
||||||
|
# Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
|
||||||
|
# "mod3" and "mod4" (windows-key).
|
||||||
|
# Xev might be helpful to find names for keys.
|
||||||
|
|
||||||
|
# Close notification.
|
||||||
|
close = "mod1+space";
|
||||||
|
|
||||||
|
# Close all notifications.
|
||||||
|
close_all = "ctrl+mod1+space";
|
||||||
|
|
||||||
|
# Redisplay last message(s).
|
||||||
|
history = "ctrl+mod4+h";
|
||||||
|
|
||||||
|
# Context menu.
|
||||||
|
context = "ctrl+mod1+c";
|
||||||
|
};
|
||||||
|
|
||||||
|
urgency_low = {
|
||||||
|
#TODO dynamic colours
|
||||||
|
# background = "#1e1e20";
|
||||||
|
# foreground = "#c5c8c6";
|
||||||
|
timeout = 10;
|
||||||
|
};
|
||||||
|
|
||||||
|
urgency_normal = {
|
||||||
|
#TODO dynamic colours
|
||||||
|
# background = "#1e1e20";
|
||||||
|
# foreground = "#c5c8c6";
|
||||||
|
timeout = 10;
|
||||||
|
};
|
||||||
|
|
||||||
|
urgency_critical = {
|
||||||
|
#TODO dynamic colours
|
||||||
|
# background = "#1e1e20";
|
||||||
|
# foreground = "#c5c8c6";
|
||||||
|
timeout = 0;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
19
home/toph/common/optional/hyprland/services/gammastep.nix
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
{
|
||||||
|
# Enable gammastep for night light
|
||||||
|
services.gammastep = {
|
||||||
|
enable = true;
|
||||||
|
provider = "manual";
|
||||||
|
latitude = 37.541290;
|
||||||
|
longitude = -77.434769;
|
||||||
|
settings = {
|
||||||
|
general = {
|
||||||
|
fade = 1;
|
||||||
|
adjustment-method = "wayland";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
temperature = {
|
||||||
|
day = 6500;
|
||||||
|
night = 4500;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
23
home/toph/common/optional/hyprland/services/hyprpaper.nix
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
# Hyprpaper is used to set the wallpaper on the system
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
# The wallpaper is set by stylix
|
||||||
|
services.hyprpaper = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
ipc = "on";
|
||||||
|
splash = false;
|
||||||
|
splash_offset = 2.0;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
wayland.windowManager.hyprland.settings = {
|
||||||
|
exec-once = [
|
||||||
|
"${pkgs.hyprpaper}/bin/hyprpaper"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
services.playerctld = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,7 +1,6 @@
|
||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
inputs,
|
inputs,
|
||||||
hostSpec,
|
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
@ -15,10 +14,11 @@ let
|
||||||
"ubuntu"
|
"ubuntu"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
inputs.stylix.homeModules.stylix
|
inputs.stylix.homeManagerModules.stylix
|
||||||
];
|
];
|
||||||
|
|
||||||
stylix = {
|
stylix = {
|
||||||
|
@ -47,18 +47,10 @@ in
|
||||||
package = pkgs.noto-fonts-emoji;
|
package = pkgs.noto-fonts-emoji;
|
||||||
name = "Noto Color Emoji";
|
name = "Noto Color Emoji";
|
||||||
};
|
};
|
||||||
sizes = {
|
|
||||||
applications = 12;
|
|
||||||
desktop = 11;
|
|
||||||
popups = 11;
|
|
||||||
terminal = 12;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
targets = {
|
targets = {
|
||||||
gnome = {
|
hyprpaper.enable = true;
|
||||||
enable = true;
|
|
||||||
useWallpaper = true;
|
|
||||||
};
|
|
||||||
vscode = {
|
vscode = {
|
||||||
enable = false;
|
enable = false;
|
||||||
# profileNames = [ "Stylix" ];
|
# profileNames = [ "Stylix" ];
|
|
@ -14,10 +14,10 @@ palette:
|
||||||
base07: "FAF7E6"
|
base07: "FAF7E6"
|
||||||
base08: "EE2E00" # Red
|
base08: "EE2E00" # Red
|
||||||
base09: "F7A94E" # Orange
|
base09: "F7A94E" # Orange
|
||||||
base0A: "FCEEA1" # Yellow
|
base0A: "2B57B6" # Yellow
|
||||||
base0B: "8DE364" # Green
|
base0B: "8DE364" # Green
|
||||||
base0C: "59A3C0" # Cyan
|
base0C: "59A3C0" # Cyan
|
||||||
base0D: "2B57B6" # Blue
|
base0D: "FCEEA1" # Blue
|
||||||
base0E: "AC92BF" # Purple
|
base0E: "AC92BF" # Purple
|
||||||
base0F: "EA5E79" # Magenta
|
base0F: "EA5E79" # Magenta
|
||||||
|
|
Before Width: | Height: | Size: 6.2 MiB After Width: | Height: | Size: 6.2 MiB |
After Width: | Height: | Size: 2.9 MiB |