Compare commits

...

29 commits

Author SHA1 Message Date
603971e590
XRemap: Try to fix x11 gui application launching 2024-01-07 15:45:50 +01:00
5d3e9d47ff
Remove unused template content 2024-01-07 15:45:15 +01:00
e53f2fd23d
Register feishin packaging to overlay 2024-01-07 15:44:59 +01:00
e2d1a54594
Allow electron as insecure package 2024-01-07 15:44:22 +01:00
f364afefd9
Firefox: Add some customization 2024-01-07 15:43:45 +01:00
61bcca0e3d
Fix vr setup 2024-01-07 15:43:08 +01:00
14f7c99c30
Remove quietboot support
somehow didn't really work, boot just failed and i had to fix it with a rescue media
2024-01-07 15:42:46 +01:00
fc804cd443
Adalbert: Enable docker service 2024-01-07 15:42:16 +01:00
dc8c3121ef
Enable udisks service 2024-01-07 15:41:41 +01:00
627b5a6aa1
Update drive ids after reinstall 2024-01-07 15:41:20 +01:00
4a67198a86
Add kde plasma 2024-01-07 15:41:04 +01:00
ea753db9c4
Add japanese support
writing & font support
2024-01-07 15:40:53 +01:00
568f5dfbc3
Enable man pages for linux
good for coding
2024-01-07 15:40:18 +01:00
26bf0c8618
Add easyeffects config 2024-01-07 15:39:55 +01:00
035dfa62a1
Add graphical applications 2024-01-07 15:39:41 +01:00
a019e2f168
Package feishin
current nix packaging doesn't have newest version because of electron issues
2024-01-07 15:39:11 +01:00
c89472f897
Remove homemanager steam 2024-01-07 15:37:54 +01:00
a4d176a3b8
Add wezterm to default desktop tools 2024-01-07 15:37:41 +01:00
64168f40c9
Add wezterm 2024-01-07 15:37:18 +01:00
6894adf02e
Fish: add abbreviations & aliases 2024-01-07 15:37:01 +01:00
8c2ed133c3
Fish: Add plugins
puffer
z
2024-01-07 15:36:16 +01:00
b96bf6dd06
Add cli tools 2024-01-07 15:35:19 +01:00
5035b060f3
Neovim: Add nvim-surround 2024-01-07 15:34:58 +01:00
9017706dbd
Neovim: Add autopair plugin 2024-01-07 15:33:57 +01:00
1d2f4c677c
Neovim: Add treesitter c grammar 2024-01-07 15:33:41 +01:00
24e1850800
Neovim: Add tabbar 2024-01-07 15:33:29 +01:00
4303d86e7f
Neovim: Add neotree styling 2024-01-07 15:32:57 +01:00
954653ad31
Neovim: Add path completion 2024-01-07 15:32:21 +01:00
2ecc6e684a
Neovim: Disable empty line squiggles
remove the "~" character which signals an empty line
2024-01-07 15:31:34 +01:00
28 changed files with 301 additions and 194 deletions

View file

@ -13,34 +13,11 @@ in {
];
colorScheme = inputs.nix-colors.colorSchemes.catppuccin-mocha;
# wallpaper = outputs.wallpapers.cyberpunk-city-red;
#
# # ------ ----- ------
# # | DP-3 | | DP-1| | DP-2 |
# # ------ ----- ------
# monitors = [
# {
# name = "DP-3";
# width = 1920;
# height = 1080;
# x = 0;
# workspace = "3";
# enabled = false;
# }
# {
# name = "DP-1";
# width = 2560;
# height = 1080;
# x = 1920;
# workspace = "1";
# primary = true;
# }
# {
# name = "DP-2";
# width = 1920;
# height = 1080;
# x = 4480;
# workspace = "2";
# }
# ];
nixpkgs = {
config = {
permittedInsecurePackages = [
"electron-25.9.0"
];
};
};
}

View file

@ -20,10 +20,14 @@
httpie # Better curl
diffsitter # Better diff
jq # JSON pretty printer and manipulator
timer # To help with my ADHD paralysis
timer # Nice looking timer
lazydocker # Docker TUI
neofetch
tldr # nice & short manual snippets
neofetch # Unixporn stuff
tldr # Nice & short manual snippets
ntfy-sh # Push notifications to other devices
ipinfo # IP geolocation
mpv # Video player
nvd # Differ
nix-output-monitor

View file

@ -12,6 +12,7 @@
hasLazydocker = hasPackage "lazydocker";
hasNixYourShell = hasPackage "nix-your-shell";
hasShellColor = config.programs.shellcolor.enable;
hasWezterm = config.programs.wezterm.enable;
shellcolor = "${pkgs.shellcolord}/bin/shellcolor";
in {
programs.fish = {
@ -44,6 +45,14 @@ in {
name = "autopair";
src = pkgs.fishPlugins.autopair.src;
}
{
name = "puffer";
src = pkgs.fishPlugins.puffer.src;
}
{
name = "z";
src = pkgs.fishPlugins.z.src;
}
];
shellAliases = {
lzg = mkIf hasLazygit "lazygit";
@ -53,6 +62,13 @@ in {
slp = "systemctl suspend";
sdn = "shutdown 0";
nrs = "nh os switch ~/.setup";
ls = mkIf hasExa "eza";
ll = mkIf hasExa "eza -l";
la = mkIf hasExa "eza -la";
exa = mkIf hasExa "eza";
imgcat = mkIf hasWezterm "wezterm imgcat";
};
shellAbbrs = rec {
jqless = "jq -C | less -r";
@ -65,8 +81,13 @@ in {
nbn = "nix build nixpkgs#";
nf = "nix flake";
ls = mkIf hasExa "eza";
exa = mkIf hasExa "eza";
glk = "gpg --list-keys --with-keygrip";
gssh = "gpg --export-ssh-key";
gnk = "gpg --full-generate-key --expert";
gek = "gpg --edit-key --expert";
udmount = "udisksctl mount -b";
udumount = "udisksctl unmount -b";
};
functions = {
# Disable greeting

View file

@ -69,6 +69,7 @@ in {
type = "lua";
}
cmp-path
nvim-cmp
{
plugin = nvim-cmp;
@ -101,6 +102,7 @@ in {
p.java
p.rust
p.cpp
p.c
p.css
p.csv
p.dockerfile
@ -143,6 +145,7 @@ in {
nui-nvim
{
plugin = neo-tree-nvim;
config = builtins.readFile ./plugin/neo-tree.lua;
type = "lua";
}
@ -172,6 +175,23 @@ in {
config = builtins.readFile ./plugin/none-ls.lua;
type = "lua";
}
{
plugin = nvim-autopairs;
config = "require('nvim-autopairs').setup({})";
type = "lua";
}
{
plugin = barbar-nvim;
config = builtins.readFile ./plugin/barbar.lua;
}
{
plugin = nvim-surround;
config = "require('nvim-surround').setup({})";
type = "lua";
}
];
extraLuaConfig = ''

View file

@ -16,3 +16,6 @@ vim.o.updatetime = 300
vim.o.termguicolors = true
vim.o.mouse = "a"
-- disable empty line ~
vim.o.fillchars = "eob: "

View file

@ -42,5 +42,6 @@ cmp.setup({
sources = {
{ name = "nvim_lsp" },
{ name = "luasnip" },
{ name = "path" },
},
})

View file

@ -0,0 +1,19 @@
require("neo-tree").setup({
close_if_last_window = true, -- Close Neo-tree if it is the last window left in the tab
hide_root_node = true, -- Hide the root node
filesystem = {
filtered_items = {
visible = false,
hide_dotfiles = false,
hide_gitignored = false,
hide_by_name = {
".git",
".DS_Store",
"thumbs.db",
},
show_hidden_count = false,
},
},
})
vim.keymap.set("n", "<C-n>", "<Cmd>Neotree toggle<CR>")

View file

@ -1,8 +1,18 @@
{
{pkgs, ...}: {
imports = [
./firefox.nix
./alacritty.nix
./wezterm.nix
./font.nix
./playerctl.nix
./easyeffects.nix
];
home.packages = with pkgs; [
jellyfin-media-player # watch shows & movies from jellyfin with hardware decoding
feishin-appimage # self-packaged feishin while electron build fails
signal-desktop # secure messenger
webcord-vencord # more "privacy friendly" discord client
obsidian
];
}

View file

@ -0,0 +1,6 @@
{
# services.easyeffects.enable = true;
xdg.configFile."easyeffects/output/Beyerdynamic_DT990_Oratory.json" = {
source = ../../../../rsc/config/easyeffects/Beyerdynamic_DT990_Oratory.json;
};
}

View file

@ -117,58 +117,67 @@
settings = {
"dom.security.https_only_mode" = true;
"browser.download.panel.shown" = true;
"browser.download.panel.shown" = false;
"browser.toolbars.bookmarks.visibility" = "always";
"signon.rememberSignons" = false;
"browser.formfill.enable" = false;
"signon. prefillForms" = false;
"browser.shell.checkDefaultBrowser" = false;
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
# "browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
"browser.uiCustomization.state" = ''{"placements":{"widget-overflow-fixed-list":[],"unified-extensions-area":["addon_darkreader_org-browser-action","plasma-browser-integration_kde_org-browser-action","_506e023c-7f2b-40a3-8066-bc5deb40aebe_-browser-action","_testpilot-containers-browser-action","7esoorv3_alefvanoon_anonaddy_me-browser-action","_a6c4a591-f1b2-4f03-b3ff-767e5bedf4e7_-browser-action","gdpr_cavi_au_dk-browser-action","firefoxcolor_mozilla_com-browser-action","firefox-translations-addon_mozilla_org-browser-action"],"nav-bar":["back-button","forward-button","stop-reload-button","urlbar-container","downloads-button","unified-extensions-button","ublock0_raymondhill_net-browser-action","_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action"],"toolbar-menubar":["menubar-items"],"TabsToolbar":["tabbrowser-tabs","new-tab-button","alltabs-button"],"PersonalToolbar":["personal-bookmarks"]},"seen":["save-to-pocket-button","developer-button","_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action","addon_darkreader_org-browser-action","ublock0_raymondhill_net-browser-action","plasma-browser-integration_kde_org-browser-action","_506e023c-7f2b-40a3-8066-bc5deb40aebe_-browser-action","_testpilot-containers-browser-action","7esoorv3_alefvanoon_anonaddy_me-browser-action","_a6c4a591-f1b2-4f03-b3ff-767e5bedf4e7_-browser-action","gdpr_cavi_au_dk-browser-action","firefoxcolor_mozilla_com-browser-action","firefox-translations-addon_mozilla_org-browser-action"],"dirtyAreaCache":["nav-bar","PersonalToolbar","toolbar-menubar","TabsToolbar","unified-extensions-area"],"currentVersion":20,"newElementCount":4}'';
};
arkenfox = {
enable = true;
"0000".enable = true;
"0100" = {
enable = true;
# Allow setting homepage
"0102"."browser.startup.page".value = 1;
};
"0200" = {
enable = true;
};
"0300".enable = true;
# We keep safebrowsing
"0400".enable = false;
"0600" = {
enable = true;
"0610"."browser.send_pings".enable = true;
};
"0700" = {
enable = true;
# Disable DNS over HTTPS
"0710"."network.trr.mode".value = 5;
};
# "0800" = {
# enable = true;
# # Keep using url bar as search bar
# "0801"."keyword.enabled".value = true;
# };
"0900".enable = true;
"1000" = {
enable = true;
# Enable disk cache for performance reasons
"1001"."browser.cache.disk.enable".enable = true;
"1001"."browser.cache.disk.enable".value = true;
};
"1200".enable = true;
# I don't use container tabs
"1700".enable = false;
"2600" = {
enable = true;
# The recent documents feature is useful
"2653".enable = false;
};
"2700".enable = true;
"0000".enable = true;
"0100" = {
enable = true;
# Allow setting homepage
"0102"."browser.startup.page".value = 1;
};
"0200" = {
enable = true;
};
"0300".enable = true;
# We keep safebrowsing
"0400".enable = false;
"0600" = {
enable = true;
"0610"."browser.send_pings".enable = true;
};
"0700" = {
enable = true;
# Disable DNS over HTTPS
"0710"."network.trr.mode".value = 5;
};
# "0800" = {
# enable = true;
# # Keep using url bar as search bar
# "0801"."keyword.enabled".value = true;
# };
"0900".enable = true;
"1000" = {
enable = true;
# Enable disk cache for performance reasons
"1001"."browser.cache.disk.enable".enable = true;
"1001"."browser.cache.disk.enable".value = true;
};
"1200".enable = true;
# I don't use container tabs
"1700".enable = false;
"2600" = {
enable = true;
# useDownloadDir
"2651".enable = false;
# always_ask_before_handling_new_types
"2654".enable = false;
};
"2700".enable = true;
"2800" = {
"2812".enable = true;
};
"5000" = {
"5008".enable = true;
};
};
};
};

View file

@ -0,0 +1,53 @@
{
pkgs,
config,
...
}: {
programs.wezterm = {
enable = true;
colorSchemes = {
"${config.colorscheme.slug}" = with config.colorScheme; {
foreground = "#${colors.base05}";
background = "#${colors.base00}";
ansi = [
"#${colors.base00}"
"#${colors.base08}"
"#${colors.base0B}"
"#${colors.base0A}"
"#${colors.base0D}"
"#${colors.base0E}"
"#${colors.base0C}"
"#${colors.base05}"
];
brights = [
"#${colors.base03}"
"#${colors.base08}"
"#${colors.base0B}"
"#${colors.base0A}"
"#${colors.base0D}"
"#${colors.base0E}"
"#${colors.base0C}"
"#${colors.base07}"
];
cursor_fg = "#${colors.base00}";
cursor_bg = "#${colors.base05}";
selection_fg = "#${colors.base00}";
selection_bg = "#${colors.base05}";
};
};
extraConfig = ''
return {
font = wezterm.font("${config.fontProfiles.monospace.family}"),
font_size = 12.0,
window_background_opacity = 0.83,
color_scheme = "${config.colorscheme.slug}",
hide_tab_bar_if_only_one_tab = true,
window_close_confirmation = "NeverPrompt",
set_environment_variables = {
TERM = 'wezterm',
},
}
'';
};
}

View file

@ -1,5 +1,4 @@
{pkgs, ...}: {
imports = [
# ./steam.nix
];
}

View file

@ -1,31 +0,0 @@
{
pkgs,
lib,
config,
...
}: let
steam-with-pkgs = pkgs.steam.override {
extraPkgs = pkgs:
with pkgs; [
xorg.libXcursor
xorg.libXi
xorg.libXinerama
xorg.libXScrnSaver
libpng
libpulseaudio
libvorbis
stdenv.cc.cc.lib
libkrb5
keyutils
gamescope
mangohud
];
};
in {
home.packages = with pkgs; [
steam-with-pkgs
gamescope
mangohud
protontricks
];
}

View file

@ -32,9 +32,12 @@
../common/optional/kde-connect.nix
../common/optional/gnome-keyring.nix
../common/optional/adb.nix
../common/optional/docker.nix
../common/optional/gaming/gamemode.nix
../common/optional/gaming/steam.nix
../common/optional/gaming/vr.nix
../common/optional/desktop/japanese.nix
../common/optional/udisks.nix
];
nixpkgs = {

View file

@ -18,17 +18,17 @@
boot.extraModulePackages = [];
fileSystems."/" = {
device = "/dev/disk/by-uuid/f9ba57fb-0b82-47e0-8189-7bbebc530e2b";
device = "/dev/disk/by-uuid/e92a5e85-52ce-4627-be79-5c07a99e2d1b";
fsType = "ext4";
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/BCF2-51D4";
device = "/dev/disk/by-uuid/348E-AC69";
fsType = "vfat";
};
swapDevices = [
{device = "/dev/disk/by-uuid/4834fbc3-3feb-4b93-b11f-8b9bd054c5c1";}
{device = "/dev/disk/by-uuid/ae322cab-c083-4644-80ff-9122498d54e8";}
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking

View file

@ -14,6 +14,7 @@
./nix.nix
./podman.nix
./power-button.nix
./documentation.nix
]
++ (builtins.attrValues outputs.nixosModules);

View file

@ -0,0 +1,9 @@
{pkgs, ...}: {
environment.systemPackages = with pkgs; [man-pages man-pages-posix];
documentation.dev.enable = true;
documentation.man = {
# In order to enable to mandoc man-db has to be disabled.
man-db.enable = false;
mandoc.enable = true;
};
}

View file

@ -0,0 +1,12 @@
{pkgs, ...}: {
i18n.inputMethod = {
enabled = "fcitx5";
fcitx5.addons = with pkgs; [
fcitx5-mozc
fcitx5-gtk
];
};
fonts.fonts = with pkgs; [
noto-fonts-cjk-sans
];
}

View file

@ -0,0 +1,15 @@
{pkgs, ...}: {
imports = [./global.nix ./x11.nix];
services.xserver.desktopManager.plasma5.enable = true;
environment.plasma5.excludePackages = with pkgs.libsForQt5; [
elisa
gwenview
okular
oxygen
khelpcenter
konsole
plasma-browser-integration
print-manager
];
}

View file

@ -1,21 +1,38 @@
{
pkgs,
inputs,
lib,
...
}: {
imports = [
inputs.xremap.nixosModules.default
];
hardware.uinput.enable = true;
users.groups.uinput.members = ["ghoscht"];
users.groups.input.members = ["ghoscht"];
systemd.user.services.set-xhost = {
description = "Run a one-shot command upon user login";
path = [pkgs.xorg.xhost];
wantedBy = ["default.target"];
script = "xhost +SI:localuser:root";
environment.DISPLAY = "DP-4"; # NOTE: This is hardcoded for this flake
};
services.xremap = {
withX11 = true;
watch = true;
# debug = true;
userName = "ghoscht";
serviceMode = "system";
config = {
keymap = [
{
name = "main remaps";
remap = {
super-e = {
launch = ["firefox"];
launch = ["${lib.getExe pkgs.pavucontrol}"];
};
};
}

View file

@ -7,45 +7,7 @@
programs = {
steam = {
enable = true;
remotePlay.openFirewall = true;
};
alvr = {
enable = true;
openFirewall = true;
};
};
hardware = {
# Enable Steam hardware compatibility
# steam-hardware.enable = true;
# Enable OpenGL
opengl = {
enable = true;
driSupport = true;
driSupport32Bit = true;
extraPackages = with pkgs; [libva-utils];
};
};
# Allow Minecraft server ports
networking.firewall.allowedTCPPorts = [25565];
# Fixes SteamLink/Remote play crashing, add packages necessary for VR
environment.systemPackages = with pkgs;
[libcanberra protonup-qt]
++ [
android-tools
android-udev-rules
sidequest
BeatSaberModManager
helvum
];
# Fixes issue with SteamVR not starting
system.activationScripts = {
fixSteamVR = "${pkgs.libcap}/bin/setcap CAP_SYS_NICE+ep /home/ghoscht/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/vrcompositor-launcher";
};
xdg.mime = {

View file

@ -1,6 +1,6 @@
{
# programs.alvr = {
# enable = true;
# openFirewall = true;
# };
programs.alvr = {
enable = true;
openFirewall = true;
};
}

View file

@ -1,33 +0,0 @@
{
pkgs,
config,
...
}: {
console = {
useXkbConfig = true;
earlySetup = false;
};
boot = {
plymouth = {
enable = true;
theme = "spinner-monochrome";
themePackages = [
(pkgs.plymouth-spinner-monochrome.override {
inherit (config.boot.plymouth) logo;
})
];
};
loader.timeout = 0;
kernelParams = [
"quiet"
"loglevel=3"
"systemd.show_status=auto"
"udev.log_level=3"
"rd.udev.log_level=3"
"vt.global_cursor_default=0"
];
consoleLogLevel = 0;
initrd.verbose = false;
};
}

View file

@ -0,0 +1,3 @@
{
services.udisks2.enable = true;
}

View file

@ -4,10 +4,10 @@
fetchurl,
}: let
pname = "alvr";
version = "20.5.0";
version = "v21.0.0-dev00+nightly.2023.12.31";
src = fetchurl {
url = "https://github.com/alvr-org/ALVR/releases/download/v${version}/ALVR-x86_64.AppImage";
hash = "sha256-shA93fK/F+PNRv+DCTfvN+tm0w/sj/yPEYc5ms2vHRk=";
url = "https://github.com/alvr-org/ALVR-nightly/releases/download/v21.0.0-dev00%2Bnightly.2023.12.31/ALVR-x86_64.AppImage";
hash = "sha256-bRnuQGGSXd+QJGKzACgfwFOmKgk3u9JoIj6krB+HHC8=";
};
appimageContents = appimageTools.extractType2 {inherit pname version src;};

View file

@ -3,4 +3,5 @@
{pkgs, ...}: {
# example = pkgs.callPackage ./example { };
alvr = pkgs.callPackage ./alvr {};
feishin-appimage = pkgs.callPackage ./feishin {};
}

26
pkgs/feishin/default.nix Normal file
View file

@ -0,0 +1,26 @@
{
lib,
appimageTools,
fetchurl,
}: let
pname = "feishin";
version = "0.5.3";
src = fetchurl {
url = "https://github.com/jeffvli/feishin/releases/download/v${version}/Feishin-${version}-linux-x86_64.AppImage";
hash = "sha256-1JlsEBLVBaaae9NDGsGI5CyE+XcBunSt0CWQFpkL87w=";
};
appimageContents = appimageTools.extractType2 {inherit pname version src;};
in
appimageTools.wrapType2 {
inherit pname version src;
extraInstallCommands = ''
mv $out/bin/${pname}-${version} $out/bin/${pname}
install -Dm444 ${appimageContents}/feishin.desktop -t $out/share/applications
substituteInPlace $out/share/applications/feishin.desktop \
--replace 'Exec=AppRun --no-sandbox %U' 'Exec=${pname}'
cp -r ${appimageContents}/usr/share/icons $out/share
'';
}