firefox
This commit is contained in:
parent
b5587ee60a
commit
81f71c5187
83
flake.lock
83
flake.lock
|
@ -3,7 +3,9 @@
|
||||||
"deploy-rs": {
|
"deploy-rs": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat",
|
"flake-compat": "flake-compat",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": [
|
||||||
|
"nixpkgs-unstable"
|
||||||
|
],
|
||||||
"utils": "utils"
|
"utils": "utils"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
|
@ -71,7 +73,9 @@
|
||||||
"gitlab_artifacts_sync": {
|
"gitlab_artifacts_sync": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_2",
|
"flake-compat": "flake-compat_2",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"nixpkgs": [
|
||||||
|
"nixpkgs-unstable"
|
||||||
|
],
|
||||||
"utils": "utils_2"
|
"utils": "utils_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
|
@ -131,59 +135,6 @@
|
||||||
"type": "gitlab"
|
"type": "gitlab"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nix-darwin-unstable": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs-unstable"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1667419884,
|
|
||||||
"narHash": "sha256-oLNw87ZI5NxTMlNQBv1wG2N27CUzo9admaFlnmavpiY=",
|
|
||||||
"owner": "lnl7",
|
|
||||||
"repo": "nix-darwin",
|
|
||||||
"rev": "cfc0125eafadc9569d3d6a16ee928375b77e3100",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "lnl7",
|
|
||||||
"ref": "master",
|
|
||||||
"repo": "nix-darwin",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1648219316,
|
|
||||||
"narHash": "sha256-Ctij+dOi0ZZIfX5eMhgwugfvB+WZSrvVNAyAuANOsnQ=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "30d3d79b7d3607d56546dd2a6b49e156ba0ec634",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixpkgs-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs-stable": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1659446231,
|
|
||||||
"narHash": "sha256-hekabNdTdgR/iLsgce5TGWmfIDZ86qjPhxDg/8TlzhE=",
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "eabc38219184cc3e04a974fe31857d8e0eac098d",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nixos",
|
|
||||||
"ref": "nixos-21.11",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs-unstable": {
|
"nixpkgs-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1667901915,
|
"lastModified": 1667901915,
|
||||||
|
@ -200,19 +151,18 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nur": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1660410996,
|
"lastModified": 1668174315,
|
||||||
"narHash": "sha256-arkfX1YYFmwMyDTCguzoOI4epABC41FGQU4J1/G3/9M=",
|
"narHash": "sha256-oss9lJ30HbgXpVFy5Xv9doB+1mNjQehbFlFYau95odM=",
|
||||||
"owner": "NixOS",
|
"owner": "nix-community",
|
||||||
"repo": "nixpkgs",
|
"repo": "NUR",
|
||||||
"rev": "70b6236f3cbc815f2cae8d597418c714cf83d1c8",
|
"rev": "5da1d2f59d29cd1bb9c0787db9c1046825ade56a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "nix-community",
|
||||||
"ref": "release-22.05",
|
"repo": "NUR",
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -222,9 +172,8 @@
|
||||||
"gitlab_artifacts_sync": "gitlab_artifacts_sync",
|
"gitlab_artifacts_sync": "gitlab_artifacts_sync",
|
||||||
"home-manager-unstable": "home-manager-unstable",
|
"home-manager-unstable": "home-manager-unstable",
|
||||||
"musicutil": "musicutil",
|
"musicutil": "musicutil",
|
||||||
"nix-darwin-unstable": "nix-darwin-unstable",
|
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||||
"nixpkgs-stable": "nixpkgs-stable",
|
"nur": "nur"
|
||||||
"nixpkgs-unstable": "nixpkgs-unstable"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"utils": {
|
"utils": {
|
||||||
|
|
|
@ -6,18 +6,19 @@
|
||||||
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
home-manager-unstable.url = "github:nix-community/home-manager";
|
home-manager-unstable.url = "github:nix-community/home-manager";
|
||||||
home-manager-unstable.inputs.nixpkgs.follows = "nixpkgs-unstable";
|
home-manager-unstable.inputs.nixpkgs.follows = "nixpkgs-unstable";
|
||||||
nix-darwin-unstable.url = "github:lnl7/nix-darwin/master";
|
#nix-darwin-unstable.url = "github:lnl7/nix-darwin/master";
|
||||||
nix-darwin-unstable.inputs.nixpkgs.follows = "nixpkgs-unstable";
|
#nix-darwin-unstable.inputs.nixpkgs.follows = "nixpkgs-unstable";
|
||||||
|
|
||||||
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-21.11";
|
nur.url = "github:nix-community/NUR";
|
||||||
|
|
||||||
deploy-rs.url = "github:serokell/deploy-rs";
|
deploy-rs.url = "github:serokell/deploy-rs";
|
||||||
#deploy-rs.inputs.nixpkgs.follows = "nixpkgs-unstable";
|
deploy-rs.inputs.nixpkgs.follows = "nixpkgs-unstable";
|
||||||
|
|
||||||
musicutil.url = "gitlab:ChaotiCryptidz/musicutil";
|
musicutil.url = "gitlab:ChaotiCryptidz/musicutil";
|
||||||
musicutil.inputs.nixpkgs.follows = "nixpkgs-unstable";
|
musicutil.inputs.nixpkgs.follows = "nixpkgs-unstable";
|
||||||
|
|
||||||
gitlab_artifacts_sync.url = "gitlab:ChaotiCryptidz/gitlab_artifacts_sync";
|
gitlab_artifacts_sync.url = "gitlab:ChaotiCryptidz/gitlab_artifacts_sync";
|
||||||
|
gitlab_artifacts_sync.inputs.nixpkgs.follows = "nixpkgs-unstable";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = { ... }@inputs: import ./outputs.nix inputs;
|
outputs = { ... }@inputs: import ./outputs.nix inputs;
|
||||||
|
|
|
@ -1,66 +0,0 @@
|
||||||
# Websites
|
|
||||||
## discord.com
|
|
||||||
Zoom: 165%
|
|
||||||
### Appearance
|
|
||||||
- Chat Font Scaling: 18px
|
|
||||||
### Accessability
|
|
||||||
- Saturation: 70%
|
|
||||||
- Apply to custom colour schemes: ON
|
|
||||||
- Enable Reduced Motion
|
|
||||||
- Enable Play Animated Emoji
|
|
||||||
- Stickers: Animate on interaction
|
|
||||||
### Notifications
|
|
||||||
- DISABLE ALL SOUNDS.
|
|
||||||
## twitter.com
|
|
||||||
### Accessability
|
|
||||||
- Reduce Motion
|
|
||||||
### Display
|
|
||||||
- Theme: Dim
|
|
||||||
- Colour: Purple
|
|
||||||
- Font Size: Large
|
|
||||||
## VaultUI
|
|
||||||
Zoom: 165%
|
|
||||||
- Default View&Editor Syntax: YAML
|
|
||||||
- View&Editor Indent: 2
|
|
||||||
## gitlab.com
|
|
||||||
Zoom: 185%
|
|
||||||
# Telegram Desktop (kotatogram)
|
|
||||||
- Lappy: Set interface size to 200%
|
|
||||||
- MacMini: Set Interface Size to 125%
|
|
||||||
- Recent stickers: show 40 stickers
|
|
||||||
- Sticker Height: 165px
|
|
||||||
- Upload Speed Boost: Slight
|
|
||||||
- Main Font & Semibold Font: Comic Sans MS
|
|
||||||
- Monospaced Font: Comic Code
|
|
||||||
- Confirm before calling: on
|
|
||||||
## Quassel Client
|
|
||||||
### Interface
|
|
||||||
- Set theme to config dir's style.qss
|
|
||||||
- Widget Style: Fusion
|
|
||||||
- Fallback Icon Theme: Fusion
|
|
||||||
- Show System Tray Icon
|
|
||||||
### Chat View
|
|
||||||
- Chat Window Font: Comic Code 20pt
|
|
||||||
### Chat View Colours
|
|
||||||
- Disable Custom Colours
|
|
||||||
- Disallow coloured text
|
|
||||||
### Chat & Nick Lists
|
|
||||||
- Custom Font: Comic Code 18pt
|
|
||||||
- Use Custom Colours:
|
|
||||||
```
|
|
||||||
Standard: #ffffff
|
|
||||||
Inactive: #bbbbbb
|
|
||||||
Unread: #26f502
|
|
||||||
Highlight: #fff700
|
|
||||||
Other: #00dda6
|
|
||||||
```
|
|
||||||
### Input Widget
|
|
||||||
- Custom Font: Comic Code 18pt
|
|
||||||
### Topic Widget
|
|
||||||
- Custom Font: Comic Code 14pt
|
|
||||||
### Backlog Fetching
|
|
||||||
- Amount: 500
|
|
||||||
- Method: Fixed
|
|
||||||
- Initial: 2000
|
|
||||||
## Websites
|
|
||||||
follow WEB_SETUP_GUIDE.md
|
|
|
@ -1,73 +0,0 @@
|
||||||
# ok so you fucked up, what next,
|
|
||||||
## Step 1
|
|
||||||
Either create a new VM or if still have access, go to ISOs and put in nixos 22.05 iso and reboot server.
|
|
||||||
If create new vm, please change DNS and update IPs in the main nix config and this document (v6) and set rhost
|
|
||||||
## Step 2
|
|
||||||
Use console to set ssh password.
|
|
||||||
|
|
||||||
SSH in `ssh root@hetzner-vm.servers.genderfucked.monster`
|
|
||||||
|
|
||||||
Add ssh key `echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAeN3T1aZkTm5xS0b66cRDyKUbdEQCFyzVWXeW+eIbsa chaos@chaos" >> /root/.ssh/authorized_keys`
|
|
||||||
## Step 3
|
|
||||||
Install NixOS.
|
|
||||||
```
|
|
||||||
parted -s "/dev/sda" -- mklabel msdos
|
|
||||||
parted -s "/dev/sda" -- mkpart primary 512MiB 100%
|
|
||||||
parted -s "/dev/sda" -- print
|
|
||||||
|
|
||||||
mkfs.ext4 /dev/sda1
|
|
||||||
|
|
||||||
mount /dev/sda1 /mnt
|
|
||||||
|
|
||||||
nixos-generate-config --root /mnt
|
|
||||||
```
|
|
||||||
|
|
||||||
Edit configuration.nix and replace with
|
|
||||||
```nix
|
|
||||||
{ config, pkgs, ... }:
|
|
||||||
{
|
|
||||||
imports = [ ./hardware-configuration.nix ];
|
|
||||||
users.users.root = {
|
|
||||||
openssh.authorizedKeys.keys = [
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAeN3T1aZkTm5xS0b66cRDyKUbdEQCFyzVWXeW+eIbsa chaos@chaos"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
boot.loader.grub.enable = true;
|
|
||||||
boot.loader.grub.device = "/dev/sda";
|
|
||||||
boot.initrd.kernelModules = [ "nvme" ];
|
|
||||||
|
|
||||||
services.openssh.enable = true;
|
|
||||||
|
|
||||||
networking.enableIPv6 = true;
|
|
||||||
networking.usePredictableInterfaceNames = false;
|
|
||||||
networking.dhcpcd.enable = true;
|
|
||||||
systemd.network = {
|
|
||||||
enable = true;
|
|
||||||
networks.eth0 = {
|
|
||||||
name = "eth0";
|
|
||||||
address = [ "2a01:4f9:c010:8beb::1/64" ];
|
|
||||||
gateway = [ "fe80::1" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
system.stateVersion = "21.11";
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
Then run `nixos-install` and reboot if successful.
|
|
||||||
|
|
||||||
## Step 4
|
|
||||||
Redeploy with `deploy -s .#hetzner-vm --magic-rollback=false --auto-rollback=false --ssh-user root`
|
|
||||||
|
|
||||||
## Step 5
|
|
||||||
Restore using restic.
|
|
||||||
`B2_ACCOUNT_ID=id B2_ACCOUNT_KEY=key RESTIC_REPOSITORY=b2:Chaos-Backups:HetznerVM restic restore latest`
|
|
||||||
|
|
||||||
## Step 6
|
|
||||||
re-connect to tailscale `tailscale up` and redo dns
|
|
||||||
|
|
||||||
## Step 7
|
|
||||||
Restore Postgres `cat /var/backup/postgresql/all.sql.zstd | zstd -d | sudo -u postgres psql`
|
|
||||||
|
|
||||||
## Step 8
|
|
||||||
Restore music, either via `mkdir -p /storage/music && env B2_ACCOUNT_ID=id B2_ACCOUNT_KEY=key RESTIC_REPOSITORY=b2:Chaos-Backups:Music restic restore latest --target /storage/music` or ./sync.sh on laptop.
|
|
|
@ -1,55 +0,0 @@
|
||||||
# Lappy Setup Guide
|
|
||||||
## Filesystems
|
|
||||||
```
|
|
||||||
mkdir /usb
|
|
||||||
cryptsetup luksOpen /dev/disk/by-partname/usb usb_unencrypted
|
|
||||||
mount /dev/mapper/usb_unencrypted /usb
|
|
||||||
|
|
||||||
nix develop
|
|
||||||
mk-lappy-ssd /dev/nvme0n1 /usb/encryption-keys/lappy.key
|
|
||||||
```
|
|
||||||
## NetworkManager
|
|
||||||
Grab passwords from Vault
|
|
||||||
## Browser (vivaldi)
|
|
||||||
### Settings
|
|
||||||
#### General
|
|
||||||
Home Page: Start Page
|
|
||||||
Startup With: Start Page
|
|
||||||
#### Appearance
|
|
||||||
Use Animation: NO!
|
|
||||||
#### Themes
|
|
||||||
Theme: Custom
|
|
||||||
Background: #2e3440
|
|
||||||
Foreground: #eceff4
|
|
||||||
Highlight: #88c0d0
|
|
||||||
Accent: #4c566a
|
|
||||||
Corner Rounding: 2
|
|
||||||
#### Tabs
|
|
||||||
- Display Close Button: Permanantly
|
|
||||||
- Active Tab Minimum Width: 150px
|
|
||||||
- Tab Stacking: Disable
|
|
||||||
#### Search
|
|
||||||
- Default search engine: Google
|
|
||||||
- Always search in new tab: ON
|
|
||||||
#### Privacy
|
|
||||||
- Phishing and Malware Protection: OFF
|
|
||||||
- DNS to help resolve navigation errors: OFF
|
|
||||||
- Form AutoFill Assist: OFF
|
|
||||||
- Ask websites not to track me: ON
|
|
||||||
- No Blocking
|
|
||||||
- Save Webpage Passwords: OFF
|
|
||||||
#### Downloads
|
|
||||||
- Save without asking: ON
|
|
||||||
#### Webpages
|
|
||||||
- Default Webpage Zoom: 145%
|
|
||||||
- Disable Use Tab Zoom
|
|
||||||
- Disable Use Ctrl+Scroll Zoom
|
|
||||||
- Plugins: Enable All
|
|
||||||
- Fonts: All to Comic Sans apart from Monospace which is Comic Code
|
|
||||||
- Reader: Colour Scheme: Dark
|
|
||||||
### Extensions
|
|
||||||
Install the following extensions:
|
|
||||||
- Stylus
|
|
||||||
- Tampermonkey
|
|
||||||
- uBlock Origin
|
|
||||||
Then install all userscripts and userstyles from [Here](https://gitlab.com/ChaotiCryptidz/userstyles-userscripts/-/tree/main)
|
|
|
@ -1,53 +0,0 @@
|
||||||
# Mac Mini Setup Guide
|
|
||||||
|
|
||||||
## First Install
|
|
||||||
### macOS installer
|
|
||||||
Country/Region: United Kingdom
|
|
||||||
Cognitive: Dark Theme
|
|
||||||
Turn On Hover Text
|
|
||||||
|
|
||||||
### Install Nix
|
|
||||||
```
|
|
||||||
sh <(curl -L https://nixos.org/nix/install) --daemon
|
|
||||||
```
|
|
||||||
### Clone Nixfiles
|
|
||||||
```
|
|
||||||
mkdir ~/Projects
|
|
||||||
cd ~/Projects
|
|
||||||
nix-shell -p git --run "git clone https://gitlab.com/ChaotiCryptidz/nixfiles"
|
|
||||||
```
|
|
||||||
### Bootstrap Nix-Darwin
|
|
||||||
```
|
|
||||||
nix --experimental-features "nix-command flakes" build .#darwinConfigurations.MacMini.system
|
|
||||||
|
|
||||||
echo -e "run\tprivate/var/run" | sudo tee -a /etc/synthetic.conf
|
|
||||||
/System/Library/Filesystems/apfs.fs/Contents/Resources/apfs.util -B
|
|
||||||
/System/Library/Filesystems/apfs.fs/Contents/Resources/apfs.util -t
|
|
||||||
|
|
||||||
./result/sw/bin/darwin-rebuild switch --flake .#darwinConfigurations.MacMini
|
|
||||||
```
|
|
||||||
|
|
||||||
## Terminal
|
|
||||||
Set default font to Comic Code
|
|
||||||
|
|
||||||
## Settings
|
|
||||||
### General
|
|
||||||
- Theme: Dark
|
|
||||||
- Accent Colour: Pink
|
|
||||||
### Dock & Menu Bar
|
|
||||||
#### Main
|
|
||||||
- Position: Left
|
|
||||||
- Minimize Using: Scale Effect
|
|
||||||
- Do not animate opening apps
|
|
||||||
- Automatically hide and show the dock: Yes
|
|
||||||
- Do not show recent apps
|
|
||||||
|
|
||||||
## Safari
|
|
||||||
- Enable Develop Menu
|
|
||||||
# Extensions
|
|
||||||
install from app store:
|
|
||||||
- Adblock Pro for Safari
|
|
||||||
- Cascadea (& install userstyles from repo)
|
|
||||||
|
|
||||||
## Apps
|
|
||||||
- Install Kotatogram Desktop from website
|
|
|
@ -1,66 +0,0 @@
|
||||||
# Websites
|
|
||||||
## discord.com
|
|
||||||
Zoom: 165%
|
|
||||||
### Appearance
|
|
||||||
- Chat Font Scaling: 18px
|
|
||||||
### Accessability
|
|
||||||
- Saturation: 70%
|
|
||||||
- Apply to custom colour schemes: ON
|
|
||||||
- Enable Reduced Motion
|
|
||||||
- Enable Play Animated Emoji
|
|
||||||
- Stickers: Animate on interaction
|
|
||||||
### Notifications
|
|
||||||
- DISABLE ALL SOUNDS.
|
|
||||||
## twitter.com
|
|
||||||
### Accessability
|
|
||||||
- Reduce Motion
|
|
||||||
### Display
|
|
||||||
- Theme: Lights Out
|
|
||||||
- Colour: Purple
|
|
||||||
- Font Size: Large
|
|
||||||
## VaultUI
|
|
||||||
Zoom: 165%
|
|
||||||
- Default View&Editor Syntax: YAML
|
|
||||||
- View&Editor Indent: 2
|
|
||||||
## gitlab.com
|
|
||||||
Zoom: 185%
|
|
||||||
## tweetdeck.twitter.com
|
|
||||||
Zoom: 165%
|
|
||||||
### TweetDeck Settings
|
|
||||||
- Theme: Dark
|
|
||||||
- dont show notifs on startup
|
|
||||||
- display sensitive medias
|
|
||||||
- column: the Wide
|
|
||||||
- font size: lorgest
|
|
||||||
### TweetDeck Columns
|
|
||||||
- Delete messages & trending
|
|
||||||
#### Home
|
|
||||||
- media size: the lorge
|
|
||||||
- DO NOT NOTIFY
|
|
||||||
#### Notifications
|
|
||||||
- media size: the smol
|
|
||||||
- sound: enable
|
|
||||||
- notif: the enabled
|
|
||||||
### Better TweetDeck Settings
|
|
||||||
#### General
|
|
||||||
- pause column scrolling on
|
|
||||||
- custom width for columns: 49.655%
|
|
||||||
- mute nft accounts thank fuck
|
|
||||||
- show heart for moots even though they prolly hate us
|
|
||||||
- add columns for creatures, stuff, empty spaces;
|
|
||||||
#### Tweet Content
|
|
||||||
- Show Content Warnings
|
|
||||||
- Do not show twibber warnings
|
|
||||||
- extract the pronouns
|
|
||||||
#### Theme
|
|
||||||
- theme: super black
|
|
||||||
- accent colour: the Purple
|
|
||||||
- scrollbars: hidden
|
|
||||||
#### Tweets Display
|
|
||||||
- avatar shape: square
|
|
||||||
#### Tweet Actions
|
|
||||||
- tweet actions to add: block author
|
|
||||||
- position: right
|
|
||||||
#### Tweet Composor
|
|
||||||
- no tweet until alt text
|
|
||||||
- always show how many chars left
|
|
146
home/apps/firefox.nix
Normal file
146
home/apps/firefox.nix
Normal file
|
@ -0,0 +1,146 @@
|
||||||
|
{ config, nixosConfig, pkgs, ... }:
|
||||||
|
let isGnome = nixosConfig.services.xserver.desktopManager.gnome.enable;
|
||||||
|
in {
|
||||||
|
programs.firefox = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.firefox.override {
|
||||||
|
cfg = {
|
||||||
|
# for gnome media shenanigans
|
||||||
|
enableGnomeExtensions = isGnome;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
extensions = with nixosConfig.nur; [
|
||||||
|
repos.rycee.firefox-addons.ublock-origin
|
||||||
|
repos.rycee.firefox-addons.stylus
|
||||||
|
repos.rycee.firefox-addons.tampermonkey
|
||||||
|
repos.rycee.firefox-addons.search-engines-helper
|
||||||
|
repos.rycee.firefox-addons.search-by-image
|
||||||
|
repos.rycee.firefox-addons.offline-qr-code-generator
|
||||||
|
repos.rycee.firefox-addons.i-dont-care-about-cookies
|
||||||
|
repos.rycee.firefox-addons.don-t-fuck-with-paste
|
||||||
|
repos.rycee.firefox-addons.amp2html
|
||||||
|
repos.rycee.firefox-addons.a11ycss
|
||||||
|
];
|
||||||
|
profiles."profile" = {
|
||||||
|
name = "profile";
|
||||||
|
id = 0;
|
||||||
|
isDefault = true;
|
||||||
|
settings = {
|
||||||
|
"app.normandy.first_run" = false;
|
||||||
|
"browser.search.region" = "GB";
|
||||||
|
"intl.locale.requested" = "en-GB,en-US";
|
||||||
|
|
||||||
|
# less junk on homescreen
|
||||||
|
"extensions.htmlaboutaddons.recommendations.enabled" = false;
|
||||||
|
"browser.newtabpage.activity-stream.feeds.recommendationprovider" =
|
||||||
|
false;
|
||||||
|
"browser.newtabpage.activity-stream.feeds.section.topstories" = false;
|
||||||
|
"browser.newtabpage.activity-stream.feeds.topsites" = false;
|
||||||
|
"browser.newtabpage.activity-stream.section.highlights.includeBookmarks" =
|
||||||
|
false;
|
||||||
|
"browser.newtabpage.activity-stream.section.highlights.includeDownloads" =
|
||||||
|
false;
|
||||||
|
"browser.newtabpage.activity-stream.section.highlights.includePocket" =
|
||||||
|
false;
|
||||||
|
"browser.newtabpage.activity-stream.section.highlights.includeVisited" =
|
||||||
|
false;
|
||||||
|
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons" =
|
||||||
|
false;
|
||||||
|
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features" =
|
||||||
|
false;
|
||||||
|
|
||||||
|
# dont use any form autofill
|
||||||
|
"signon.autofillForms" = false;
|
||||||
|
"signon.generation.enabled" = false;
|
||||||
|
"signon.management.page.breach-alerts.enabled" = false;
|
||||||
|
"signon.rememberSignons" = false;
|
||||||
|
"dom.forms.autocomplete.formautofill" = false;
|
||||||
|
"extensions.formautofill.creditCards.enabled" = false;
|
||||||
|
"browser.formfill.enable" = false;
|
||||||
|
|
||||||
|
# disable search suggestions
|
||||||
|
"browser.search.suggest.enabled" = false;
|
||||||
|
|
||||||
|
# no telemetry
|
||||||
|
"toolkit.telemetry.enabled" = false;
|
||||||
|
"datareporting.healthreport.uploadEnabled" = false;
|
||||||
|
"app.shield.optoutstudies.enabled" = false;
|
||||||
|
|
||||||
|
# disable pocket
|
||||||
|
"browser.pocket.enabled" = false;
|
||||||
|
"extensions.pocket.enabled" = false;
|
||||||
|
|
||||||
|
# no safebrowsing
|
||||||
|
"browser.safebrowsing.enabled " = false;
|
||||||
|
"browser.safebrowsing.phishing.enabled" = false;
|
||||||
|
"browser.safebrowsing.malware.enabled" = false;
|
||||||
|
"browser.safebrowsing.downloads.enabled" = false;
|
||||||
|
|
||||||
|
# don't let websites replace right click
|
||||||
|
"dom.event.contextmenu.enabled" = false;
|
||||||
|
|
||||||
|
# disable geoip
|
||||||
|
"geo.enabled" = false;
|
||||||
|
"geo.wifi.uri" = "";
|
||||||
|
"browser.search.geoip.url" = "";
|
||||||
|
|
||||||
|
# enable widevine
|
||||||
|
"media.eme.enabled" = true;
|
||||||
|
"media.gmp-widevinecdm.enabled" = true;
|
||||||
|
|
||||||
|
# browser toolbar and UI
|
||||||
|
# may need updating when extensions change
|
||||||
|
"browser.toolbars.bookmarks.visibility" = "always";
|
||||||
|
"layout.css.devPixelsPerPx" = "1.8";
|
||||||
|
"browser.uiCustomization.state" = builtins.toJSON {
|
||||||
|
currentVersion = 18;
|
||||||
|
dirtyAreaCache = [
|
||||||
|
"nav-bar"
|
||||||
|
"PersonalToolbar"
|
||||||
|
"toolbar-menubar"
|
||||||
|
"TabsToolbar"
|
||||||
|
"widget-overflow-fixed-list"
|
||||||
|
];
|
||||||
|
newElementCount = 22;
|
||||||
|
placements = {
|
||||||
|
PersonalToolbar = [ "import-button" "personal-bookmarks" ];
|
||||||
|
TabsToolbar =
|
||||||
|
[ "tabbrowser-tabs" "new-tab-button" "alltabs-button" ];
|
||||||
|
nav-bar = [
|
||||||
|
"back-button"
|
||||||
|
"forward-button"
|
||||||
|
"stop-reload-button"
|
||||||
|
"urlbar-container"
|
||||||
|
"downloads-button"
|
||||||
|
"ublock0_raymondhill_net-browser-action"
|
||||||
|
"firefox_tampermonkey_net-browser-action"
|
||||||
|
"_7a7a4a92-a2a0-41d1-9fd7-1e92480d612d_-browser-action"
|
||||||
|
"offline-qr-code_rugk_github_io-browser-action"
|
||||||
|
];
|
||||||
|
toolbar-menubar = [ "menubar-items" ];
|
||||||
|
widget-overflow-fixed-list = [
|
||||||
|
"a11y_css_ffoodd-browser-action"
|
||||||
|
"dontfuckwithpaste_raim_ist-browser-action"
|
||||||
|
"jid1-kkzogwgsw3ao4q_jetpack-browser-action"
|
||||||
|
"_65a2d764-7358-455b-930d-5afa86fb5ed0_-browser-action"
|
||||||
|
"_2e5ff8c8-32fe-46d0-9fc8-6b8986621f3c_-browser-action"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
seen = [
|
||||||
|
"save-to-pocket-button"
|
||||||
|
"developer-button"
|
||||||
|
"a11y_css_ffoodd-browser-action"
|
||||||
|
"dontfuckwithpaste_raim_ist-browser-action"
|
||||||
|
"jid1-kkzogwgsw3ao4q_jetpack-browser-action"
|
||||||
|
"offline-qr-code_rugk_github_io-browser-action"
|
||||||
|
"ublock0_raymondhill_net-browser-action"
|
||||||
|
"firefox_tampermonkey_net-browser-action"
|
||||||
|
"_65a2d764-7358-455b-930d-5afa86fb5ed0_-browser-action"
|
||||||
|
"_7a7a4a92-a2a0-41d1-9fd7-1e92480d612d_-browser-action"
|
||||||
|
"_2e5ff8c8-32fe-46d0-9fc8-6b8986621f3c_-browser-action"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -8,7 +8,8 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
font.name = "Comic Code";
|
font.name = "Comic Code";
|
||||||
settings = {
|
settings = {
|
||||||
font_size = if nixosConfig.networking.hostName == "tablet" then 12 else 20;
|
font_size =
|
||||||
|
if nixosConfig.networking.hostName == "tablet" then 12 else 20;
|
||||||
bold_font = "auto";
|
bold_font = "auto";
|
||||||
italic_font = "auto";
|
italic_font = "auto";
|
||||||
bold_italic_font = "auto";
|
bold_italic_font = "auto";
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
{ pkgs, ... }: { home.packages = with pkgs; [ sublime4 ]; }
|
|
|
@ -1,46 +1,23 @@
|
||||||
{ config, nixosConfig, pkgs, ... }:
|
{ config, nixosConfig, pkgs, ... }:
|
||||||
let
|
let
|
||||||
configDir = "Code";
|
font-size = if nixosConfig.networking.hostName == "tablet" then 18 else 24;
|
||||||
userDir = if pkgs.stdenv.hostPlatform.isDarwin then
|
zoom-level = if nixosConfig.networking.hostName == "tablet" then -2 else 0;
|
||||||
"$HOME/Library/Application Support/${configDir}/User"
|
|
||||||
else
|
|
||||||
"${config.xdg.configHome}/${configDir}/User";
|
|
||||||
|
|
||||||
font-size = if nixosConfig.networking.hostName == "tablet" then 16 else 24;
|
|
||||||
|
|
||||||
in {
|
in {
|
||||||
programs.vscode = {
|
programs.vscode-mod = {
|
||||||
enable = true;
|
enable = true;
|
||||||
userSettings = {
|
userSettings = {
|
||||||
"editor.tabSize" = 4;
|
|
||||||
"terminal.integrated.shellIntegration.enabled" = false;
|
"terminal.integrated.shellIntegration.enabled" = false;
|
||||||
"github.gitAuthentication" = false;
|
"github.gitAuthentication" = false;
|
||||||
"editor.fontSize" = 24;
|
"editor.fontSize" = font-size;
|
||||||
"editor.fontFamily" = "'Comic Code'";
|
"editor.fontFamily" = "'Comic Code'";
|
||||||
"terminal.integrated.fontSize" = 24;
|
"terminal.integrated.fontSize" = font-size;
|
||||||
"editor.codeLensFontFamily" = "'Comic Code'";
|
"editor.codeLensFontFamily" = "'Comic Code'";
|
||||||
"editor.inlayHints.fontFamily" = "'Comic Code'";
|
"editor.inlayHints.fontFamily" = "'Comic Code'";
|
||||||
"markdown.preview.fontFamily" = "'Comic Code'";
|
"markdown.preview.fontFamily" = "'Comic Code'";
|
||||||
"terminal.integrated.fontFamily" = "'Comic Code'";
|
"terminal.integrated.fontFamily" = "'Comic Code'";
|
||||||
"files.autoSave" = "afterDelay";
|
"files.autoSave" = "afterDelay";
|
||||||
|
"window.zoomLevel" = zoom-level;
|
||||||
|
"editor.tabSize" = 2;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
programs.vscode.extensions = with pkgs;
|
|
||||||
[ vscode-extensions.matklad.rust-analyzer ];
|
|
||||||
|
|
||||||
# make config changeable
|
|
||||||
#home = {
|
|
||||||
# activation = {
|
|
||||||
# afterWriteBoundary = {
|
|
||||||
# after = [ "writeBoundary" ];
|
|
||||||
# before = [ ];
|
|
||||||
# data = ''
|
|
||||||
# vscodeDir="${userDir}"
|
|
||||||
# $DRY_RUN_CMD cat "$vscodeDir/settings.json" > "$vscodeDir/settings_whatever.json"
|
|
||||||
# $DRY_RUN_CMD rm -f "$vscodeDir/settings.json"
|
|
||||||
# $DRY_RUN_CMD cp "$vscodeDir/settings_whatever.json" "$vscodeDir/settings.json"
|
|
||||||
# '';
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
#};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,5 +2,5 @@
|
||||||
|
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [ go gopls go-outline gotools ];
|
home.packages = with pkgs; [ go gopls go-outline gotools ];
|
||||||
programs.vscode.extensions = with pkgs; [ vscode-extensions.golang.go ];
|
programs.vscode-mod.extensions = with pkgs; [ vscode-extensions.golang.go ];
|
||||||
}
|
}
|
|
@ -3,12 +3,12 @@
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [ nixfmt ];
|
home.packages = with pkgs; [ nixfmt ];
|
||||||
|
|
||||||
programs.vscode.extensions = with pkgs; [
|
programs.vscode-mod.extensions = with pkgs; [
|
||||||
vscode-extensions.bbenoist.nix
|
vscode-extensions.bbenoist.nix
|
||||||
vscode-extensions.brettm12345.nixfmt-vscode
|
vscode-extensions.brettm12345.nixfmt-vscode
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.vscode.userSettings."[nix]" = {
|
programs.vscode-mod.userSettings."[nix]" = {
|
||||||
"editor.defaultFormatter" = "brettm12345.nixfmt-vscode";
|
"editor.defaultFormatter" = "brettm12345.nixfmt-vscode";
|
||||||
};
|
};
|
||||||
}
|
}
|
6
home/programming/languages/rust.nix
Normal file
6
home/programming/languages/rust.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{ pkgs, ... }: {
|
||||||
|
programs.vscode-mod.extensions = with pkgs;
|
||||||
|
[ vscode-extensions.matklad.rust-analyzer ];
|
||||||
|
home.packages = with pkgs; [ rustc cargo clippy rust-analyzer rustfmt ];
|
||||||
|
home.sessionVariables = { RUST_SRC_PATH = pkgs.rustPlatform.rustLibSrc; };
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
{ ... }@inputs: {
|
{ ... }@inputs: {
|
||||||
nixosConfigurations = import ./nixos.nix inputs;
|
nixosConfigurations = import ./nixos.nix inputs;
|
||||||
darwinConfigurations = import ./darwin.nix inputs;
|
#darwinConfigurations = import ./darwin.nix inputs;
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,6 @@
|
||||||
users.root
|
users.root
|
||||||
|
|
||||||
profiles.base
|
profiles.base
|
||||||
profiles.tailscale
|
|
||||||
profiles.sshd
|
profiles.sshd
|
||||||
profiles.nginx
|
profiles.nginx
|
||||||
profiles.nix-gc
|
profiles.nix-gc
|
||||||
|
|
|
@ -16,6 +16,11 @@ let
|
||||||
tree.impure.profiles.base
|
tree.impure.profiles.base
|
||||||
inputs.home-manager-unstable.nixosModules.home-manager
|
inputs.home-manager-unstable.nixosModules.home-manager
|
||||||
inputs.gitlab_artifacts_sync.nixosModule
|
inputs.gitlab_artifacts_sync.nixosModule
|
||||||
|
|
||||||
|
inputs.nur.nixosModules.nur
|
||||||
|
|
||||||
|
tree.impure.modules.nixos.rclone-serve
|
||||||
|
tree.impure.modules.nixos.rclone-sync
|
||||||
];
|
];
|
||||||
|
|
||||||
nixosUnstableSystem = nixpkgs-unstable.lib.nixosSystem;
|
nixosUnstableSystem = nixpkgs-unstable.lib.nixosSystem;
|
||||||
|
@ -53,11 +58,7 @@ in {
|
||||||
storage = nixosUnstableSystem {
|
storage = nixosUnstableSystem {
|
||||||
specialArgs = defaultSpecialArgs;
|
specialArgs = defaultSpecialArgs;
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
modules = defaultModules ++ [
|
modules = defaultModules ++ [ ./storage/storage.nix ];
|
||||||
./storage/modules/rclone-serve.nix
|
|
||||||
./storage/modules/rclone-sync.nix
|
|
||||||
./storage/storage.nix
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
vault = nixosUnstableSystem {
|
vault = nixosUnstableSystem {
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
home.home-folders
|
home.home-folders
|
||||||
|
|
||||||
home.programming.editors.vscode
|
home.programming.editors.vscode
|
||||||
home.programming.languages.go
|
home.programming.languages.rust
|
||||||
home.programming.languages.nix
|
home.programming.languages.nix
|
||||||
];
|
];
|
||||||
home.stateVersion = "22.05";
|
home.stateVersion = "22.05";
|
||||||
|
|
229
modules/home/vscode-mod-module.nix
Normal file
229
modules/home/vscode-mod-module.nix
Normal file
|
@ -0,0 +1,229 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
cfg = config.programs.vscode-mod;
|
||||||
|
|
||||||
|
vscodePname = cfg.package.pname;
|
||||||
|
|
||||||
|
jsonFormat = pkgs.formats.json { };
|
||||||
|
|
||||||
|
configDir = {
|
||||||
|
"vscode" = "Code";
|
||||||
|
"vscode-insiders" = "Code - Insiders";
|
||||||
|
"vscodium" = "VSCodium";
|
||||||
|
}.${vscodePname};
|
||||||
|
|
||||||
|
extensionDir = {
|
||||||
|
"vscode" = "vscode";
|
||||||
|
"vscode-insiders" = "vscode-insiders";
|
||||||
|
"vscodium" = "vscode-oss";
|
||||||
|
}.${vscodePname};
|
||||||
|
|
||||||
|
userDir = if pkgs.stdenv.hostPlatform.isDarwin then
|
||||||
|
"Library/Application Support/${configDir}/User"
|
||||||
|
else
|
||||||
|
"${config.xdg.configHome}/${configDir}/User";
|
||||||
|
|
||||||
|
configFilePath = "${userDir}/settings.json";
|
||||||
|
tasksFilePath = "${userDir}/tasks.json";
|
||||||
|
keybindingsFilePath = "${userDir}/keybindings.json";
|
||||||
|
|
||||||
|
# TODO: On Darwin where are the extensions?
|
||||||
|
extensionPath = ".${extensionDir}/extensions";
|
||||||
|
|
||||||
|
mergedUserSettings = cfg.userSettings
|
||||||
|
// optionalAttrs (!cfg.enableUpdateCheck) { "update.mode" = "none"; }
|
||||||
|
// optionalAttrs (!cfg.enableExtensionUpdateCheck) {
|
||||||
|
"extensions.autoCheckUpdates" = false;
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
programs.vscode-mod = {
|
||||||
|
enable = mkEnableOption "Visual Studio Code";
|
||||||
|
|
||||||
|
package = mkOption {
|
||||||
|
type = types.package;
|
||||||
|
default = pkgs.vscode;
|
||||||
|
example = literalExpression "pkgs.vscodium";
|
||||||
|
description = ''
|
||||||
|
Version of Visual Studio Code to install.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
enableUpdateCheck = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = true;
|
||||||
|
description = ''
|
||||||
|
Whether to enable update checks/notifications.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
enableExtensionUpdateCheck = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = true;
|
||||||
|
description = ''
|
||||||
|
Whether to enable update notifications for extensions.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
userSettings = mkOption {
|
||||||
|
type = jsonFormat.type;
|
||||||
|
default = { };
|
||||||
|
example = literalExpression ''
|
||||||
|
{
|
||||||
|
"files.autoSave" = "off";
|
||||||
|
"[nix]"."editor.tabSize" = 2;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
description = ''
|
||||||
|
Configuration written to Visual Studio Code's
|
||||||
|
<filename>settings.json</filename>.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
userTasks = mkOption {
|
||||||
|
type = jsonFormat.type;
|
||||||
|
default = { };
|
||||||
|
example = literalExpression ''
|
||||||
|
{
|
||||||
|
version = "2.0.0";
|
||||||
|
tasks = [
|
||||||
|
{
|
||||||
|
type = "shell";
|
||||||
|
label = "Hello task";
|
||||||
|
command = "hello";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
description = ''
|
||||||
|
Configuration written to Visual Studio Code's
|
||||||
|
<filename>tasks.json</filename>.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
keybindings = mkOption {
|
||||||
|
type = types.listOf (types.submodule {
|
||||||
|
options = {
|
||||||
|
key = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
example = "ctrl+c";
|
||||||
|
description = "The key or key-combination to bind.";
|
||||||
|
};
|
||||||
|
|
||||||
|
command = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
example = "editor.action.clipboardCopyAction";
|
||||||
|
description = "The VS Code command to execute.";
|
||||||
|
};
|
||||||
|
|
||||||
|
when = mkOption {
|
||||||
|
type = types.nullOr (types.str);
|
||||||
|
default = null;
|
||||||
|
example = "textInputFocus";
|
||||||
|
description = "Optional context filter.";
|
||||||
|
};
|
||||||
|
|
||||||
|
# https://code.visualstudio.com/docs/getstarted/keybindings#_command-arguments
|
||||||
|
args = mkOption {
|
||||||
|
type = types.nullOr (jsonFormat.type);
|
||||||
|
default = null;
|
||||||
|
example = { direction = "up"; };
|
||||||
|
description = "Optional arguments for a command.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
});
|
||||||
|
default = [ ];
|
||||||
|
example = literalExpression ''
|
||||||
|
[
|
||||||
|
{
|
||||||
|
key = "ctrl+c";
|
||||||
|
command = "editor.action.clipboardCopyAction";
|
||||||
|
when = "textInputFocus";
|
||||||
|
}
|
||||||
|
]
|
||||||
|
'';
|
||||||
|
description = ''
|
||||||
|
Keybindings written to Visual Studio Code's
|
||||||
|
<filename>keybindings.json</filename>.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
extensions = mkOption {
|
||||||
|
type = types.listOf types.package;
|
||||||
|
default = [ ];
|
||||||
|
example = literalExpression "[ pkgs.vscode-extensions.bbenoist.nix ]";
|
||||||
|
description = ''
|
||||||
|
The extensions Visual Studio Code should be started with.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
mutableExtensionsDir = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = true;
|
||||||
|
example = false;
|
||||||
|
description = ''
|
||||||
|
Whether extensions can be installed or updated manually
|
||||||
|
or by Visual Studio Code.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = [ cfg.package ];
|
||||||
|
|
||||||
|
# make config changeable
|
||||||
|
home = {
|
||||||
|
activation = {
|
||||||
|
vscode-mod-copy = hm.dag.entryAfter [ "writeBoundary" ] ''
|
||||||
|
$DRY_RUN_CMD cat "${configFilePath}.source" > "${configFilePath}"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
home.file = mkMerge [
|
||||||
|
(mkIf (mergedUserSettings != { }) {
|
||||||
|
# Don't install settings to actual config file path
|
||||||
|
# instead install to ${configFilePath}.source
|
||||||
|
"${configFilePath}.source".source =
|
||||||
|
jsonFormat.generate "vscode-user-settings" mergedUserSettings;
|
||||||
|
})
|
||||||
|
|
||||||
|
(mkIf (cfg.userTasks != { }) {
|
||||||
|
"${tasksFilePath}".source =
|
||||||
|
jsonFormat.generate "vscode-user-tasks" cfg.userTasks;
|
||||||
|
})
|
||||||
|
(mkIf (cfg.keybindings != [ ])
|
||||||
|
(let dropNullFields = filterAttrs (_: v: v != null);
|
||||||
|
in {
|
||||||
|
"${keybindingsFilePath}".source =
|
||||||
|
jsonFormat.generate "vscode-keybindings"
|
||||||
|
(map dropNullFields cfg.keybindings);
|
||||||
|
}))
|
||||||
|
(mkIf (cfg.extensions != [ ]) (let
|
||||||
|
subDir = "share/vscode/extensions";
|
||||||
|
|
||||||
|
# Adapted from https://discourse.nixos.org/t/vscode-extensions-setup/1801/2
|
||||||
|
toPaths = ext:
|
||||||
|
map (k: { "${extensionPath}/${k}".source = "${ext}/${subDir}/${k}"; })
|
||||||
|
(if ext ? vscodeExtUniqueId then
|
||||||
|
[ ext.vscodeExtUniqueId ]
|
||||||
|
else
|
||||||
|
builtins.attrNames (builtins.readDir (ext + "/${subDir}")));
|
||||||
|
in if cfg.mutableExtensionsDir then
|
||||||
|
mkMerge (concatMap toPaths cfg.extensions)
|
||||||
|
else {
|
||||||
|
"${extensionPath}".source = let
|
||||||
|
combinedExtensionsDrv = pkgs.buildEnv {
|
||||||
|
name = "vscode-extensions";
|
||||||
|
paths = cfg.extensions;
|
||||||
|
};
|
||||||
|
in "${combinedExtensionsDrv}/${subDir}";
|
||||||
|
}))
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
|
@ -7,7 +7,7 @@ let
|
||||||
hosts = import ./hosts ({ inherit tree; } // inputs);
|
hosts = import ./hosts ({ inherit tree; } // inputs);
|
||||||
in {
|
in {
|
||||||
nixosConfigurations = hosts.nixosConfigurations;
|
nixosConfigurations = hosts.nixosConfigurations;
|
||||||
darwinConfigurations = hosts.darwinConfigurations;
|
#darwinConfigurations = hosts.darwinConfigurations;
|
||||||
|
|
||||||
deploy.nodes = (import ./deployNodes.nix {
|
deploy.nodes = (import ./deployNodes.nix {
|
||||||
nixosConfigurations = self.nixosConfigurations;
|
nixosConfigurations = self.nixosConfigurations;
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
home.apps.mpv
|
home.apps.mpv
|
||||||
|
|
||||||
home.apps.vivaldi
|
home.apps.vivaldi
|
||||||
|
home.apps.firefox
|
||||||
home.apps.telegram
|
home.apps.telegram
|
||||||
home.apps.quassel
|
home.apps.quassel
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ inputs, tree, config, lib, ... }:
|
{ inputs, tree, config, pkgs, lib, ... }:
|
||||||
with lib; {
|
with lib; {
|
||||||
options.home-manager.users = mkOption {
|
options.home-manager.users = mkOption {
|
||||||
type = types.attrsOf (types.submoduleWith {
|
type = types.attrsOf (types.submoduleWith {
|
||||||
|
@ -13,6 +13,7 @@ with lib; {
|
||||||
home-manager = {
|
home-manager = {
|
||||||
useGlobalPkgs = true;
|
useGlobalPkgs = true;
|
||||||
useUserPackages = true;
|
useUserPackages = true;
|
||||||
|
sharedModules = with tree; [ modules.home.vscode-mod-module ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,6 +26,8 @@
|
||||||
gnome.gnome-tweaks
|
gnome.gnome-tweaks
|
||||||
gnomeExtensions.just-perfection
|
gnomeExtensions.just-perfection
|
||||||
];
|
];
|
||||||
|
|
||||||
|
services.gnome.gnome-browser-connector.enable = true;
|
||||||
services.udev.packages = with pkgs; [ gnome3.gnome-settings-daemon ];
|
services.udev.packages = with pkgs; [ gnome3.gnome-settings-daemon ];
|
||||||
|
|
||||||
services.power-profiles-daemon.enable = lib.mkForce false;
|
services.power-profiles-daemon.enable = lib.mkForce false;
|
||||||
|
|
Loading…
Reference in a new issue