summaryrefslogtreecommitdiff
path: root/nix_archive/nix/programs
diff options
context:
space:
mode:
authorAndrew Opalach <andrew@akon.city> 2025-10-17 12:22:00 -0400
committerAndrew Opalach <andrew@akon.city> 2025-10-17 12:32:42 -0400
commit544da1ba50d9cbf51a18ca0abf1db66b3baa7460 (patch)
tree1caa87664ea4937c5f4e6e8dc83c49b3132ddd70 /nix_archive/nix/programs
parent85a47287e56ba9100420246531ebea5996cc0486 (diff)
downloaddotfiles-544da1ba50d9cbf51a18ca0abf1db66b3baa7460.tar.gz
dotfiles-544da1ba50d9cbf51a18ca0abf1db66b3baa7460.tar.bz2
dotfiles-544da1ba50d9cbf51a18ca0abf1db66b3baa7460.zip
Gentoo desktop
Diffstat (limited to 'nix_archive/nix/programs')
-rw-r--r--nix_archive/nix/programs/bash.nix65
-rw-r--r--nix_archive/nix/programs/docker.nix4
-rw-r--r--nix_archive/nix/programs/firefox.nix145
-rw-r--r--nix_archive/nix/programs/foot.nix51
-rw-r--r--nix_archive/nix/programs/kdeconnect.nix12
-rw-r--r--nix_archive/nix/programs/kitty.nix112
-rw-r--r--nix_archive/nix/programs/nvim.nix235
-rw-r--r--nix_archive/nix/programs/obs.nix11
-rw-r--r--nix_archive/nix/programs/sunshine.nix29
-rw-r--r--nix_archive/nix/programs/sway.nix360
-rw-r--r--nix_archive/nix/programs/waydroid.nix3
-rw-r--r--nix_archive/nix/programs/zsh.nix76
12 files changed, 1103 insertions, 0 deletions
diff --git a/nix_archive/nix/programs/bash.nix b/nix_archive/nix/programs/bash.nix
new file mode 100644
index 0000000..571b4fe
--- /dev/null
+++ b/nix_archive/nix/programs/bash.nix
@@ -0,0 +1,65 @@
+{ config, pkgs, ... }: {
+ users.defaultUserShell = pkgs.bashInteractive;
+ environment.sessionVariables = {
+ SHELL = "${pkgs.bashInteractive}/bin/bash";
+ };
+ home-manager.users.andrew = let
+ homeDir = "${config.users.users.andrew.home}";
+ in {
+ programs.bash = {
+ enable = true;
+ shellAliases = {
+ cp = "rsync -av";
+ top = "htop";
+ bc = "bc -l";
+ pgrep = "pgrep -f";
+ make = "make -j6";
+ diff = "diff -u";
+ gdb = "gdb -q";
+ mail = "neomutt";
+ iroha = "ssh andrew@iroha";
+ moyo = "ssh andrew@moyo";
+ zasshi = "ssh andrew@zasshi";
+ denpa = "ssh moyo -t 'ssh 192.168.122.89'";
+ rod = "ssh -p 1738 rod";
+ bmrg = "ssh boomerang";
+ cmv-add = "$HOME/c/camu/scripts/cmv_add.sh";
+ cmv-pause = "cmv-add PAUSE";
+ cmv-next = "cmv-add NEXT";
+ cmv-prev = "cmv-add PREV";
+ cmv-shuffle = "cmv-add SHUFFLE";
+ cmv-sort = "cmv-add SORT";
+ cmv-reverse = "cmv-add REVERSE";
+ cmv-clear = "cmv-add CLEAR";
+ };
+ historyControl = [ "erasedups" ];
+ historySize = 10000;
+ historyFile = "${homeDir}/.bash_history";
+ historyFileSize = 100000;
+ initExtra = ''
+ bind 'set completion-query-items 0'
+ bind 'set show-all-if-ambiguous on'
+ bind 'set show-all-if-unmodified on'
+ bind 'set menu-complete-display-prefix on'
+ bind '"\t": menu-complete'
+ bind '"\e[Z": menu-complete-backward'
+ RESET="\001\017\002"
+ NORMAL="\001\033[0m\002"
+ YELLOW="\001\033[0;33m\002"
+ BLUE="\001\033[0;34m\002"
+ MAGENTA="\001\033[0;35m\002"
+ CYAN="\001\033[0;36m\002"
+ RED="\001\033[0;31m\002"
+ exit_code_guy()
+ {
+ if [ $? -eq 0 ]; then
+ printf "(・_・) >"
+ else
+ printf "(″ロ゛) >"
+ fi
+ }
+ export PS1="$RESET$MAGENTA\u@$CYAN\H$MAGENTA:\w\$(exit_code_guy)$NORMAL "
+ '';
+ };
+ };
+}
diff --git a/nix_archive/nix/programs/docker.nix b/nix_archive/nix/programs/docker.nix
new file mode 100644
index 0000000..3491a80
--- /dev/null
+++ b/nix_archive/nix/programs/docker.nix
@@ -0,0 +1,4 @@
+{ ... }: {
+ virtualisation.docker.enable = true;
+ users.users.andrew.extraGroups = [ "docker" ];
+}
diff --git a/nix_archive/nix/programs/firefox.nix b/nix_archive/nix/programs/firefox.nix
new file mode 100644
index 0000000..d278bd4
--- /dev/null
+++ b/nix_archive/nix/programs/firefox.nix
@@ -0,0 +1,145 @@
+{ config, pkgs, ... }:
+let
+ colo = config.local.scheme;
+in {
+ environment.systemPackages = with pkgs; [
+ firefox-wayland
+ ];
+ environment.sessionVariables = {
+ BROWSER = "firefox";
+ };
+ services.psd.enable = true;
+ home-manager.users.andrew = {
+ home.file."user-overrides.js" = {
+ target = ".mozilla/firefox/default/user-overrides.js";
+ source = ../../../files/firefox/user-overrides.js;
+ };
+ home.file."firefox-gnome-theme" = {
+ target = ".mozilla/firefox/default/chrome/firefox-gnome-theme";
+ source = (pkgs.fetchFromGitHub {
+ owner = "rafaelmardojai";
+ repo = "firefox-gnome-theme";
+ rev = "0909cfe4a2af8d358ad13b20246a350e14c2473d";
+ hash = "sha256-lizRM2pj6PHrR25yimjyFn04OS4wcdbc38DCdBVa2rk=";
+ });
+ };
+ home.file."customChrome.css" = {
+ target = ".mozilla/firefox/default/chrome/customChrome.css";
+ source = pkgs.writeText "customChrome.css" ''
+ @namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
+
+ @media (prefers-color-scheme: ${colo.lightness}) {
+ :root {
+ /* Accent */
+ --gnome-accent-bg: #${colo.color3};
+ --gnome-accent: #${colo.color4};
+
+ --gnome-toolbar-star-button: #${colo.color4};
+
+ /* Window */
+ --gnome-window-background: #${colo.background};
+ --gnome-window-color: #${colo.foreground};
+ --gnome-view-background: #${colo.background};
+ --gnome-sidebar-background: #${colo.color5};
+ --gnome-secondary-sidebar-background: #${colo.color4};
+
+ /* Card */
+ --gnome-card-background: #${colo.background};
+ --gnome-card-shade-color: #${colo.color4};
+
+ /* Menu */
+ --gnome-menu-background: #${colo.background};
+
+ /* Header bar */
+ --gnome-headerbar-background: #${colo.background};
+ --gnome-headerbar-shade-color: #${colo.background};
+
+ /* Toolbars */
+ --gnome-toolbar-icon-fill: #${colo.foreground};
+
+ /* Tabs */
+ --gnome-tabbar-tab-hover-background: #${colo.color5};
+ --gnome-tabbar-tab-active-background: #${colo.color4};
+ --gnome-tabbar-tab-active-background-contrast: #${colo.color4};
+ --gnome-tabbar-tab-active-hover-background: #${colo.color5};
+
+ --gnome-tabbar-identity-color-green: var(--gnome-palette-green-1);
+ --gnome-tabbar-identity-color-yellow: var(--gnome-palette-yellow-2);
+ --gnome-tabbar-identity-color-orange: var(--gnome-palette-orange-3);
+ --gnome-tabbar-identity-color-red: var(--gnome-palette-red-1);
+ --gnome-tabbar-identity-color-purple: var(--gnome-palette-purple-1);
+
+ /* Text color for Firefox Logo in new private tab */
+ --gnome-private-wordmark: #${colo.background};
+ /* New private tab background */
+ --gnome-private-in-content-page-background: #${colo.background};
+ /* Private browsing info box */
+ --gnome-private-text-primary-color: #${colo.background};
+ }
+
+ /* Backdrop colors */
+ :root:-moz-window-inactive {
+ --gnome-tabbar-tab-hover-background: #${colo.background};
+ --gnome-tabbar-tab-active-background: #${colo.background};
+ }
+
+ /* Private colors */
+ :root[privatebrowsingmode="temporary"] {
+ --gnome-accent-fg: #${colo.color4};
+ /* Headerbar */
+ --gnome-headerbar-background: #${colo.color5} !important;
+ /* Tabs */
+ --gnome-tabbar-tab-hover-background: #${colo.color5};
+ --gnome-tabbar-tab-active-background: #${colo.background};
+ --gnome-tabbar-tab-active-background-contrast: #${colo.background};
+ --gnome-tabbar-tab-active-hover-background: #${colo.color5};
+ }
+
+ /* Private and backdrop colors */
+ :root[privatebrowsingmode="temporary"]:-moz-window-inactive {
+ --gnome-headerbar-background: #${colo.color5} !important;
+ --gnome-tabbar-tab-hover-background: #${colo.color5};
+ --gnome-tabbar-tab-active-background: #${colo.color5};
+ }
+ }
+ '';
+ };
+ home.sessionVariables = {
+ MOZ_WEBRENDER = "1";
+ MOZ_USE_XINPUT2 = "1";
+ MOZ_ENABLE_WAYLAND = "1";
+ };
+ programs.firefox = {
+ enable = true;
+ profiles.default = {
+ extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [
+ ublock-origin
+ skip-redirect
+ cookies-txt
+ youtube-recommended-videos
+ istilldontcareaboutcookies
+ hls-stream-detector
+ old-reddit-redirect
+ tampermonkey
+ enhanced-h264ify
+ ];
+ userChrome = ''
+ @import "firefox-gnome-theme/userChrome.css";
+ @import "customChrome.css";
+ #urlbar .search-one-offs {
+ display: none !important;
+ }
+ #tabbrowser-tabpanels{
+ background-color: #${colo.background} !important;
+ }
+ '';
+ userContent = ''
+ @import "firefox-gnome-theme/userContent.css";
+ @-moz-document url("about:home"),url("about:blank"),url("about:newtab"),url("about:privatebrowsing") {
+ body{ background-color: #${colo.background} !important }
+ }
+ '';
+ };
+ };
+ };
+}
diff --git a/nix_archive/nix/programs/foot.nix b/nix_archive/nix/programs/foot.nix
new file mode 100644
index 0000000..5c85ce7
--- /dev/null
+++ b/nix_archive/nix/programs/foot.nix
@@ -0,0 +1,51 @@
+{ config, pkgs, ... }:
+let
+ loc = config.local;
+ colo = loc.scheme;
+in {
+ environment.sessionVariables = {
+ TERMINAL = "${pkgs.foot}/bin/footclient";
+ };
+ home-manager.users.andrew = {
+ programs.foot = {
+ enable = true;
+ server.enable = true;
+ settings = {
+ main = {
+ font = "${s.font.name}:size=${toString s.font.size}";
+ };
+ colors = {
+ foreground = "${colo.foreground}";
+ background = "${colo.background}";
+ regular0 = "${colo.color0}";
+ regular1 = "${colo.color1}";
+ regular2 = "${colo.color2}";
+ regular3 = "${colo.color3}";
+ regular4 = "${colo.color4}";
+ regular5 = "${colo.color5}";
+ regular6 = "${colo.color6}";
+ regular7 = "${colo.color7}";
+ bright0 = "${colo.color8}";
+ bright1 = "${colo.color9}";
+ bright2 = "${colo.color10}";
+ bright3 = "${colo.color11}";
+ bright4 = "${colo.color12}";
+ bright5 = "${colo.color13}";
+ bright6 = "${colo.color14}";
+ bright7 = "${colo.color15}";
+ alpha = "1.0";
+ };
+ };
+ };
+ wayland.windowManager.sway = {
+ config = rec {
+ terminal = "${pkgs.foot}/bin/footclient";
+ keybindings = let
+ mod1 = "Mod1";
+ in {
+ "${mod1}+Return" = "exec ${terminal}";
+ };
+ };
+ };
+ };
+}
diff --git a/nix_archive/nix/programs/kdeconnect.nix b/nix_archive/nix/programs/kdeconnect.nix
new file mode 100644
index 0000000..8d8b366
--- /dev/null
+++ b/nix_archive/nix/programs/kdeconnect.nix
@@ -0,0 +1,12 @@
+{ ... }: {
+ networking.firewall = {
+ allowedTCPPortRanges = [ { from = 1714; to = 1764; } ];
+ allowedUDPPortRanges = [ { from = 1714; to = 1764; } ];
+ };
+ home-manager.users.andrew = {
+ services.kdeconnect = {
+ enable = true;
+ indicator = false;
+ };
+ };
+}
diff --git a/nix_archive/nix/programs/kitty.nix b/nix_archive/nix/programs/kitty.nix
new file mode 100644
index 0000000..86ad720
--- /dev/null
+++ b/nix_archive/nix/programs/kitty.nix
@@ -0,0 +1,112 @@
+{ config, lib, pkgs, ... }:
+let
+ loc = config.local;
+ colo = loc.scheme;
+in {
+ environment.sessionVariables = {
+ TERMINAL = "${pkgs.kitty}/bin/kitty -1";
+ };
+ home-manager.users.andrew = {
+ programs.kitty = {
+ enable = true;
+ font = {
+ name = loc.font.name;
+ size = loc.font.size;
+ };
+ shellIntegration = {
+ mode = "enabled";
+ enableBashIntegration = true;
+ };
+ extraConfig = ''
+ shell ${pkgs.bashInteractive}/bin/bash --login
+ update_check_interval 0
+ confirm_os_window_close 0
+ sync_to_monitor no
+ allow_remote_control yes
+ linux_display_server wayland
+ remember_window_size no
+ initial_window_width 720
+ initial_window_height 480
+ resize_debounce_time 0.025 0.5
+ window_padding_width 1
+ placement_strategy top-left
+ scrollback_lines 3000
+ paste_actions confirm,confirm-if-large
+ disable_ligatures always
+ modify_font baseline ${toString loc.font.baseline}
+ modify_font cell_height ${toString loc.font.cell-height-offset}
+ cursor_shape block
+ #cursor_blink_interval -1 linear ease-out
+ #cursor_stop_blinking_after 20.0
+ #cursor_trail 2
+ #cursor_trail_decay 0.075 0.425
+ #cursor_trail_start_threshold 3
+ cursor #${colo.foreground}
+ #cursor none
+ cursor_text_color background
+ foreground #${colo.foreground}
+ background #${colo.background}
+ color0 #${colo.color0}
+ color1 #${colo.color1}
+ color2 #${colo.color2}
+ color3 #${colo.color3}
+ color4 #${colo.color4}
+ color5 #${colo.color5}
+ color6 #${colo.color6}
+ color7 #${colo.color7}
+ color8 #${colo.color8}
+ color9 #${colo.color9}
+ color10 #${colo.color10}
+ color11 #${colo.color11}
+ color12 #${colo.color12}
+ color13 #${colo.color13}
+ color14 #${colo.color14}
+ color15 #${colo.color15}
+ selection_foreground #${colo.background}
+ selection_background #${colo.color6}
+ mark1_foreground #${colo.background}
+ mark1_background #${colo.color5}
+ mark2_foreground #${colo.background}
+ mark2_background #${colo.color6}
+ mark3_foreground #${colo.background}
+ mark3_background #${colo.color4}
+ background_opacity ${toString colo.alpha}
+ active_border_color #${colo.color4}
+ bell_border_color #${colo.color1}
+ inactive_border_color #${colo.color3}
+ active_tab_foreground #${colo.background}
+ active_tab_background #${colo.color5}
+ active_tab_font_style bold-italic
+ inactive_tab_foreground #${colo.background}
+ inactive_tab_background #${colo.color4}
+ url_color #${colo.color5}
+ enabled_layouts splits,stack
+ '';
+ };
+ home.file.".config/kitty/quick-access-terminal.conf".text = ''
+ lines 18
+ background_opacity 0.925
+ output_name ${loc.monitors.monitor1}
+ kitty_override startup_session=quick-access-session.conf
+ kitty_override placement_strategy=bottom-right
+ kitty_override window_padding_width=0 12 8 0
+ '';
+ home.file.".config/kitty/quick-access-session.conf".text = ''
+ layout splits
+ launch --var window=main
+ launch --location=vsplit --bias=17.1 /home/andrew/dl/tmp/clock/a.out
+ focus_matching_window var:window=first
+ '';
+ wayland.windowManager.sway = {
+ config = rec {
+ terminal = "${pkgs.kitty}/bin/kitty -1";
+ keybindings = let
+ mod1 = "Mod1";
+ in {
+ "${mod1}+Return" = "exec ${terminal}";
+ "${mod1}+backslash" = "exec ${pkgs.kitty}/bin/kitten quick-access-terminal";
+ };
+ };
+ };
+ };
+}
diff --git a/nix_archive/nix/programs/nvim.nix b/nix_archive/nix/programs/nvim.nix
new file mode 100644
index 0000000..3cdf12e
--- /dev/null
+++ b/nix_archive/nix/programs/nvim.nix
@@ -0,0 +1,235 @@
+{ config, pkgs, ... }:
+let
+ colo = config.local.scheme;
+ local-nvim = pkgs.vimUtils.buildVimPlugin {
+ pname = "local";
+ version = "0.2";
+ src = ../../files/nvim/local;
+ };
+ wal = pkgs.vimUtils.buildVimPlugin {
+ # https://github.com/neovim/neovim/blob/ec8922978eb14fe62671628bb25215743712eac0/src/nvim/highlight_group.c#L432
+ # ...neovim-unwrapped-0.10.4/share/nvim/runtime/syntax/c.vim
+ pname = "wal";
+ version = "3.3";
+ src = pkgs.writeTextDir "colors/wal-gui.vim" ''
+ let g:colors_name = "wal-gui"
+
+ set background=${colo.lightness}
+ set pumblend=10
+
+ " Lag Fix
+ hi! link CurSearch Search
+
+ " Plugins
+ hi MiniStarterInactive guifg=#${colo.foreground}
+ hi MiniStarterQuery guifg=#${colo.color5} gui=bold
+ hi MiniStarterItemPrefix guifg=#${colo.color4}
+
+ " https://github.com/NeogitOrg/neogit/blob/nightly/lua/neogit/lib/hl.lua
+ hi link NeogitDiffContext Normal
+ hi link NeogitDiffContextHighlight Normal
+ hi link NeogitDiffContextCursor Normal
+ hi link NeogitHunkHeader NeogitHunkHeaderHighlight
+
+ " Custom
+ hi ExtraWhitespace guibg=#${colo.color4}
+
+ hi Normal guifg=#${colo.foreground} guibg=#${colo.background}
+
+ " Necessary even without tree-sitter.
+ hi @variable guifg=#${colo.foreground}
+
+ " UI
+ hi Added guifg=#${colo.color2}
+ hi Changed guifg=#${colo.color3}
+ hi ColorColumn guibg=#${colo.color6}
+ hi Conceal guifg=#${colo.color5}
+ hi CurSearch guifg=#${colo.background} guibg=#${colo.color4}
+ hi CursorColumn guibg=#${colo.background}
+ hi CursorLine guibg=#${colo.color5}
+ hi DiffAdd guifg=#${colo.color2} guibg=#${colo.background}
+ hi DiffChange guifg=#${colo.color3} guibg=#${colo.background}
+ hi DiffDelete guifg=#${colo.color1} guibg=#${colo.background} gui=bold
+ hi DiffText guifg=#${colo.color4} guibg=#${colo.background}
+ hi Directory guifg=#${colo.color2}
+ hi ErrorMsg guifg=#${colo.color1}
+ hi FloatShadow guibg=#${colo.color6} blend=80
+ hi FloatShadowThrough guibg=#${colo.color6} blend=100
+ hi Folded guifg=#${colo.color5} guibg=#${colo.background}
+ hi LineNr guifg=#${colo.color2}
+ hi MatchParen guifg=#${colo.color2} guibg=#${colo.background} gui=bold
+ hi ModeMsg guifg=#${colo.color4}
+ hi MoreMsg guifg=#${colo.color2}
+ hi NonText guifg=#${colo.color6}
+ hi NormalFloat guibg=#${colo.color5}
+ hi Pmenu guibg=#${colo.color5}
+ hi PmenuThumb guibg=#${colo.color4}
+ hi PmenuSel guibg=#${colo.color5} " Font color.
+ hi PmenuSbar guibg=#${colo.color5}
+ hi Question guifg=#${colo.color3}
+ hi QuickFixLine guifg=#${colo.color3}
+ hi RedrawDebugClear guibg=#${colo.color2}
+ hi RedrawDebugComposed guibg=#${colo.background}
+ hi RedrawDebugRecompose guibg=#${colo.color3}
+ hi Removed guifg=#${colo.color1}
+ hi Search guifg=#${colo.foreground} guibg=#${colo.color1}
+ hi SignColumn guifg=#${colo.color6}
+ hi SpecialKey guifg=#${colo.color6}
+ hi SpellBad guisp=#${colo.color1} gui=undercurl
+ hi SpellCap guisp=#${colo.color4} gui=undercurl
+ hi SpellLocal guisp=#${colo.color4} gui=undercurl
+ hi SpellRare guisp=#${colo.color3} gui=undercurl
+ hi StatusLine guifg=#${colo.background} guibg=#${colo.color5}
+ hi StatusLineNC guifg=#${colo.background} guibg=#${colo.color4}
+ hi Title guifg=#${colo.foreground} gui=bold
+ hi Visual guibg=#${colo.color3}
+ hi WarningMsg guifg=#${colo.color3}
+ hi WinBar guifg=#${colo.color5} guibg=#${colo.background} gui=bold
+ hi WinBarNC guifg=#${colo.color5} guibg=#${colo.background}
+
+ " // Syntax
+ " "default link Character Constant",
+ " "default link Number Constant",
+ " "default link Boolean Constant",
+ " "default link Float Number",
+ " "default link Conditional Statement",
+ " "default link Repeat Statement",
+ " "default link Label Statement",
+ " "default link Keyword Statement",
+ " "default link Exception Statement",
+ " "default link Include PreProc",
+ " "default link Define PreProc",
+ " "default link Macro PreProc",
+ " "default link PreCondit PreProc",
+ " "default link StorageClass Type",
+ " "default link Structure Type",
+ " "default link Typedef Type",
+ " "default link Tag Special",
+ " "default link SpecialChar Special",
+ " "default link SpecialComment Special",
+ " "default link Debug Special",
+ " "default link Ignore Normal",
+
+ " Syntax Overrides
+ hi Structure guifg=#${colo.color4} gui=bold
+ hi StorageClass guifg=#${colo.color4} gui=bold
+ hi Number guifg=#${colo.foreground}
+ " -----
+ hi link Boolean Number
+ hi link Character String
+ hi link SpecialChar Character
+
+ " Syntax
+ hi Constant guifg=#${colo.foreground}
+ hi Operator guifg=#${colo.foreground}
+ hi PreProc guifg=#${colo.foreground}
+ hi Type guifg=#${colo.foreground} gui=bold
+ hi Delimiter guifg=#${colo.foreground}
+
+ hi Comment guifg=#${colo.color2}
+ hi String guifg=#${colo.color2}
+ hi Identifier guifg=#${colo.foreground}
+ hi Function guifg=#${colo.foreground}
+ hi Statement guifg=#${colo.foreground} gui=bold
+ hi Special guifg=#${colo.color6}
+ hi Error guifg=#${colo.color1} guibg=#${colo.foreground} " Used for Neogit delete.
+ hi Todo guifg=#${colo.foreground} gui=bold
+
+ " Diagnostic
+ hi DiagnosticError guifg=#${colo.color1}
+ hi DiagnosticWarn guifg=#${colo.color3}
+ hi DiagnosticInfo guifg=#${colo.color2}
+ hi DiagnosticHint guifg=#${colo.foreground}
+ hi DiagnosticOk guifg=#${colo.color4}
+ hi DiagnosticUnderlineError guisp=#${colo.color1} gui=underline
+ hi DiagnosticUnderlineWarn guisp=#${colo.color3} gui=underline
+ hi DiagnosticUnderlineInfo guisp=#${colo.color2} gui=underline
+ hi DiagnosticUnderlineHint guisp=#${colo.foreground} gui=underline
+ hi DiagnosticUnderlineOk guisp=#${colo.color4} gui=underline
+ hi DiagnosticDeprecated guisp=#${colo.color3} gui=strikethrough
+ '';
+ };
+in {
+ environment.sessionVariables = {
+ EDITOR = "nvim";
+ };
+ home-manager.users.andrew = {
+ programs.neovim = let
+ s = config.local.starter;
+ in {
+ enable = true;
+ viAlias = true;
+ vimAlias = true;
+ extraConfig = ''
+ lua << EOF
+ -- Simpler mini.starter builtin actions.
+ local builtin_actions_edit = function()
+ return {
+ { name = 'Edit new buffer', action = 'enew', section = 'Actions' },
+ { name = 'Quit', action = 'qall', section = 'Actions' }
+ }
+ end
+ local starter = require('mini.starter')
+ starter.setup({
+ items = {
+ starter.sections.sessions(6, true),
+ starter.sections.recent_files(7, false, false),
+ builtin_actions_edit()
+ },
+ content_hooks = {
+ starter.gen_hook.adding_bullet(),
+ starter.gen_hook.aligning('center', 'center')
+ },
+ top_padding = ${toString s.top_padding},
+ header = '${s.header}',
+ footer = '${s.footer}',
+ footer_offset = ${toString s.footer-offset},
+ picture = {
+ path = '${s.picture}',
+ kitty = os.getenv('TERM') == 'xterm-kitty',
+ width = ${toString s.width},
+ position = '${s.position}',
+ padding = {
+ top = ${toString s.padding.top},
+ left = ${toString s.padding.left},
+ text = ${toString s.padding.text}
+ }
+ }
+ })
+ EOF
+ '' + builtins.readFile(../../files/nvim/init.vim);
+ extraPackages = with pkgs; [
+ fzf
+ chafa
+ ripgrep
+ xxd
+ ];
+ #(pkgs.vimUtils.buildVimPlugin {
+ # pname = "";
+ # version = "";
+ # src = pkgs.fetchFromGitHub {
+ # owner = "";
+ # repo = "";
+ # rev = "";
+ # hash = "";
+ # };
+ # meta.homepage = "";
+ #})
+ plugins = with pkgs.vimPlugins; [
+ local-nvim
+ wal
+ undotree
+ fzfWrapper
+ fzf-vim
+ vim-gitbranch
+ vim-signify
+ nvim-lspconfig
+ inc-rename-nvim
+ mini-nvim
+ neogit
+ plenary-nvim
+ ccc-nvim
+ ];
+ };
+ };
+}
diff --git a/nix_archive/nix/programs/obs.nix b/nix_archive/nix/programs/obs.nix
new file mode 100644
index 0000000..59dca35
--- /dev/null
+++ b/nix_archive/nix/programs/obs.nix
@@ -0,0 +1,11 @@
+{ config, pkgs, ... }: {
+ environment.systemPackages = with pkgs; [
+ obs-studio
+ ];
+ home-manager.users.andrew = let
+ homeDir = "${config.users.users.andrew.home}";
+ in {
+ home.file.".config/obs-studio/plugins/wlrobs/bin/64bit/libwlrobs.so".source = "${pkgs.obs-studio-plugins.wlrobs}/lib/obs-plugins/libwlrobs.so";
+ home.file.".config/obs-studio/plugins/wlrobs/bin/64bit/obs-vaapi.so".source = "${pkgs.obs-studio-plugins.obs-vaapi}/lib/obs-plugins/obs-vaapi.so";
+ };
+}
diff --git a/nix_archive/nix/programs/sunshine.nix b/nix_archive/nix/programs/sunshine.nix
new file mode 100644
index 0000000..dff4d97
--- /dev/null
+++ b/nix_archive/nix/programs/sunshine.nix
@@ -0,0 +1,29 @@
+{ pkgs, ... }: {
+ #environment.systemPackages = with pkgs; [ sunshine ];
+ services.sunshine = {
+ enable = true;
+ capSysAdmin = true;
+ settings = {
+ sunshine_name = "Iroha";
+ };
+ applications = {
+ env = {
+ PATH = "$(PATH)";
+ };
+ apps = [
+ {
+ name = "Steam Gamescope";
+ cmd = "gamescope -w 960 -W 960 -h 544 -H 544 -r 60 -O DP-1 -e -- steam steam://open/bigpicture";
+ }
+ ];
+ };
+ };
+ #security.wrappers = {
+ # sunshine = {
+ # owner = "root";
+ # group = "root";
+ # source = "${pkgs.sunshine}/bin/sunshine";
+ # capabilities = "cap_sys_admin+p";
+ # };
+ #};
+}
diff --git a/nix_archive/nix/programs/sway.nix b/nix_archive/nix/programs/sway.nix
new file mode 100644
index 0000000..b5dcb5f
--- /dev/null
+++ b/nix_archive/nix/programs/sway.nix
@@ -0,0 +1,360 @@
+{ config, lib, pkgs, ... }:
+let
+ loc = config.local;
+ colo = loc.scheme;
+in {
+ services.xserver.videoDrivers = [ "modesetting" ];
+ programs.sway = {
+ enable = true;
+ package = pkgs.swayfx;
+ extraPackages = with pkgs; [
+ libinput
+ swaybg
+ swayidle
+ wl-clipboard
+ libnotify
+ bemenu
+ slurp
+ grim
+ wf-recorder
+ wlsunset
+ xorg.xprop
+ xorg.xset
+ xorg.xrdb
+ xorg.xrandr
+ ];
+ };
+ local.scripts.imports = [
+ "dbus-sway-environment"
+ "dmenu-path"
+ "dmenu-path0"
+ "dmenu-emoji"
+ "wlsunset-toggle"
+ "screenshot"
+ ];
+ services.dbus.enable = true;
+ security.polkit.enable = true;
+ programs.dconf.enable = true;
+ xdg.portal = {
+ enable = true;
+ wlr.enable = true;
+ extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
+ };
+ xdg.icons.enable = true;
+ #services.getty.autologinUser = "andrew";
+ #services.greetd = {
+ # enable = false;
+ # settings = {
+ # vt=3;
+ # default_session = {
+ # command = "run-sway";
+ # user = "root";
+ # };
+ # };
+ #};
+ qt = {
+ enable = true;
+ platformTheme = "qt5ct"; # Also selects qt6ct.
+ style = "adwaita";
+ };
+ home-manager.users.andrew = {
+ home.sessionVariables = {
+ MAIN_MONITOR="${loc.monitors.monitor1}";
+ XDG_CURRENT_DESKTOP = "sway";
+ MOZ_ENABLE_WAYLAND = "1";
+ SDL_VIDEODRIVER = "wayland";
+ GDK_BACKEND = "wayland,x11";
+ QT_QPA_PLATFORM = "wayland;xcb";
+ QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
+ _JAVA_AWT_WM_NONREPARENTING = "1";
+ };
+ xresources.properties = {
+ "*background" = "#${colo.background}";
+ "*foreground" = "#${colo.foreground}";
+ "*color0" = "#${colo.color0}";
+ "*color1" = "#${colo.color1}";
+ "*color2" = "#${colo.color2}";
+ "*color3" = "#${colo.color3}";
+ "*color4" = "#${colo.color4}";
+ "*color5" = "#${colo.color5}";
+ "*color6" = "#${colo.color6}";
+ "*color7" = "#${colo.color7}";
+ "*color8" = "#${colo.color8}";
+ "*color9" = "#${colo.color9}";
+ "*color10" = "#${colo.color10}";
+ "*color11" = "#${colo.color11}";
+ "*color12" = "#${colo.color12}";
+ "*color13" = "#${colo.color13}";
+ "*color14" = "#${colo.color14}";
+ "*color15" = "#${colo.color15}";
+ };
+ gtk = let
+ # *_shade_color is adjusted from black by default.
+ extraCss3 = ''
+ @define-color shade_color #${colo.background};
+ @define-color scrollbar_outline_color #${colo.foreground};
+ @define-color window_bg_color #${colo.background};
+ @define-color window_fg_color #${colo.foreground};
+ @define-color view_bg_color #${colo.background};
+ @define-color view_fg_color #${colo.foreground};
+ @define-color accent_bg_color #${colo.color4};
+ @define-color accent_fg_color #${colo.background};
+ @define-color accent_color #${colo.color4};
+ @define-color headerbar_bg_color #${colo.background};
+ @define-color headerbar_fg_color #${colo.foreground};
+ @define-color headerbar_backdrop_color #${colo.background};
+ @define-color headerbar_border_color #${colo.color6};
+ @define-color secondary_headerbar_bg_color #${colo.background};
+ @define-color secondary_headerbar_fg_color #${colo.foreground};
+ @define-color secondary_headerbar_backdrop_color #${colo.background};
+ @define-color secondary_headerbar_border_color #${colo.color5};
+ @define-color thumbnail_bg_color #${colo.background};
+ @define-color thumbnail_fg_color #${colo.foreground};
+ @define-color card_bg_color #${colo.background};
+ @define-color card_fg_color #${colo.foreground};
+ @define-color popover_bg_color #${colo.background};
+ @define-color popover_fg_color #${colo.foreground};
+ @define-color dialog_bg_color #${colo.background};
+ @define-color dialog_fg_color #${colo.foreground};
+ @define-color panel_bg_color #${colo.background};
+ @define-color panel_fg_color #${colo.foreground};
+ @define-color sidebar_bg_color #${colo.background};
+ @define-color sidebar_fg_color #${colo.foreground};
+ @define-color sidebar_backdrop_color #${colo.background};
+ @define-color sidebar_border_color #${colo.color5};
+ @define-color secondary_sidebar_bg_color #${colo.background};
+ @define-color secondary_sidebar_fg_color #${colo.foreground};
+ @define-color secondary_sidebar_backdrop_color #${colo.background};
+ @define-color secondary_sidebar_border_color #${colo.color6};
+ @define-color warning_bg_color #${colo.color4};
+ @define-color warning_fg_color #${colo.foreground};
+ @define-color warning_color #${colo.color4};
+ @define-color error_bg_color #${colo.color3};
+ @define-color error_fg_color #${colo.foreground};
+ @define-color error_color #${colo.color3};
+ @define-color success_bg_color #${colo.color2};
+ @define-color success_fg_color #${colo.background};
+ @define-color success_color #${colo.color2};
+ @define-color destructive_bg_color #${colo.color5};
+ @define-color destructive_fg_color #${colo.background};
+ @define-color destructive_color #${colo.color5};
+ '';
+ extraCss4 = ''
+ '';
+ in {
+ enable = true;
+ theme = {
+ name = "adw-gtk3" + (if colo.lightness == "light" then "" else "-dark");
+ package = pkgs.adw-gtk3;
+ };
+ cursorTheme = {
+ name = "WhiteSur-cursors";
+ };
+ #iconTheme = {
+ # name = "suru";
+ # package = pkgs.ubuntu-themes;
+ #};
+ gtk3.extraCss = extraCss3;
+ gtk4.extraCss = extraCss3;
+ };
+ home.pointerCursor = {
+ name = "WhiteSur-cursors";
+ package = pkgs.whitesur-cursors;
+ };
+ wayland.windowManager.sway = {
+ enable = true;
+ systemd.enable = true;
+ xwayland = true;
+ wrapperFeatures = { base = true; gtk = true; };
+ swaynag = {
+ enable = true;
+ settings = {
+ "<config>" = {
+ edge = "top";
+ font = "${loc.ui-font.name} ${toString loc.ui-font.size}";
+ background = "${colo.background}";
+ border = "${colo.background}";
+ text = "${colo.foreground}";
+ button-text = "${colo.foreground}";
+ button-background = "${colo.color6}";
+ message-padding = 5;
+ border-bottom-size = 1;
+ details-border-size = 1;
+ button-border-size = 1;
+ button-gap = 3;
+ button-dismiss-gap = 7;
+ button-padding = 3;
+ button-margin-right = 5;
+ };
+ };
+ };
+ config = rec {
+ input = {
+ "type:keyboard" = {
+ repeat_rate = "45";
+ repeat_delay = "220";
+ xkb_options = "ctrl:nocaps";
+ };
+ "type:touchpad" = {
+ natural_scroll = "enabled";
+ };
+ "1189:32769:BenQ_ZOWIE_BenQ_ZOWIE_Gaming_Mouse" = {
+ accel_profile = "flat";
+ pointer_accel = "-0.675";
+ scroll_factor = "1.0";
+ };
+ "1241:44368:USB_Gaming_Mouse" = { # Finalmouse Ultralight 2
+ accel_profile = "flat";
+ scroll_factor = "0.75";
+ };
+ "1133:45104:Logi_POP_Mouse" = {
+ accel_profile = "flat";
+ scroll_factor = "0.75";
+ };
+ "1133:50504:Logitech_USB_Receiver_Mouse" = {
+ accel_profile = "flat";
+ scroll_factor = "0.75";
+ };
+ "2362:9488:PixArt_USB_Optical_Mouse" = {
+ accel_profile = "flat";
+ scroll_factor = "0.75";
+ };
+ "1390:268:ELECOM_TrackBall_Mouse_HUGE_TrackBall" = {
+ accel_profile = "flat";
+ scroll_factor = "0.25";
+ scroll_method = "on_button_down";
+ scroll_button = "276";
+ };
+ "1386:890:Wacom_One_by_Wacom_S_Pen" = {
+ map_to_output = loc.monitors.monitor1;
+ left_handed = "enabled";
+ };
+ };
+ modifier = "Mod1";
+ menu = "dmenu-path | bemenu-colored | ${pkgs.findutils}/bin/xargs swaymsg exec --";
+ focus.wrapping = "yes";
+ keybindings = let
+ mod1 = "Mod1";
+ in {
+ "button4" = "nop";
+ "button5" = "nop";
+ "${mod1}+d" = "exec ${menu}";
+ "${mod1}+e" = "exec dmenu-emoji | bemenu-colored | awk '{split($0,a);printf \"%s\", a[1];}' | wl-copy";
+ "${mod1}+q" = "exec screenshot qrcode";
+ "${mod1}+c" = "exec screenshot color";
+ "${mod1}+Shift+q" = "kill";
+ "${mod1}+h" = "focus left";
+ "${mod1}+j" = "focus down";
+ "${mod1}+k" = "focus up";
+ "${mod1}+l" = "focus right";
+ "${mod1}+Shift+h" = "move left";
+ "${mod1}+Shift+j" = "move down";
+ "${mod1}+Shift+k" = "move up";
+ "${mod1}+Shift+l" = "move right";
+ "${mod1}+b" = "split h";
+ "${mod1}+v" = "split v";
+ "${mod1}+f" = "fullscreen toggle";
+ "${mod1}+space" = "floating toggle";
+ "${mod1}+r" = "mode \"resize\"";
+ "${mod1}+Shift+c" = "reload";
+ "${mod1}+Shift+e" = "exec swaynag -m 'Do you really want to exit?' -B 'Yes' 'swaymsg exit'";
+ "Print" = "exec screenshot main";
+ "Shift+Print" = "exec screenshot full";
+ "${mod1}+Shift+s" = "exec screenshot";
+ "${mod1}+s" = "exec wlsunset-toggle";
+ "${mod1}+Shift+t" = "exec swaymsg -- input 1386:890:Wacom_One_by_Wacom_S_Pen events disabled";
+ };
+ modes = {
+ resize = {
+ Escape = "mode default";
+ h = "resize shrink width 1 px";
+ j = "resize grow height 1 px";
+ k = "resize shrink height 1 px";
+ l = "resize grow width 1 px";
+ };
+ };
+ fonts = {
+ names = [ loc.ui-font.name ];
+ style = "Regular";
+ size = loc.ui-font.size + 0.0;
+ };
+ bars = [ ];
+ window = {
+ border = 2;
+ titlebar = false;
+ commands = [
+ { command = "move to scratchpad"; criteria.app_id = "kitty-server"; }
+ { command = "allow_tearing yes"; criteria.app_id = "kitty"; }
+ { command = "inhibit_idle fullscreen; floating enable"; criteria.app_id = "cmv"; }
+ { command = "floating enable"; criteria.class = "cmv.exe"; }
+ { command = "floating enable"; criteria.app_id = "mauri"; }
+ { command = "inhibit_idle fullscreen"; criteria.title = "Parsec"; }
+ { command = "inhibit_idle fullscreen"; criteria.class = "streaming_client"; }
+ { command = "inhibit_idle fullscreen; allow_tearing yes"; criteria.class = "steam_app_.*"; }
+ { command = "inhibit_idle fullscreen; allow_tearing yes; floating enable"; criteria.app_id = "gamescope"; }
+ { command = "inhibit_idle fullscreen; allow_tearing yes"; criteria.class = ".gamescope-wrapped"; }
+ { command = "inhibit_idle fullscreen; allow_tearing yes"; criteria.app_id = "osu!"; }
+ { command = "inhibit_idle fullscreen; allow_tearing yes"; criteria.class = "cs2"; }
+ { command = "inhibit_idle fullscreen; allow_tearing yes"; criteria.class = "Minecraft*"; }
+ { command = "inhibit_idle fullscreen; allow_tearing yes"; criteria.title = "Overwatch"; }
+ { command = "inhibit_idle fullscreen"; criteria.class = "Ryujinx"; }
+ { command = "inhibit_idle fullscreen"; criteria.app_id = "org.yuzu_emu.yuzu"; }
+ { command = "inhibit_idle fullscreen"; criteria.app_id = "info.cemu.Cemu"; }
+ { command = "inhibit_idle fullscreen"; criteria.class = "dolphin-emu"; }
+ { command = "inhibit_idle fullscreen"; criteria.class = "AppRun"; } # Ishiiruka-Dolphin
+ { command = "inhibit_idle fullscreen"; criteria.class = "SuperMeatBoy"; }
+ ];
+ };
+ colors = let
+ bg = "#${colo.background}";
+ fg = "#${colo.foreground}";
+ ch = "#${colo.color4}";
+ urgent = "#${colo.color1}";
+ in {
+ background = bg;
+ focused = { background = bg; border = ch; childBorder = ch; indicator = ch; text = fg; };
+ focusedInactive = { background = bg; border = ch; childBorder = ch; indicator = ch; text = fg; };
+ unfocused = { background = bg; border = bg; childBorder = bg; indicator = bg; text = fg; };
+ urgent = { background = urgent; border = urgent; childBorder = urgent; indicator = urgent; text = fg; };
+ placeholder = { background = bg; border = bg; childBorder = bg; indicator = bg; text = fg; };
+ };
+ startup = let
+ gnome-schema = "org.gnome.desktop.interface";
+ in [
+ { command = "dconf write /org/gnome/desktop/interface/color-scheme \"'prefer-${colo.lightness}'\""; always = true; }
+ { command = "dbus-sway-environment"; }
+ { command = "swaymsg 'seat * hide_cursor 4000'"; always = true; }
+ { command = "kitty -1 --class=\"kitty-server\""; }
+ { command = "wlsunset-toggle"; }
+ ];
+ };
+# extraConfig = ''
+# blur enable
+# blur_passes 4
+# blur_radius 2
+# blur_contrast 1.5
+# blur_saturation 1.1
+# '';
+ };
+ services.swayidle = {
+ enable = true;
+ timeouts = [
+ {
+ timeout = 300;
+ command = "${pkgs.sway}/bin/swaymsg \"output * dpms off\"";
+ resumeCommand = "${pkgs.sway}/bin/swaymsg \"output * dpms on\"";
+ }
+ ];
+ };
+ services.mako = {
+ enable = true;
+ settings = {
+ default-timeout = 14000;
+ font = "${loc.font.name} ${toString loc.ui-font.size}";
+ background-color = "#${colo.background}";
+ text-color = "#${colo.foreground}";
+ border-color = "#${colo.color6}";
+ };
+ };
+ };
+}
diff --git a/nix_archive/nix/programs/waydroid.nix b/nix_archive/nix/programs/waydroid.nix
new file mode 100644
index 0000000..af0c207
--- /dev/null
+++ b/nix_archive/nix/programs/waydroid.nix
@@ -0,0 +1,3 @@
+{ ... }: {
+ virtualisation.waydroid.enable = true;
+}
diff --git a/nix_archive/nix/programs/zsh.nix b/nix_archive/nix/programs/zsh.nix
new file mode 100644
index 0000000..6071429
--- /dev/null
+++ b/nix_archive/nix/programs/zsh.nix
@@ -0,0 +1,76 @@
+{ config, pkgs, ... }: {
+ programs.zsh.enable = true;
+
+ environment.shells = [ pkgs.zsh ];
+ environment.pathsToLink = [ "/share/zsh" ];
+ users.defaultUserShell = pkgs.zsh;
+ environment.sessionVariables = {
+ SHELL = "${pkgs.zsh}/bin/zsh";
+ };
+
+ home-manager.users.andrew = let
+ homeDir = "${config.users.users.andrew.home}";
+ in {
+ programs.zsh = {
+ enable = true;
+ shellAliases = {
+ sudo = "nocorrect sudo ";
+ xargs = "nocorrect xargs ";
+ cp = "rsync -avz";
+ top = "htop";
+ bc = "bc -l";
+ pgrep = "pgrep -f";
+ make = "make -j6";
+ diff = "diff -u";
+ gdb = "gdb -q";
+ mail = "neomutt";
+ iroha = "ssh andrew@iroha";
+ moyo = "ssh andrew@moyo";
+ zasshi = "ssh andrew@zasshi";
+ denpa = "ssh moyo -t 'ssh 192.168.122.89'";
+ rod = "ssh -p 1738 rod";
+ bmrg = "ssh boomerang";
+ cmv = "$HOME/c/camu/scripts/cmv.sh";
+ cmv-add = "$HOME/c/camu/scripts/cmv_add.sh";
+ cmv-pause = "cmv-add PAUSE";
+ cmv-next = "cmv-add NEXT";
+ cmv-prev = "cmv-add PREV";
+ cmv-shuffle = "cmv-add SHUFFLE";
+ cmv-sort = "cmv-add SORT";
+ cmv-reverse = "cmv-add REVERSE";
+ cmv-clear = "cmv-add CLEAR";
+ };
+ defaultKeymap = "emacs";
+ history = {
+ save = 10000;
+ size = 10000;
+ append = true;
+ expireDuplicatesFirst = true;
+ extended = true;
+ path = "${homeDir}/.histfile";
+ # Don't share history between sessions.
+ share = false;
+ };
+ # Completion tanks startup performance.
+ enableCompletion = false;
+ zprof.enable = false;
+ initExtra = ''
+ autoload -U colors && colors
+ exit_code_guy()
+ {
+ if [[ $? == 0 ]]; then
+ echo "(・_・) >"
+ else
+ echo "(″ロ゛) > %{$fg[red]%}$?%{$fg[cyan]%}"
+ fi
+ }
+ setopt prompt_subst
+ if [[ -v NIX_SHELL ]]; then
+ PS1="($NIX_SHELL)%{$fg[yellow]%}%n%{$fg[red]%}@%{$fg[light\ red]%}%M%{$fg[cyan]%}:%~\$(exit_code_guy)%{$reset_color%} "
+ else
+ PS1="%{$fg[yellow]%}%n%{$fg[red]%}@%{$fg[light\ red]%}%M%{$fg[cyan]%}:%~\$(exit_code_guy)%{$reset_color%} "
+ fi
+ '';
+ };
+ };
+}