1+ { config , pkgs , ... } :
2+
3+ # sudo cp ./nixos/modules/* /etc/nixos/
4+ # sudo nixos-rebuild switch
5+
6+ {
7+ # https://nix-community.github.io/home-manager/index.xhtml#ch-installation
8+ home-manager . users . das = { pkgs , ... } : {
9+
10+ # https://nix-community.github.io/home-manager/options.xhtml#opt-home.sessionVariables
11+ home . sessionVariables = {
12+ GI_TYPELIB_PATH = "/run/current-system/sw/lib/girepository-1.0" ;
13+ # disable wayland
14+ #NIXOS_OZONE_WL = "1";
15+ } ;
16+
17+ home . packages = with pkgs ; [
18+ #
19+ gparted
20+ hw-probe
21+ ncdu
22+ #
23+ tmux
24+ screen
25+ #
26+ libgcc
27+ # https://nixos.wiki/wiki/C
28+ # https://search.nixos.org/packages?channel=24.05&show=gcc&from=0&size=50&sort=relevance&type=packages&query=gcc
29+ gcc
30+ automake
31+ gnumake
32+ #cmake
33+ pkg-config
34+ #
35+ # alsa-lib
36+ # alsa-lib-with-plugins
37+ #
38+ perl
39+ python3
40+ #
41+ gawk
42+ jq
43+ git
44+ htop
45+ minicom
46+ #
47+ bzip2
48+ gzip
49+ lz4
50+ zip
51+ unzip
52+ xz
53+ zstd
54+ #
55+ rsync
56+ tree
57+ #
58+ alacritty
59+ kitty
60+ #
61+ ethtool
62+ iproute2
63+ vlan
64+ tcpdump
65+ wireshark
66+ #iperf2
67+ netperf
68+ flent
69+ bpftools
70+ fping
71+ inetutils
72+ #
73+ hwloc
74+ bpftools
75+ #
76+ inotify-tools
77+ #
78+ gnuradio
79+ hackrf
80+ gqrx
81+ cubicsdr
82+ #
83+ neofetch
84+ #
85+ vlc
86+ ffmpeg_7-full
87+ #ffmpeg-full
88+ # go
89+ # https://nixos.wiki/wiki/Go
90+ # https://nixos.org/manual/nixpkgs/stable/#sec-language-go
91+ # https://nixos.wiki/wiki/FAQ#How_can_I_install_a_package_from_unstable_while_remaining_on_the_stable_channel.3F
92+ libcap
93+ gcc
94+ # thunderbird
95+ go
96+ golangci-lint
97+ golangci-lint-langserver
98+ trunk-io
99+ buf
100+ buf-language-server
101+ #
102+ meld
103+ #
104+ # https://nixos.wiki/wiki/Helix
105+ helix
106+ # rust
107+ # https://nixos.wiki/wiki/Rust
108+ pkgs . cargo
109+ pkgs . rustc
110+ #
111+ flutter
112+ android-studio
113+ android-tools
114+ android-udev-rules
115+ #
116+ # debug
117+ strace
118+ # Gnome related / extensions
119+ # gnomeExtensions.emoji-copy
120+ # unstable.gnomeExtensions.workspace-switcher-manager
121+ gnome-extension-manager
122+ gnome-usage
123+ gnome . dconf-editor
124+ gnome . gnome-settings-daemon
125+ gnome . gnome-disk-utility
126+ gnome . gnome-software
127+ gnome . gnome-tweaks
128+ gnome . simple-scan
129+ gnomeExtensions . appindicator
130+ gnomeExtensions . dash-to-dock
131+ gnomeExtensions . just-perfection
132+ gnomeExtensions . logo-menu
133+ gnomeExtensions . wifi-qrcode
134+ gnomeExtensions . wireless-hid
135+ gnomeExtensions . user-themes
136+ gnomeExtensions . tray-icons-reloaded
137+ gnomeExtensions . vitals
138+ gnomeExtensions . dash-to-panel
139+ gnomeExtensions . sound-output-device-chooser
140+ gnomeExtensions . space-bar
141+ # https://github.com/AstraExt/astra-monitor
142+ gnomeExtensions . astra-monitor
143+ libgtop
144+ #
145+ libreoffice-qt
146+ hunspell
147+ hunspellDicts . en_AU
148+ #hunspellDicts.en_US
149+ gnomeExtensions . system-monitor
150+ # https://nixos.wiki/wiki/Firefox
151+ firefox
152+ # https://nixos.wiki/wiki/Chromium
153+ chromium
154+ google-chrome
155+ # https://nixos.wiki/wiki/Slack
156+ slack
157+ #
158+ zoom-us
159+ #
160+ flameshot
161+ grim # screenshot functionality
162+ slurp # screenshot functionality
163+ #
164+ gimp-with-plugins
165+ #
166+ simplescreenrecorder
167+ #
168+ gedit
169+ #
170+ # https://nixos.wiki/wiki/Podman
171+ dive
172+ podman
173+ runc
174+ skopeo
175+ podman-tui
176+ podman-compose
177+ #
178+ rofi-wayland
179+ wofi
180+ #
181+ #clickhouse
182+ #clickhouse-cli
183+ ] ;
184+
185+ # vscode
186+ # https://nixos.wiki/wiki/Visual_Studio_Code
187+ # nix run github:nix-community/nix-vscode-extensions# -- --list-extensions
188+ programs . vscode = {
189+ enable = true ;
190+ package = pkgs . vscode ;
191+ extensions = with pkgs . vscode-extensions ; [
192+ bbenoist . nix
193+ dart-code . dart-code
194+ dart-code . flutter
195+ golang . go
196+ hashicorp . terraform
197+ #k6.k6
198+ ms-azuretools . vscode-docker
199+ # https://github.com/orgs/microsoft/repositories?q=vscode
200+ ms-vscode-remote . remote-containers
201+ ms-vscode-remote . remote-ssh
202+ #ms-vscode-remote.remote-ssh-edit
203+ ms-vscode . makefile-tools
204+ ms-vscode . cmake-tools
205+ ms-vscode . cpptools
206+ #ms-vscode.cpptools-extension-pack
207+ #ms-vscode.cpptools-themes
208+ ms-vscode . hexeditor
209+ ms-vscode . makefile-tools
210+ ms-python . python
211+ ms-python . vscode-pylance
212+ #ms-vscode.remote-explorer
213+ #ms-vscode.remote-repositories
214+ #ms-vscode.remote-server
215+ redhat . vscode-yaml
216+ rust-lang . rust-analyzer
217+ #crates is depreciated
218+ #serayuzgur.crates
219+ tamasfe . even-better-toml
220+ timonwong . shellcheck
221+ #trunk.io
222+ zxh404 . vscode-proto3
223+ yzhang . markdown-all-in-one
224+ #platformio.platformio-ide
225+ github . copilot
226+ # nix
227+ #brettm12345.nixfmt.vscode
228+ jnoortheen . nix-ide
229+ #jeff-hykin.better-nix-syntax
230+ ] ;
231+ } ;
232+
233+ programs . bash . enable = true ;
234+
235+ programs . vim = {
236+ enable = true ;
237+ plugins = with pkgs . vimPlugins ; [ vim-airline ] ;
238+ settings = { ignorecase = true ; } ;
239+ extraConfig = ''
240+ set mouse=a
241+ '' ;
242+ } ;
243+ #ldflags = [
244+ # "-X main.Version=${version}"
245+ # "-X main.Commit=${version}"
246+ #];
247+
248+ programs . git = {
249+ enable = true ;
250+ 251+ userName = "randomizedcoder " ;
252+ #signing.key = "GPG-KEY-ID";
253+ #signing.signByDefault = true;
254+ } ;
255+
256+ # https://nixos.wiki/wiki/OBS_Studio
257+ # TODO add kernel module for virtual camera
258+ programs . obs-studio = {
259+ enable = true ;
260+ plugins = with pkgs . obs-studio-plugins ; [
261+ wlrobs
262+ obs-backgroundremoval
263+ obs-pipewire-audio-capture
264+ ] ;
265+ } ;
266+
267+ # https://heywoodlh.io/nixos-gnome-settings-and-keyboard-shortcuts
268+ dconf . settings = {
269+ "org/gnome/desktop/wm/preferences" = {
270+ button-layout = "close,minimize,maximize:appmenu" ;
271+ } ;
272+ # "org/gnome/desktop/interface" = {
273+ # color-scheme = "prefer-dark";
274+ # };
275+ "org/gnome/desktop/interface" = {
276+ clock-show-seconds = true ;
277+ clock-show-weekday = true ;
278+ color-scheme = "prefer-dark" ;
279+ enable-hot-corners = false ;
280+ font-antialiasing = "grayscale" ;
281+ font-hinting = "slight" ;
282+ gtk-theme = "Nordic" ;
283+ toolkit-accessibility = true ;
284+ } ;
285+ "org/gnome/shell" = {
286+ favorite-apps = [
287+ "firefox.desktop"
288+ "code.desktop"
289+ "chromium.desktop"
290+ "alacritty.desktop"
291+ "kitty.desktop"
292+ "slack.desktop"
293+ ] ;
294+ disable-user-extensions = false ;
295+ } ;
296+ } ;
297+
298+ # disable wayland
299+ # # https://nixos.wiki/wiki/Hyprland
300+ # # https://josiahalenbrown.substack.com/p/installing-nixos-with-hyprland
301+ # #programs.hyprland.enable = true;
302+ # wayland.windowManager.hyprland = {
303+ # # Whether to enable Hyprland wayland compositor
304+ # enable = true;
305+ # # The hyprland package to use
306+ # package = pkgs.hyprland;
307+ # # Whether to enable XWayland
308+ # xwayland.enable = true;
309+
310+ # # Optional
311+ # # Whether to enable hyprland-session.target on hyprland startup
312+ # systemd.enable = true;
313+ # };
314+ # # home.file.".config/hypr/hyprland.conf".text = ''
315+ # # '';
316+
317+ services . flameshot = {
318+ enable = true ;
319+ settings . General = {
320+ showStartupLaunchMessage = false ;
321+ saveLastRegion = true ;
322+ } ;
323+ } ;
324+
325+ home . file . "containers.conf" = {
326+ target = ".config/containers/containers.conf" ;
327+ # https://docs.podman.io/en/v4.6.0/markdown/options/security-opt.html
328+ # https://github.com/containers/common/blob/main/docs/containers.conf.5.md
329+ text = ''
330+ [containers]
331+ annotations=["run.oci.keep_original_groups=1",]
332+ label=false
333+ #seccomp=unconfined
334+ '' ;
335+ } ;
336+ home . file . "registries.conf" = {
337+ target = ".config/containers/registries.conf" ;
338+ text = ''
339+ [registries.search]
340+ registries = ['docker.io']
341+ '' ;
342+ # text = ''
343+ # [registries.search]
344+ # registries = ['docker.io', 'registry.gitlab.com']
345+ # '';
346+ } ;
347+ home . file . "policy.json" = {
348+ target = ".config/containers/policy.json" ;
349+ text = ''
350+ {
351+ "default": [
352+ {
353+ "type": "insecureAcceptAnything"
354+ }
355+ ],
356+ "transports":
357+ {
358+ "docker-daemon":
359+ {
360+ "": [{"type":"insecureAcceptAnything"}]
361+ }
362+ }
363+ }
364+ '' ;
365+ } ;
366+
367+ nixpkgs . config . allowUnfree = true ;
368+
369+ home . stateVersion = "23.11" ;
370+ } ;
371+ }
0 commit comments