<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Biosystems Engineering Blog (Posts about linux)</title><link>https://kwk.systems/blog/</link><description></description><atom:link href="https://kwk.systems/blog/categories/linux.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2024 &lt;a href="mailto:info@kwk.systems"&gt;Kurt Kremitzki&lt;/a&gt; 
&lt;a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/"&gt;
&lt;img alt="Creative Commons License BY-SA"
style="border-width:0; margin-bottom:12px;"
src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png"&gt;&lt;/a&gt;</copyright><lastBuildDate>Thu, 16 May 2024 22:41:32 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Getting Started with FreeCAD Development in Ubuntu 16.04</title><link>https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/</link><dc:creator>Kurt Kremitzki</dc:creator><description>&lt;p&gt;&lt;a class="reference external" href="http://www.freecadweb.org/"&gt;FreeCAD&lt;/a&gt; is a multi-platform (Windows, Mac, Linux) open source parametric 3D CAD modeler, and can read
and write many open file formats.&lt;/p&gt;
&lt;p&gt;An explanation of the many virtues of open source software can be found at &lt;a class="reference external" href="http://opensourceforamerica.org/learn-more/benefits-of-open-source-software/"&gt;Open Source for America&lt;/a&gt; and elsewhere. To quote OSFA,&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The Open Source model harnesses the power of distributed peer review and transparency to create high-quality, secure
and easily integrated software at an accelerated pace and lower cost.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Commerical-grade CAD software, while incredibly useful, has several downsides including being locked behind 4 or 5 digit licensing costs,
and its use in amateur projects or the developing world is often facilitated by piracy. FreeCAD, on the other hand, is free as in beer
and free as in freedom, although it is currently under development. However, one of the benefits of the open source model is the ease
with which interested people can contribute to the project and make better tools for all mankind.&lt;/p&gt;
&lt;p&gt;While using FreeCAD, I noticed a few typos in the menus; although my first contribution to the project wasn't too significant, I
documented the process of getting a development environment set up on my Ubuntu 16.04 desktop so that others could follow the same
steps and begin contributing.&lt;/p&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;&lt;p&gt;Pull down a copy of the code. (If you don't have a copy of git, run &lt;code class="docutils literal"&gt;sudo &lt;span class="pre"&gt;apt-get&lt;/span&gt; install git&lt;/code&gt;.)&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;div class="code"&gt;&lt;pre class="code bash"&gt;&lt;a id="rest_code_9e77b76550284b1c97fb75241a601ef0-1" name="rest_code_9e77b76550284b1c97fb75241a601ef0-1" href="https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/#rest_code_9e77b76550284b1c97fb75241a601ef0-1"&gt;&lt;/a&gt;git&lt;span class="w"&gt; &lt;/span&gt;clone&lt;span class="w"&gt; &lt;/span&gt;https://github.com/FreeCAD/FreeCAD.git&lt;span class="w"&gt; &lt;/span&gt;freecad-code
&lt;a id="rest_code_9e77b76550284b1c97fb75241a601ef0-2" name="rest_code_9e77b76550284b1c97fb75241a601ef0-2" href="https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/#rest_code_9e77b76550284b1c97fb75241a601ef0-2"&gt;&lt;/a&gt;mkdir&lt;span class="w"&gt; &lt;/span&gt;freecad-build
&lt;/pre&gt;&lt;/div&gt;
&lt;/blockquote&gt;
&lt;ol class="arabic simple" start="2"&gt;
&lt;li&gt;&lt;p&gt;Install all dependencies.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;div class="code"&gt;&lt;pre class="code bash"&gt;&lt;a id="rest_code_e3f2e5303e974e829adac73ea3b0f477-1" name="rest_code_e3f2e5303e974e829adac73ea3b0f477-1" href="https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/#rest_code_e3f2e5303e974e829adac73ea3b0f477-1"&gt;&lt;/a&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;apt-get&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;build-essential&lt;span class="w"&gt; &lt;/span&gt;cmake&lt;span class="w"&gt; &lt;/span&gt;python&lt;span class="w"&gt; &lt;/span&gt;python-matplotlib&lt;span class="w"&gt; &lt;/span&gt;libtool&lt;span class="w"&gt; &lt;/span&gt;libcoin80-dev&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;a id="rest_code_e3f2e5303e974e829adac73ea3b0f477-2" name="rest_code_e3f2e5303e974e829adac73ea3b0f477-2" href="https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/#rest_code_e3f2e5303e974e829adac73ea3b0f477-2"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;libsoqt4-dev&lt;span class="w"&gt; &lt;/span&gt;libxerces-c-dev&lt;span class="w"&gt; &lt;/span&gt;libboost-dev&lt;span class="w"&gt; &lt;/span&gt;libboost-filesystem-dev&lt;span class="w"&gt; &lt;/span&gt;libboost-regex-dev&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;a id="rest_code_e3f2e5303e974e829adac73ea3b0f477-3" name="rest_code_e3f2e5303e974e829adac73ea3b0f477-3" href="https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/#rest_code_e3f2e5303e974e829adac73ea3b0f477-3"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;libboost-program-options-dev&lt;span class="w"&gt; &lt;/span&gt;libboost-signals-dev&lt;span class="w"&gt; &lt;/span&gt;libboost-thread-dev&lt;span class="w"&gt; &lt;/span&gt;libboost-python-dev&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;a id="rest_code_e3f2e5303e974e829adac73ea3b0f477-4" name="rest_code_e3f2e5303e974e829adac73ea3b0f477-4" href="https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/#rest_code_e3f2e5303e974e829adac73ea3b0f477-4"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;libqt4-dev&lt;span class="w"&gt; &lt;/span&gt;libqt4-opengl-dev&lt;span class="w"&gt; &lt;/span&gt;qt4-dev-tools&lt;span class="w"&gt; &lt;/span&gt;python-dev&lt;span class="w"&gt; &lt;/span&gt;python-pyside&lt;span class="w"&gt; &lt;/span&gt;pyside-tools&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'liboce*-dev'&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;a id="rest_code_e3f2e5303e974e829adac73ea3b0f477-5" name="rest_code_e3f2e5303e974e829adac73ea3b0f477-5" href="https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/#rest_code_e3f2e5303e974e829adac73ea3b0f477-5"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;oce-draw&lt;span class="w"&gt; &lt;/span&gt;libeigen3-dev&lt;span class="w"&gt; &lt;/span&gt;libqtwebkit-dev&lt;span class="w"&gt; &lt;/span&gt;libshiboken-dev&lt;span class="w"&gt; &lt;/span&gt;libpyside-dev&lt;span class="w"&gt; &lt;/span&gt;libode-dev&lt;span class="w"&gt; &lt;/span&gt;swig&lt;span class="w"&gt; &lt;/span&gt;libzipios++-dev&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;a id="rest_code_e3f2e5303e974e829adac73ea3b0f477-6" name="rest_code_e3f2e5303e974e829adac73ea3b0f477-6" href="https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/#rest_code_e3f2e5303e974e829adac73ea3b0f477-6"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;libfreetype6&lt;span class="w"&gt; &lt;/span&gt;libfreetype6-dev
&lt;a id="rest_code_e3f2e5303e974e829adac73ea3b0f477-7" name="rest_code_e3f2e5303e974e829adac73ea3b0f477-7" href="https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/#rest_code_e3f2e5303e974e829adac73ea3b0f477-7"&gt;&lt;/a&gt;
&lt;a id="rest_code_e3f2e5303e974e829adac73ea3b0f477-8" name="rest_code_e3f2e5303e974e829adac73ea3b0f477-8" href="https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/#rest_code_e3f2e5303e974e829adac73ea3b0f477-8"&gt;&lt;/a&gt;&lt;span class="c1"&gt;# Install optional packages&lt;/span&gt;
&lt;a id="rest_code_e3f2e5303e974e829adac73ea3b0f477-9" name="rest_code_e3f2e5303e974e829adac73ea3b0f477-9" href="https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/#rest_code_e3f2e5303e974e829adac73ea3b0f477-9"&gt;&lt;/a&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;apt-get&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;libsimage-dev&lt;span class="w"&gt; &lt;/span&gt;checkinstall&lt;span class="w"&gt; &lt;/span&gt;python-pivy&lt;span class="w"&gt; &lt;/span&gt;python-qt4&lt;span class="w"&gt; &lt;/span&gt;doxygen&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="se"&gt;\&lt;/span&gt;
&lt;a id="rest_code_e3f2e5303e974e829adac73ea3b0f477-10" name="rest_code_e3f2e5303e974e829adac73ea3b0f477-10" href="https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/#rest_code_e3f2e5303e974e829adac73ea3b0f477-10"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;libcoin80-doc&lt;span class="w"&gt; &lt;/span&gt;libspnav-dev
&lt;/pre&gt;&lt;/div&gt;
&lt;/blockquote&gt;
&lt;ol class="arabic simple" start="3"&gt;
&lt;li&gt;&lt;p&gt;Move into build folder, make and compile the software. Use the &lt;code class="docutils literal"&gt;&lt;span class="pre"&gt;-j&lt;/span&gt; $(nproc)&lt;/code&gt; flag to use all N of your CPU cores
when compiling; some recommend using N + 1 CPU cores, which can be done by instead running &lt;code class="docutils literal"&gt;make &lt;span class="pre"&gt;-j$((&lt;/span&gt; $(nproc) + 1 )) .&lt;/code&gt;.
Don't forget the period at the end of the &lt;code class="docutils literal"&gt;make&lt;/code&gt; command, which tells it to put the compiled software in the current
&lt;code class="docutils literal"&gt;&lt;span class="pre"&gt;freecad-build&lt;/span&gt;&lt;/code&gt; directory; it's good to keep the source code and build directories separate.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;div class="code"&gt;&lt;pre class="code bash"&gt;&lt;a id="rest_code_5c2dfe153c0a466b86b6886a6dac1bf2-1" name="rest_code_5c2dfe153c0a466b86b6886a6dac1bf2-1" href="https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/#rest_code_5c2dfe153c0a466b86b6886a6dac1bf2-1"&gt;&lt;/a&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;freecad-build
&lt;a id="rest_code_5c2dfe153c0a466b86b6886a6dac1bf2-2" name="rest_code_5c2dfe153c0a466b86b6886a6dac1bf2-2" href="https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/#rest_code_5c2dfe153c0a466b86b6886a6dac1bf2-2"&gt;&lt;/a&gt;cmake&lt;span class="w"&gt; &lt;/span&gt;../freecad-code
&lt;a id="rest_code_5c2dfe153c0a466b86b6886a6dac1bf2-3" name="rest_code_5c2dfe153c0a466b86b6886a6dac1bf2-3" href="https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/#rest_code_5c2dfe153c0a466b86b6886a6dac1bf2-3"&gt;&lt;/a&gt;make&lt;span class="w"&gt; &lt;/span&gt;-j&lt;span class="k"&gt;$(&lt;/span&gt;nproc&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;.
&lt;/pre&gt;&lt;/div&gt;
&lt;/blockquote&gt;
&lt;ol class="arabic simple" start="4"&gt;
&lt;li&gt;&lt;p&gt;Fix Ubuntu 64-bit issue. If you are using a 64-bit version of Ubuntu (hopefully), you may run in to the following
error message, which occurs because the expected &lt;code class="docutils literal"&gt;libfreeimage.so&lt;/code&gt; file was moved into a subdirectory of &lt;code class="docutils literal"&gt;/usr/lib/&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;div class="code"&gt;&lt;pre class="code bash"&gt;&lt;a id="rest_code_7792f552646046f9b01df1029a5de13a-1" name="rest_code_7792f552646046f9b01df1029a5de13a-1" href="https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/#rest_code_7792f552646046f9b01df1029a5de13a-1"&gt;&lt;/a&gt;make&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;:&lt;span class="w"&gt; &lt;/span&gt;***&lt;span class="w"&gt; &lt;/span&gt;No&lt;span class="w"&gt; &lt;/span&gt;rule&lt;span class="w"&gt; &lt;/span&gt;to&lt;span class="w"&gt; &lt;/span&gt;make&lt;span class="w"&gt; &lt;/span&gt;target&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'/usr/lib/libfreeimage.so'&lt;/span&gt;,&lt;span class="w"&gt; &lt;/span&gt;needed&lt;span class="w"&gt; &lt;/span&gt;by&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'lib/libSMDS.so'&lt;/span&gt;.&lt;span class="w"&gt;  &lt;/span&gt;Stop.
&lt;a id="rest_code_7792f552646046f9b01df1029a5de13a-2" name="rest_code_7792f552646046f9b01df1029a5de13a-2" href="https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/#rest_code_7792f552646046f9b01df1029a5de13a-2"&gt;&lt;/a&gt;
&lt;a id="rest_code_7792f552646046f9b01df1029a5de13a-3" name="rest_code_7792f552646046f9b01df1029a5de13a-3" href="https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/#rest_code_7792f552646046f9b01df1029a5de13a-3"&gt;&lt;/a&gt;&lt;span class="c1"&gt;# Fix with this line.&lt;/span&gt;
&lt;a id="rest_code_7792f552646046f9b01df1029a5de13a-4" name="rest_code_7792f552646046f9b01df1029a5de13a-4" href="https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/#rest_code_7792f552646046f9b01df1029a5de13a-4"&gt;&lt;/a&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;ln&lt;span class="w"&gt; &lt;/span&gt;-s&lt;span class="w"&gt; &lt;/span&gt;/usr/lib/x86_64-linux-gnu/libfreeimage.so&lt;span class="w"&gt; &lt;/span&gt;/usr/lib
&lt;/pre&gt;&lt;/div&gt;
&lt;/blockquote&gt;
&lt;p&gt;Once the build is complete, a runnable copy of the FreeCAD executable will be in the &lt;code class="docutils literal"&gt;&lt;span class="pre"&gt;freecad-build&lt;/span&gt;&lt;/code&gt; folder. Any changes
made to the source code can be tested after re-compiling the executable.&lt;/p&gt;
&lt;p&gt;Hopefully this post helps someone out there! Even if you are only contributing to the documentation as you learn FreeCAD,
your contribution is valuable and can help tons of people across the globe.&lt;/p&gt;</description><category>foss</category><category>freecad</category><category>linux</category><guid>https://kwk.systems/blog/posts/getting-started-with-freecad-development-in-ubuntu-1604/</guid><pubDate>Sun, 05 Jun 2016 11:17:51 GMT</pubDate></item><item><title>Linux Console Caps/Escape Swap</title><link>https://kwk.systems/blog/posts/linux-console-capsescape-swap/</link><dc:creator>Kurt Kremitzki</dc:creator><description>&lt;p&gt;Full-fledged Linux desktop environments like GNOME or Ubuntu's Unity often have built-in keyboard mapping tools to meet user needs.
At a lower level, &lt;code class="docutils literal"&gt;xmodmap&lt;/code&gt; can be used to directly modify the X11 server's keyboard mapping.
However, when working directly in the Linux console, things are a little more complicated without a display server.&lt;/p&gt;
&lt;p&gt;My particular need is to swap the &lt;code class="docutils literal"&gt;Caps Lock&lt;/code&gt; and &lt;code class="docutils literal"&gt;Escape&lt;/code&gt; keys; as a &lt;code class="docutils literal"&gt;vim&lt;/code&gt; user, I use &lt;code class="docutils literal"&gt;Escape&lt;/code&gt; constantly to return to Normal mode.
To be more efficient and avoid the possibility of repetitive strain injury from long-term pinky stretching to reach &lt;code class="docutils literal"&gt;Escape&lt;/code&gt;, the following line
can be added to the file &lt;code class="docutils literal"&gt;/etc/rc.local&lt;/code&gt;, before the final line &lt;code class="docutils literal"&gt;exit 0&lt;/code&gt;.&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code bash"&gt;&lt;a id="rest_code_b4b55f64b8124f2498fbadc5b7d4d46c-1" name="rest_code_b4b55f64b8124f2498fbadc5b7d4d46c-1" href="https://kwk.systems/blog/posts/linux-console-capsescape-swap/#rest_code_b4b55f64b8124f2498fbadc5b7d4d46c-1"&gt;&lt;/a&gt;/usr/bin/dumpkeys&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;/bin/sed&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'s/CtrlL_Lock/Escape/'&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;/usr/bin/loadkeys
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;If you aren't familiar with Bash, a little explanation might be in order. First, note that this single-line command is actually three
commands separated by the pipe character &lt;code class="docutils literal"&gt;|&lt;/code&gt;.
A detailed explanation can be found in the &lt;a class="reference external" href="http://www.tldp.org/LDP/abs/html/io-redirection.html"&gt;Advanced Bash Scripting Guide's chapter on I/O Redirection&lt;/a&gt;, but in short,
piping &lt;code class="docutils literal"&gt;cmd1 | cmd2&lt;/code&gt; sends the output of &lt;code class="docutils literal"&gt;cmd&lt;/code&gt; as input for &lt;code class="docutils literal"&gt;cmd2&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The programs &lt;code class="docutils literal"&gt;/usr/bin/dumpkeys&lt;/code&gt; and &lt;code class="docutils literal"&gt;/usr/bin/loadkeys&lt;/code&gt; are fairly self-explanatory: they output keymaps for the console
at the kernel level, and update that keymap if a valid file is input, respectively.
The middle command, &lt;code class="docutils literal"&gt;sed&lt;/code&gt;, is a powerful, general-purpose stream editor, and the source of much Linux wizardry. To understand what it's doing,
take a look at its argument: the string &lt;code class="docutils literal"&gt;'/s/CtrlL_Lock/Escape/'&lt;/code&gt;. This tells &lt;code class="docutils literal"&gt;sed&lt;/code&gt; to &lt;em&gt;s&lt;/em&gt; ubstitute the first instance of &lt;code class="docutils literal"&gt;CtrlL_Lock&lt;/code&gt;
with &lt;code class="docutils literal"&gt;Escape&lt;/code&gt; on any matching line from its input (adding &lt;code class="docutils literal"&gt;g&lt;/code&gt; after the last slash makes it a truly global substitution and not linewise.)
The &lt;code class="docutils literal"&gt;sed&lt;/code&gt; command then passes along the modified stream to &lt;code class="docutils literal"&gt;loadkeys&lt;/code&gt;. Because this line is added to &lt;code class="docutils literal"&gt;/etc/rc.local&lt;/code&gt;, it will be executed
every boot, swapping &lt;code class="docutils literal"&gt;Caps Lock&lt;/code&gt; and &lt;code class="docutils literal"&gt;Escape&lt;/code&gt; in the Linux console.&lt;/p&gt;</description><category>linux</category><category>raspberry_pi</category><guid>https://kwk.systems/blog/posts/linux-console-capsescape-swap/</guid><pubDate>Wed, 18 May 2016 03:40:12 GMT</pubDate></item><item><title>Keeping zoom level when navigating PDF in Evince, GNOME's Document Viewer</title><link>https://kwk.systems/blog/posts/keeping-zoom-level-when-navigating-pdf-in-evince-gnomes-document-viewer/</link><dc:creator>Kurt Kremitzki</dc:creator><description>&lt;p&gt;This one is short, sweet, and to the point. How often do you have your PDF set to a nice zoom level, only to have it reset when navigating via the Bookmarks/Index? If you use GNOME as a Linux DE (desktop environment), then you can fire up a terminal and use this &lt;code class="docutils literal"&gt;gsettings&lt;/code&gt; one-liner to preserve zoom:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code bash"&gt;&lt;a id="rest_code_62a046b641ee464b99ee5a0890ba763e-1" name="rest_code_62a046b641ee464b99ee5a0890ba763e-1" href="https://kwk.systems/blog/posts/keeping-zoom-level-when-navigating-pdf-in-evince-gnomes-document-viewer/#rest_code_62a046b641ee464b99ee5a0890ba763e-1"&gt;&lt;/a&gt;gsettings&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;set&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;org.gnome.Evince&lt;span class="w"&gt; &lt;/span&gt;allow-links-change-zoom&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;false&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;A great alternative PDF reader is the &lt;code class="docutils literal"&gt;vim&lt;/code&gt;-key friendly &lt;a class="reference external" href="https://pwmt.org/projects/zathura/"&gt;zathura&lt;/a&gt;. I've had issues opening larger PDFs with it though, so your mileage may vary.&lt;/p&gt;</description><category>linux</category><guid>https://kwk.systems/blog/posts/keeping-zoom-level-when-navigating-pdf-in-evince-gnomes-document-viewer/</guid><pubDate>Sun, 24 Apr 2016 21:51:08 GMT</pubDate></item><item><title>Connecting a Raspberry Pi to Texas A&amp;M Wifi via Command Line</title><link>https://kwk.systems/blog/posts/connecting-a-raspberry-pi-to-texas-am-wifi/</link><dc:creator>Kurt Kremitzki</dc:creator><description>&lt;div&gt;&lt;p&gt;The recommended flavor of Linux on the Raspberry Pi, Raspbian, uses the LXDE desktop environment, and using its GUI tools to set up wifi is not immediately successful.
Command-line setup involves editing two files, &lt;code class="docutils literal"&gt;/etc/network/interfaces&lt;/code&gt; and &lt;code class="docutils literal"&gt;/etc/wpa_supplicant/wpa_supplicant.conf&lt;/code&gt;. Since these are system files, they won't be writable by a normal user. The command &lt;code class="docutils literal"&gt;sudo &lt;span class="pre"&gt;-e&lt;/span&gt; &amp;lt;filename&amp;gt;&lt;/code&gt; can be used to edit system files with superuser privileges, using the default editor. Normally, this is the program &lt;code class="docutils literal"&gt;nano&lt;/code&gt;, which is fairly self-explanatory; make your changes using the keyboard and save the file with &lt;code class="docutils literal"&gt;&lt;span class="pre"&gt;Ctrl-X&lt;/span&gt;&lt;/code&gt;. For advanced users, this can be changed via something like &lt;code class="docutils literal"&gt;export EDITOR=vi&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The first file, &lt;code class="docutils literal"&gt;/etc/network/interfaces&lt;/code&gt;, needs to have the following:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://kwk.systems/blog/posts/connecting-a-raspberry-pi-to-texas-am-wifi/"&gt;Read more…&lt;/a&gt; (1 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>linux</category><category>raspberry_pi</category><guid>https://kwk.systems/blog/posts/connecting-a-raspberry-pi-to-texas-am-wifi/</guid><pubDate>Thu, 21 Apr 2016 23:46:17 GMT</pubDate></item></channel></rss>