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; colorScheme = inputs.nix-colors.colorSchemes.catppuccin-mocha;
# wallpaper = outputs.wallpapers.cyberpunk-city-red; nixpkgs = {
# config = {
# # ------ ----- ------ permittedInsecurePackages = [
# # | DP-3 | | DP-1| | DP-2 | "electron-25.9.0"
# # ------ ----- ------ ];
# 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";
# }
# ];
} }

View file

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

View file

@ -12,6 +12,7 @@
hasLazydocker = hasPackage "lazydocker"; hasLazydocker = hasPackage "lazydocker";
hasNixYourShell = hasPackage "nix-your-shell"; hasNixYourShell = hasPackage "nix-your-shell";
hasShellColor = config.programs.shellcolor.enable; hasShellColor = config.programs.shellcolor.enable;
hasWezterm = config.programs.wezterm.enable;
shellcolor = "${pkgs.shellcolord}/bin/shellcolor"; shellcolor = "${pkgs.shellcolord}/bin/shellcolor";
in { in {
programs.fish = { programs.fish = {
@ -44,6 +45,14 @@ in {
name = "autopair"; name = "autopair";
src = pkgs.fishPlugins.autopair.src; src = pkgs.fishPlugins.autopair.src;
} }
{
name = "puffer";
src = pkgs.fishPlugins.puffer.src;
}
{
name = "z";
src = pkgs.fishPlugins.z.src;
}
]; ];
shellAliases = { shellAliases = {
lzg = mkIf hasLazygit "lazygit"; lzg = mkIf hasLazygit "lazygit";
@ -53,6 +62,13 @@ in {
slp = "systemctl suspend"; slp = "systemctl suspend";
sdn = "shutdown 0"; sdn = "shutdown 0";
nrs = "nh os switch ~/.setup"; 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 { shellAbbrs = rec {
jqless = "jq -C | less -r"; jqless = "jq -C | less -r";
@ -65,8 +81,13 @@ in {
nbn = "nix build nixpkgs#"; nbn = "nix build nixpkgs#";
nf = "nix flake"; nf = "nix flake";
ls = mkIf hasExa "eza"; glk = "gpg --list-keys --with-keygrip";
exa = mkIf hasExa "eza"; 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 = { functions = {
# Disable greeting # Disable greeting

View file

@ -69,6 +69,7 @@ in {
type = "lua"; type = "lua";
} }
cmp-path
nvim-cmp nvim-cmp
{ {
plugin = nvim-cmp; plugin = nvim-cmp;
@ -101,6 +102,7 @@ in {
p.java p.java
p.rust p.rust
p.cpp p.cpp
p.c
p.css p.css
p.csv p.csv
p.dockerfile p.dockerfile
@ -143,6 +145,7 @@ in {
nui-nvim nui-nvim
{ {
plugin = neo-tree-nvim; plugin = neo-tree-nvim;
config = builtins.readFile ./plugin/neo-tree.lua;
type = "lua"; type = "lua";
} }
@ -172,6 +175,23 @@ in {
config = builtins.readFile ./plugin/none-ls.lua; config = builtins.readFile ./plugin/none-ls.lua;
type = "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 = '' extraLuaConfig = ''

View file

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

View file

@ -42,5 +42,6 @@ cmp.setup({
sources = { sources = {
{ name = "nvim_lsp" }, { name = "nvim_lsp" },
{ name = "luasnip" }, { 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 = [ imports = [
./firefox.nix ./firefox.nix
./alacritty.nix ./alacritty.nix
./wezterm.nix
./font.nix ./font.nix
./playerctl.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 = { settings = {
"dom.security.https_only_mode" = true; "dom.security.https_only_mode" = true;
"browser.download.panel.shown" = true; "browser.download.panel.shown" = false;
"browser.toolbars.bookmarks.visibility" = "always";
"signon.rememberSignons" = false; "signon.rememberSignons" = false;
"browser.formfill.enable" = false; "browser.formfill.enable" = false;
"signon. prefillForms" = false; "signon. prefillForms" = false;
"browser.shell.checkDefaultBrowser" = 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}''; "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 = { arkenfox = {
enable = true; enable = true;
"0000".enable = true; "0000".enable = true;
"0100" = { "0100" = {
enable = true; enable = true;
# Allow setting homepage # Allow setting homepage
"0102"."browser.startup.page".value = 1; "0102"."browser.startup.page".value = 1;
}; };
"0200" = { "0200" = {
enable = true; enable = true;
}; };
"0300".enable = true; "0300".enable = true;
# We keep safebrowsing # We keep safebrowsing
"0400".enable = false; "0400".enable = false;
"0600" = { "0600" = {
enable = true; enable = true;
"0610"."browser.send_pings".enable = true; "0610"."browser.send_pings".enable = true;
}; };
"0700" = { "0700" = {
enable = true; enable = true;
# Disable DNS over HTTPS # Disable DNS over HTTPS
"0710"."network.trr.mode".value = 5; "0710"."network.trr.mode".value = 5;
}; };
# "0800" = { # "0800" = {
# enable = true; # enable = true;
# # Keep using url bar as search bar # # Keep using url bar as search bar
# "0801"."keyword.enabled".value = true; # "0801"."keyword.enabled".value = true;
# }; # };
"0900".enable = true; "0900".enable = true;
"1000" = { "1000" = {
enable = true; enable = true;
# Enable disk cache for performance reasons # Enable disk cache for performance reasons
"1001"."browser.cache.disk.enable".enable = true; "1001"."browser.cache.disk.enable".enable = true;
"1001"."browser.cache.disk.enable".value = true; "1001"."browser.cache.disk.enable".value = true;
}; };
"1200".enable = true; "1200".enable = true;
# I don't use container tabs # I don't use container tabs
"1700".enable = false; "1700".enable = false;
"2600" = { "2600" = {
enable = true; enable = true;
# The recent documents feature is useful # useDownloadDir
"2653".enable = false; "2651".enable = false;
}; # always_ask_before_handling_new_types
"2700".enable = true; "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, ...}: { {pkgs, ...}: {
imports = [ 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/kde-connect.nix
../common/optional/gnome-keyring.nix ../common/optional/gnome-keyring.nix
../common/optional/adb.nix ../common/optional/adb.nix
../common/optional/docker.nix
../common/optional/gaming/gamemode.nix ../common/optional/gaming/gamemode.nix
../common/optional/gaming/steam.nix ../common/optional/gaming/steam.nix
../common/optional/gaming/vr.nix ../common/optional/gaming/vr.nix
../common/optional/desktop/japanese.nix
../common/optional/udisks.nix
]; ];
nixpkgs = { nixpkgs = {

View file

@ -18,17 +18,17 @@
boot.extraModulePackages = []; boot.extraModulePackages = [];
fileSystems."/" = { fileSystems."/" = {
device = "/dev/disk/by-uuid/f9ba57fb-0b82-47e0-8189-7bbebc530e2b"; device = "/dev/disk/by-uuid/e92a5e85-52ce-4627-be79-5c07a99e2d1b";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = { fileSystems."/boot" = {
device = "/dev/disk/by-uuid/BCF2-51D4"; device = "/dev/disk/by-uuid/348E-AC69";
fsType = "vfat"; fsType = "vfat";
}; };
swapDevices = [ 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 # Enables DHCP on each ethernet and wireless interface. In case of scripted networking

View file

@ -14,6 +14,7 @@
./nix.nix ./nix.nix
./podman.nix ./podman.nix
./power-button.nix ./power-button.nix
./documentation.nix
] ]
++ (builtins.attrValues outputs.nixosModules); ++ (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, pkgs,
inputs, inputs,
lib,
... ...
}: { }: {
imports = [ imports = [
inputs.xremap.nixosModules.default 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 = { services.xremap = {
withX11 = true; withX11 = true;
watch = true;
# debug = true;
userName = "ghoscht";
serviceMode = "system";
config = { config = {
keymap = [ keymap = [
{ {
name = "main remaps"; name = "main remaps";
remap = { remap = {
super-e = { super-e = {
launch = ["firefox"]; launch = ["${lib.getExe pkgs.pavucontrol}"];
}; };
}; };
} }

View file

@ -7,45 +7,7 @@
programs = { programs = {
steam = { steam = {
enable = true; 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 = { xdg.mime = {

View file

@ -1,6 +1,6 @@
{ {
# programs.alvr = { programs.alvr = {
# enable = true; enable = true;
# openFirewall = 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, fetchurl,
}: let }: let
pname = "alvr"; pname = "alvr";
version = "20.5.0"; version = "v21.0.0-dev00+nightly.2023.12.31";
src = fetchurl { src = fetchurl {
url = "https://github.com/alvr-org/ALVR/releases/download/v${version}/ALVR-x86_64.AppImage"; url = "https://github.com/alvr-org/ALVR-nightly/releases/download/v21.0.0-dev00%2Bnightly.2023.12.31/ALVR-x86_64.AppImage";
hash = "sha256-shA93fK/F+PNRv+DCTfvN+tm0w/sj/yPEYc5ms2vHRk="; hash = "sha256-bRnuQGGSXd+QJGKzACgfwFOmKgk3u9JoIj6krB+HHC8=";
}; };
appimageContents = appimageTools.extractType2 {inherit pname version src;}; appimageContents = appimageTools.extractType2 {inherit pname version src;};

View file

@ -3,4 +3,5 @@
{pkgs, ...}: { {pkgs, ...}: {
# example = pkgs.callPackage ./example { }; # example = pkgs.callPackage ./example { };
alvr = pkgs.callPackage ./alvr {}; 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
'';
}